Skip to content

farikkm/Notability

Repository files navigation

# 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
  1. Установите зависимости:

    Для серверной части:

    cd server
    npm install
  2. Создайте файл .env в папке с сервером и добавьте ваши настройки:

    JWT_SECRET=your_secret_key
    MONGO_URI=your_mongo_database_uri
    PORT=5000
  3. Запустите сервер:

    npm start

Авторизация

Приложение поддерживает авторизацию с помощью JWT токенов. После успешного логина пользователю выдается JWT токен, который используется для аутентификации в приложении.

Эндпоинты для авторизации:

  • POST /auth/login — логин пользователя. Возвращает JWT токен.
  • POST /auth/register — регистрация нового пользователя.

Использование

После запуска серверной части приложения вы можете взаимодействовать с фронтендом, который использует Ant Design для отображения интерфейса:

  • Добавление, редактирование и удаление заметок.
  • Авторизация через JWT.
  • Просмотр всех заметок.

Лицензия

Этот проект распространяется под лицензией MIT.

About

An application with fully authorization system that allows users to create Notes

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published