# Note-taking App
Это приложение для заметок с использованием Node.js, MongoDB и JWT для авторизации. Приложение организовано по структуре FSD (Feature-Sliced Design), что позволяет легко расширять и масштабировать проект. Для дизайна использован компонентный фреймворк Ant Design (antd), который помогает создать приятный и удобный интерфейс.
## Структура проекта
Проект использует структуру FSD (Feature-Sliced Design), которая позволяет организовать код вокруг функций, а не только по типам файлов. Это улучшает поддержку и развитие приложения, делает код более читаемым и удобным для работы в команде.
### Структура каталогов
- `src/`
- `features/` — содержит функциональные блоки приложения (например, авторизация, создание и редактирование заметок).
- `shared/` — общие утилиты, компоненты и модули, используемые в нескольких местах приложения (например, компоненты UI из antd, API).
- `app/` — основные компоненты приложения, такие как маршруты и настройка состояния.
## Технологии
- **Node.js** — серверная часть приложения.
- **Express.js** — фреймворк для создания API.
- **React** — фреймворк для удобного создания приложений.
- **TypeScript** — для типизации.
- **Zustand** — стейт-менеджер для управления состонием с любой точки приложения.
- **MongoDB** — база данных для хранения заметок.
- **JWT** — механизм авторизации через JSON Web Token.
- **Ant Design (antd)** — библиотека компонентов для удобного и стильного интерфейса.
- **Mongoose** — ODM для работы с MongoDB.
- **dotenv** — для работы с переменными окружения.
## Установка
1. Клонируйте репозиторий:
```bash
git clone https://github.com/yourusername/note-taking-app.git-
Установите зависимости:
Для серверной части:
cd server npm install -
Создайте файл
.envв папке с сервером и добавьте ваши настройки:JWT_SECRET=your_secret_key MONGO_URI=your_mongo_database_uri PORT=5000
-
Запустите сервер:
npm start
Приложение поддерживает авторизацию с помощью JWT токенов. После успешного логина пользователю выдается JWT токен, который используется для аутентификации в приложении.
- POST
/auth/login— логин пользователя. Возвращает JWT токен. - POST
/auth/register— регистрация нового пользователя.
После запуска серверной части приложения вы можете взаимодействовать с фронтендом, который использует Ant Design для отображения интерфейса:
- Добавление, редактирование и удаление заметок.
- Авторизация через JWT.
- Просмотр всех заметок.
Этот проект распространяется под лицензией MIT.