Цей проект — це бекенд для системи управління завданнями (Todo List), написаний на Node.js з використанням Express, TypeScript та Prisma (PostgreSQL). Він дозволяє створювати, редагувати, видаляти та переглядати завдання й таблиці, а також керувати користувачами з авторизацією через JWT. Проект реалізує сучасний підхід до безпеки та валідації даних, підтримує автоматичне оновлення access token через refresh token, і містить документацію API на Swagger.
Основні можливості:
- Реєстрація та логін користувачів
- Створення, редагування, видалення таблиць та задач
- Захист приватних даних через JWT
- Валідація даних через Zod
- Документація API через Swagger
- Встановіть залежності:
pnpm install
- Запустіть сервер у режимі розробки:
pnpm dev
- Для запуску тестів:
pnpm test
- Node.js + Express
- TypeScript
- Prisma (PostgreSQL)
- Swagger для документації
- JWT для авторизації
- Zod для валідації
src/routes/— маршрути (роутери)src/controllers/— логіка обробки запитівsrc/service/— робота з базою, бізнес-логікаsrc/middlawes/— мідлвари (авторизація, обробка помилок)src/schemas/— схеми для валідаціїsrc/swagger.json— OpenAPI документація
Використовується JWT токен. Деякі маршрути захищені мідлваром authenticateToken.
pnpm dev— запуск у режимі розробкиpnpm start— компіляція та запускpnpm test— запуск тестів
Swagger доступний за маршрутом /api-docs.
- Реєстрація та логін користувачів
- Створення, редагування, видалення таблиць та задач
- Захист приватних даних через JWT
- Валідація даних через Zod
Після першого входу користувач отримує refresh token, завдяки якому не потрібно повторно авторизуватись при перезавантаженні сторінки — система сама оновлює access token.
xxds 🎀