consultation-booking-system

ІО-31 Григорчук Денис | Consultation Booking System

Опис проєкту

Consultation Booking System — це адаптивний веб-застосунок для запису на консультації.
Система дозволяє користувачу переглядати доступні консультації, створювати запис через форму, переглядати створені записи та керувати ними через простий REST API на Node.js та Express.js.

Проєкт виконано як лабораторну роботу з дисципліни, пов’язаної з web-орієнтованими технологіями та backend-розробкою.


Мета проєкту

Метою проєкту є створення адаптивного веб-застосунку для запису на консультації та реалізація базової серверної частини з CRUD-операціями для записів.


Опис бізнес-логіки

Система працює за такою логікою:

  1. Користувач відкриває сайт і переглядає доступні консультації.
  2. Користувач заповнює форму запису: ім’я, email, дату та час.
  3. Дані відправляються на сервер.
  4. Сервер зберігає запис у пам’яті та повертає відповідь.
  5. Користувач бачить створений запис у списку на сторінці.
  6. REST API дозволяє створювати, переглядати, редагувати та видаляти записи.

Функціональні вимоги


Нефункціональні вимоги


Ролі користувачів

Client

Administrator


Use-Case Diagram

flowchart LR
    Client((Client))
    Admin((Administrator))

    UC1[View consultations]
    UC2[Fill booking form]
    UC3[Create booking]
    UC4[View bookings]
    UC5[Update booking]
    UC6[Delete booking]
    UC7[Manage consultations]

    Client --> UC1
    Client --> UC2
    Client --> UC3
    Client --> UC4
    Client --> UC5
    Client --> UC6

    Admin --> UC4
    Admin --> UC5
    Admin --> UC6
    Admin --> UC7

ER Diagram

erDiagram
    CLIENT ||--o{ APPOINTMENT : makes
    CONSULTATION ||--o{ APPOINTMENT : includes

    CLIENT {
        int id
        string name
        string email
        string phone
    }

    CONSULTATION {
        int id
        string title
        string description
        string duration
        string availableTime
    }

    APPOINTMENT {
        int id
        int clientId
        int consultationId
        string date
        string time
        string status
    }

Як запустити проєкт

  1. Встановити залежності: npm install
  2. Запустити сервер: node server/server.js
  3. Відкрити у браузері: http://localhost:3000

Висновок

У ході виконання лабораторної роботи було розроблено адаптивний веб-застосунок для запису на консультації. Проєкт містить зручний інтерфейс, форму запису, список записів і REST API для CRUD-операцій. Під час виконання роботи було закріплено навички роботи з HTML, CSS, JavaScript, Node.js, Express.js, а також базового аналізу та моделювання системи.


Lab 2 — MySQL & Sequelize Integration

Опис

У другій лабораторній роботі проєкт було розширено шляхом додавання бази даних MySQL та інтеграції її із серверною частиною.

Було реалізовано:


База даних

Використовується база даних:

consultation_db

Таблиці:

clients

appointments


Зв’язок

Реалізовано зв’язок:

One-to-Many


Робота з базою даних

Було виконано основні SQL-операції:

Для підключення Node.js до MySQL використано пакет mysql2.

Для роботи з базою даних через ORM використано Sequelize.


Висновок (Lab 2)

У другій лабораторній роботі було реалізовано інтеграцію бази даних MySQL із серверною частиною веб-застосунку.

Отримано практичні навички:


Lab 3 — REST API, Authentication & JWT

Опис

У третій лабораторній роботі було реалізовано функціональний REST API для роботи з користувачами.

Додано:


Реалізований функціонал

Реєстрація

POST /api/register


Авторизація

POST /api/login


Захищений маршрут

GET /api/profile


Валідація та помилки

Реалізовано:

Використані HTTP статуси:


Технології


Висновок (Lab 3)

У ході виконання лабораторної роботи було реалізовано REST API з механізмами реєстрації та авторизації користувачів.

Отримано практичні навички: