An open API service indexing awesome lists of open source software.

https://github.com/kotop21/todo-backend

Бекенд для системи управління завданнями (Todo List), написаний на Node.js з використанням Express, TypeScript та Prisma (PostgreSQL)
https://github.com/kotop21/todo-backend

backend expressjs javascript nodejs prisma typescript

Last synced: 3 months ago
JSON representation

Бекенд для системи управління завданнями (Todo List), написаний на Node.js з використанням Express, TypeScript та Prisma (PostgreSQL)

Awesome Lists containing this project

README

          

# 📝 Todo Backend

Цей проект — це бекенд для системи управління завданнями (Todo List), написаний на Node.js з використанням Express, TypeScript та Prisma (PostgreSQL). Він дозволяє створювати, редагувати, видаляти та переглядати завдання й таблиці, а також керувати користувачами з авторизацією через JWT. Проект реалізує сучасний підхід до безпеки та валідації даних, підтримує автоматичне оновлення access token через refresh token, і містить документацію API на Swagger.

Основні можливості:

- Реєстрація та логін користувачів
- Створення, редагування, видалення таблиць та задач
- Захист приватних даних через JWT
- Валідація даних через Zod
- Документація API через Swagger

## 🚀 Як запустити проект

1. Встановіть залежності:
```bash
pnpm install
```
2. Запустіть сервер у режимі розробки:
```bash
pnpm dev
```
3. Для запуску тестів:
```bash
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` — запуск тестів

## 📑 Документація API

Swagger доступний за маршрутом `/api-docs`.

## ⚡ Як працює

- Реєстрація та логін користувачів
- Створення, редагування, видалення таблиць та задач
- Захист приватних даних через JWT
- Валідація даних через Zod

### 🔄 Система автоматичної авторизації

Після першого входу користувач отримує refresh token, завдяки якому не потрібно повторно авторизуватись при перезавантаженні сторінки — система сама оновлює access token.

## 🧑‍💻 Автор

`xxds 🎀`