Приложение для планирования вебинаров и сбора регистраций участников. Один администратор может создавать вебинары, пользователи могут регистрироваться на них.
- Публичная часть: список вебинаров, страница регистрации, добавление в календарь
- Админ-панель: создание/редактирование вебинаров, просмотр участников, экспорт в CSV
- Лимит участников: опциональное ограничение количества мест
- Календарь: кнопки "Добавить в Google Calendar" и скачивание .ics
- Next.js 14 (App Router)
- TypeScript
- SQLite + Drizzle ORM
- Tailwind CSS
git clone <repository-url>
cd webinar-schedule-apppnpm installcp .env.example .env.localОтредактируйте .env.local и установите пароль администратора:
ADMIN_PASSWORD=your_secure_password
pnpm db:pushpnpm db:seedСоздаст 4 вебинара и ~19 регистраций для демонстрации.
pnpm devПриложение будет доступно по адресу http://localhost:3000
| URL | Описание |
|---|---|
/ |
Список предстоящих вебинаров |
/webinar/:id |
Страница вебинара с формой регистрации |
/admin |
Админ-панель (требуется пароль) |
/admin/webinars/new |
Создание нового вебинара |
| Команда | Описание |
|---|---|
pnpm dev |
Запуск в режиме разработки |
pnpm build |
Сборка для продакшена |
pnpm start |
Запуск продакшен-сборки |
pnpm db:push |
Применить схему к БД |
pnpm db:seed |
Заполнить тестовыми данными |
pnpm db:studio |
Открыть Drizzle Studio |
src/
├── app/
│ ├── page.tsx # Главная (список вебинаров)
│ ├── webinar/[id]/ # Страница вебинара
│ ├── admin/ # Админ-панель
│ └── api/ # API роуты
├── components/ # React компоненты
├── db/ # Схема и подключение к БД
└── lib/ # Утилиты