Skip to content

podmefom/MedicalWeb

Repository files navigation

🏥 MEDICAL_CORE - Полная документация системы

✅ Статус проекта: TOP TIER 1 PRODUCTION READY

Вся система готова к использованию и полностью функциональна!


🎯 Реализованные функции

1. Аутентификация и авторизация

  • NextAuth.js v4 - полная система управления сеансами
  • Зашифрованные пароли - bcryptjs с солью 10
  • Трехуровневая система ролей:
    • 👤 PATIENT - пациенты клиники
    • 👨‍⚕️ DOCTOR - врачи-специалисты
    • 🔑 ADMIN - администраторы системы

2. База данных Prisma + SQLite

  • User - управление пользователями с шифрованием
  • Doctor - связь врачей с пользователями и специализациями
  • Appointment - запоминание записей на приемы
  • AdminLog - аудит действий администраторов
  • Миграции - 20260406195950_add_auth_and_users (успешно применена)

3. Личный кабинет пациента

URL: /dashboard

  • ✅ Просмотр всех своих записей к врачам
  • ✅ Отмена запланированных записей
  • ✅ Фильтрация по статусу (Подтверждена/Ожидает/Завершена)
  • ✅ Информация о враче-специалисте
  • ✅ Кнопка "Новая запись"
  • ✅ Выход из аккаунта

4. Админ-панель управления

URL: /admin

  • ✅ Таблица всех записей в системе
  • ✅ Подтверждение записей (PENDING → CONFIRMED)
  • ✅ Удаление записей
  • ✅ Список всех пользователей системы
  • ✅ Фильтрация по ролям
  • ✅ Управление статусами записей

5. Система бронирования приемов

URL: /booking

  • ✅ 5-этапная форма записи:
    1. Выбор врача из списка с фотографией и специальностью
    2. Выбор даты и времени (с проверкой будущего времени)
    3. Ввод контактной информации пациента
    4. Подтверждение всех данных
    5. Успешная регистрация
  • ✅ Валидация Zod на всех полях
  • ✅ Детальные сообщения об ошибках

6. API endpoints с защитой

  • GET /api/appointments - получение записей (фильтруется по ролям)
  • POST /api/appointments - создание новой записи
  • DELETE /api/appointments/[id] - отмена записи
  • PATCH /api/appointments/[id] - обновление статуса (только админ)
  • GET /api/doctors - список врачей с информацией
  • GET/POST /api/auth/[...nextauth] - NextAuth обработчик

7. Middleware защита маршрутов

Автоматическая переадресация:

  • Неавторизованные пользователи → /login
  • Авторизованные пользователи на /login/dashboard
  • Защищенные маршруты: /dashboard, /booking, /admin

8. UI/UX компоненты

  • Карты врачей с полной информацией
  • Профиль врача с опытом и биографией
  • Модальные окна и formы
  • Система уведомлений (Sonner toast)
  • Состояние загрузки и анимация
  • Адаптивный дизайн (мобильный + десктоп)

👥 Тестовые учетные записи

Пациент

Email: [email protected]
Пароль: 123456
Роль: PATIENT

Врач

Email: [email protected]
Пароль: doctor123
Роль: DOCTOR

Администратор

Email: [email protected]
Пароль: admin123
Роль: ADMIN

Дополнительные врачи


🗄️ Структура проекта

medical-core/
├── src/
│   ├── app/
│   │   ├── api/
│   │   │   ├── auth/[...nextauth]/route.ts     # NextAuth API
│   │   │   ├── appointments/route.ts            # CRUD записей
│   │   │   ├── appointments/[id]/route.ts       # DELETE/PATCH запись
│   │   │   └── doctors/route.ts                 # Список врачей
│   │   ├── dashboard/page.tsx                   # Личный кабинет пациента
│   │   ├── admin/page.tsx                       # Админ-панель
│   │   ├── login/page.tsx                       # Страница входа
│   │   ├── booking/page.tsx                     # Форма записи на прием
│   │   ├── doctors/page.tsx                     # Каталог врачей
│   │   ├── doctors/[id]/page.tsx                # Профиль врача
│   │   ├── layout.tsx                           # Root layout с SessionProvider
│   │   └── globals.css                          # Глобальные стили
│   ├── auth.ts                                  # NextAuth конфигурация
│   ├── middleware.ts                            # Защита маршрутов
│   ├── lib/
│   │   ├── prisma.ts                            # Singleton Prisma клиент
│   │   └── validation.ts                        # Zod схемы валидации
│   └── components/
│       └── SessionProvider.tsx                  # NextAuth провайдер
├── prisma/
│   ├── schema.prisma                            # Определение моделей БД
│   ├── seed.ts                                  # Заполнение тестовых данных
│   └── migrations/                              # История миграций
├── package.json                                 # Зависимости проекта
├── next.config.ts                               # Next.js конфигурация
├── tsconfig.json                                # TypeScript конфигурация
└── prisma.config.ts                             # Prisma конфигурация

🔧 Технологический стек

Категория Инструменты
Framework Next.js 16.2.2 (App Router + Turbopack)
ORM Prisma 7.6.0
БД SQLite с better-sqlite3
Аутентификация NextAuth.js v4
Валидация Zod
Хеширование bcryptjs
Стили Tailwind CSS 4.0
UI Компоненты Lucide React (иконки)
Уведомления Sonner (toast)
Язык TypeScript 5.9

🚀 Запуск проекта

Установка зависимостей

npm install

Инициализация БД

npx prisma migrate dev
npx prisma db seed

Запуск dev сервера

npm run dev

Сервер доступен на: http://localhost:3001

Production build

npm run build
npm start

🔐 Безопасность

  • Защита маршрутов - middleware проверяет токены JWT
  • Зашифрованные пароли - bcryptjs с 10 итерациями
  • Валидация входов - Zod schema validation на всех API
  • CORS защита - NextAuth обработчики безопасны
  • Роли и разрешения - PATIENT видит только свои данные
  • Audit logs - AdminLog модель для отслеживания действий

📊 Примеры использования

Для пациента

  1. Зайти через /login с учетными данными
  2. Перейти в /dashboard - увидеть мои записи
  3. Нажать "Новая запись" → /booking
  4. Выбрать врача, дату, время
  5. Записаться на прием

Для администратора

  1. Зайти как admin через /login
  2. Перейти в /admin
  3. Посмотреть все записи в таблице
  4. Подтвердить запись (PENDING → CONFIRMED)
  5. При необходимости удалить запись

Для врача

  1. Зайти как врач ([email protected])
  2. На /dashboard видит свои назначенные приемы
  3. Может видеть контактные данные пациентов

📝 Примечания по развитию

Можно добавить в будущем:

  • Email/SMS уведомления при подтверждении записей
  • Интеграция платежей (Stripe/YooKassa)
  • Расписание врачей с выходными
  • История медицинских осмотров
  • Эцифровую подпись документов
  • API интеграцию с внешними системами

✨ Достижения

✅ Полная система управления клиникой ✅ Таблица пациентов и врачей ✅ Система записи с валидацией ✅ Админ-панель управления ✅ Личный кабинет пациента ✅ NextAuth.js интеграция ✅ Prisma ORM с миграциями ✅ TypeScript полная типизация ✅ Responsive дизайн ✅ Production-ready код


🎉 Вывод

Система MEDICAL_CORE полностью готова к использованию и представляет собой профессиональное решение для управления клиникой. Все компоненты протестированы, типы проверены, дизайн современный и удобен для пользователей.

Статус: 🟢 ГОТОВО К ПРОДУ

About

Полнофункциональная веб-приложение для управления медицинской клиникой, разработанное на Next.js 16 с интеграцией Prisma ORM и SQLite.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors