Skip to content

Course Project. Серверная часть для работы с БД Sqlite3 посредством fulRest Api based JavaScript Express

License

Notifications You must be signed in to change notification settings

filincprt/rmdb_api

Repository files navigation

rmdb_api

Language Платформа Framework

rmdb_api — это серверная часть курсового проекта, реализующая полноценный REST API для работы с удалённой базой данных SQLite3. API построен на Node.js и Express.js и предназначен для обеспечения данными клиентские приложения (например, интернет-магазин или складскую систему).

📖 О проекте

Проект представляет собой серверное приложение, которое предоставляет единый интерфейс для управления данными интернет-магазина через HTTP-запросы. Вместо прямого подключения к базе данных клиенты обращаются к этому API, что повышает безопасность и централизует логику работы с данными.

Основная цель:

  • Создать надёжный бэкенд для хранения и обработки данных интернет-магазина.
  • Предоставить клиентским приложениям (мобильным и десктопным) унифицированный API для работы с товарами, заказами, пользователями и категориями.

✨ Ключевые возможности API

API поддерживает полный набор CRUD-операций для основных сущностей интернет-магазина:

  • Управление товарами (/products): получение списка (с категориями), поиск по категории, добавление, редактирование, удаление. Специальные методы для изменения количества по штрих-коду.
  • Управление категориями (/categories): стандартные операции с категориями товаров.
  • Управление пользователями (/users): получение, добавление, обновление и удаление пользователей.
  • Управление заказами (/orders): создание, получение списка с деталями, обновление статуса, удаление.
  • Управление статусами (/statuses): работа со справочником статусов заказов.
  • Администрирование (/admin): регистрация и аутентификация администраторов.
  • Восстановление пароля (/reset-password): запрос кода подтверждения на email и его верификация.

🛠️ Используемые технологии

  • Язык: JavaScript (100% кода)
  • Среда выполнения: Node.js
  • Фреймворк: Express.js
  • База данных: SQLite3
  • Протокол: HTTP (REST API)
  • Платформа для деплоя: Vercel (указано в описании)

🚀 Быстрый старт

Эти инструкции помогут вам развернуть копию проекта на локальной машине для разработки и тестирования.

Необходимые компоненты

  • Node.js (скачать с официального сайта)
  • npm (менеджер пакетов, устанавливается вместе с Node.js)
  • Любая операционная система, поддерживающая Node.js
  • Стабильное подключение к интернету

Установка и запуск

  1. Клонируйте репозиторий
    git clone https://github.com/filincprt/rmdb_api.git
  2. Перейдите в директорию проекта
    cd rmdb_api
  3. Установите зависимости
    npm install
    (Все необходимые зависимости указаны в файле package.json)
  4. Настройте базу данных
    • В репозитории уже есть файлы базы данных: DATABASE_IS_SERVER.db (готовая БД) и DATABASE_IS_SERVER.db.sql (дамп для создания). Убедитесь, что путь к БД в server.js указан корректно.
  5. Запустите сервер
    node server.js
    Сервер будет запущен на порту, указанном в коде (обычно 3000 или другой). Вы должны увидеть сообщение о успешном запуске.

📚 Документация API

API доступен по базовому URL (локально: http://localhost:3000). Все запросы и ответы передаются в формате JSON.

Метод Путь Описание
Пользователи
GET /users Получение данных из таблицы Users
POST /users Добавление данных в таблицу Users
PUT /users/:id Обновление данных в таблице Users
DELETE /users/:id Удаление данных из таблицы Users
Товары
GET /products Получение всех товаров с названиями категорий
GET /products/:id Получение информации о товаре по id
GET /products/category/:category_id Получение товаров по категории с названиями категорий
POST /products Добавление продукта
PUT /products/:id Редактирование продукта
DELETE /products/:id Удаление продукта
POST /products/increment/:barcode Добавление 1 единицы к количеству товара по штрих-коду
DELETE /products/decrement/:barcode Удаление 1 единицы из количества товара по штрих-коду
Категории
GET /categories Получение данных из таблицы Categories
POST /categories Добавление данных в таблицу Categories
PUT /categories/:id Редактирование данных в таблице Categories
DELETE /categories/:id Удаление данных из таблицы Categories
Заказы
GET /orders/details Получение всех заказов с деталями
GET /orders/:id Получение заказа по ID
POST /orders Добавление данных в таблицу Orders
PUT /orders/:id Редактирование данных в таблице Orders
DELETE /orders/:order_number Удаление данных из таблицы Orders по order_number
Статусы
GET /statuses Получение всех статусов
GET /statuses/:id Получение конкретного статуса по ID
POST /statuses Добавление нового статуса
PUT /statuses/:id Обновление статуса по ID
DELETE /statuses/:id Удаление статуса по ID
Администрирование и безопасность
POST /admin/register Регистрация нового администратора
POST /admin/login Аутентификация администратора
POST /reset-password/:email Запрос кода на почту для сброса пароля
POST /reset-password/verify/:email Верификация кода сброса пароля

🔗 Связанные проекты

Этот API используется в следующих клиентских приложениях:

  • PRO_Courier — мобильное приложение для курьеров
  • internet-shop-actual — мобильное приложение интернет-магазина
  • ProductManager_wpf — десктопное приложение для складского учёта

📄 Лицензия

Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.

📬 Контакты

Ссылка на проект: https://github.com/filincprt/rmdb_api Деплоймент: rmdb-api.vercel.app


Этот README создан на основе структуры репозитория, истории коммитов и документации API.

💡 Рекомендации по улучшению

Чтобы сделать этот файл ещё информативнее, вы можете добавить:

  • Примеры запросов и ответов для основных эндпоинтов.
  • Схему базы данных — описание таблиц и связей между ними.
  • Инструкцию по деплою на Vercel — если планируется размещение в облаке.
  • Описание аутентификации — как именно передаётся токен/сессия при защищённых запросах.

About

Course Project. Серверная часть для работы с БД Sqlite3 посредством fulRest Api based JavaScript Express

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors