Author: Valentyn Khaimyk
License: Private. All rights reserved.
- Client Side (Frontend) – React App with Admin Panel
- Server Side (Backend) – Node.js + Express API with Prisma ORM
A React 18 + Vite-based SPA that supports internationalization, animations, and modern UI/UX principles.
- Vite – Build tool
- React 18 + TypeScript
- Redux Toolkit – Global state
- Tailwind CSS – Styling
- i18next – Internationalization
- React Router v7 – Navigation
- React Hook Form – Forms
- Vitest – Component testing
- React Toastify – Notifications
- React Icons / Heroicons – Icons
- HeroUI – React UI component library
- ESLint + Prettier – Linting & formatting
- Vitest + Testing Library – Unit tests
Role-based pages and components for:
- Master
- Administrator
- Super Administrator
- Manage bookings
- Add/edit services
- Manage branches
- View clients
- Create/edit calendar
- Role management (Admin/Super Admin)
client/src/
- app/ Redux store & API
- components/ Reusable components (admin, booking, etc.)
- features/ Business logic
- locales/ Translations (en, pl, ukr)
- middleware/ Guards
- pages/ SPA pages
- utils/ Helpers
Node.js backend with Express and Prisma. Includes authentication, scheduling, email/Telegram notifications, and integrations.
- Express.js – HTTP API
- Prisma ORM – DB layer
- JWT + BcryptJS – Authentication
- CORS / Joi / dotenv – Configuration
- Nodemailer – Email delivery
- Telegram Bot API – Notifications
- node-cron – Scheduler
- ✉️ Email: Confirmation, cancellation, reminders
- 📢 Telegram Bot:
- New bookings
- Changes/cancellations
- Client lists
- ⏰ Pre-appointment reminders (customizable)
server/
- bin/ Entry point
- controllers/ Route logic
- routes/ API endpoints
- middleware/ Auth, validation, error handler
- prisma/ Prisma config & client
- test/ Tests
- utils/ Helpers
- scripts/ Automation
- views/ Emails
- Jest + Supertest + Sinon – API and logic testing
- Mocha + Chai – Optional test stack
- Nodemon – Auto-reload on change
Dockerfile
for both frontend and backenddocker-compose.yml
to run everything togetherNginx
config for reverse proxy.env
files for environment configuration
- Клієнтська частина (Frontend) — React-додаток з адмінпанеллю
- Серверна частина (Backend) — Node.js + Express API з Prisma ORM
SPA-додаток на основі Vite та React 18 з підтримкою багатомовності, анімацій та сучасного UI/UX.
- Vite — збірка
- React 18 + TypeScript
- Redux Toolkit — глобальний стан
- Tailwind CSS — стилі
- i18next — багатомовність
- React Router v7 — навігація
- React Hook Form — форми
- Vitest — тестування
- React Toastify — сповіщення
- React Icons / Heroicons — іконки
- HeroUI — бібліотека UI-компонентів
- ESLint + Prettier — лінтинг і форматування
- Vitest + Testing Library — юніт-тести
Компоненти і сторінки для ролей:
- Майстер
- Адміністратор
- Супер-адміністратор
- Керування бронюваннями
- Додавання/редагування послуг
- Керування філіалами
- Перегляд клієнтів
- Календар
- Управління ролями
client/src/
- app/ Redux store та API
- components/ UI-компоненти
- features/ Бізнес-логіка
- locales/ Переклади
- middleware/ Guard-и
- pages/ Сторінки SPA
- utils/ допоміжна логіка
Node.js + Express сервер з Prisma ORM. Підтримує автентифікацію, планування задач, повідомлення через Telegram і email.
- Express.js — HTTP API
- Prisma ORM — база даних
- JWT + BcryptJS — безпека
- CORS / Joi / dotenv — конфігурація
- Nodemailer — email
- Telegram Bot API — бот
- node-cron — планувальник
- ✉️ Email: підтвердження, скасування, нагадування
- 📢 Telegram:
- Нові бронювання
- Зміни
- Список клієнтів
- ⏰ Автонагоджувані нагадування
server/
- bin/ Точка входу
- controllers/ Логіка роутів
- routes/ API
- middleware/ Перевірки
- prisma/ База даних
- test/ Тести
- utils/ допоміжна логіка
- scripts/ Скрипти
- views/ Email шаблони
- Jest + Supertest + Sinon — тестування
- Mocha + Chai — альтернатива
- Nodemon — авторестарт
Dockerfile
для frontend і backenddocker-compose.yml
— запуск усіх сервісівNginx
— зворотній proxy.env
— змінні середовища