Skip to content
Leo0742Public

About

Collaborative full-stack event-management platform with Next.js, Express, Prisma, PostgreSQL, admin workflows, teams, volunteers, media, analytics and Docker.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

575 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Русский · English

EventHub

Совместная full-stack платформа для управления мероприятиями
Next.js web app · Express API · Prisma/PostgreSQL · Admin panel · Teams · Volunteers · Analytics · Docker

Next.js React TypeScript Express Prisma PostgreSQL Docker

EventHub — совместный проект / contributed fork. Связь с исходным fork намеренно сохранена, чтобы реальная история разработки оставалась видимой, включая commit- и pull-request history, показывающую мою работу над проектом.

Обзор

EventHub — full-stack платформа для управления публичными мероприятиями. Она включает публичный сайт событий, регистрацию пользователей, личный кабинет, командные механики, заявки волонтёров, административные сценарии, управление медиа, аналитику, email-операции и инструменты развёртывания, ориентированные на production.

Репозиторий организован как TypeScript monorepo с Next.js frontend, Express API, слоем Prisma/PostgreSQL, общими пакетами, Docker Compose runtime и документацией по deployment и operational workflows.

Мой вклад

Большая часть моей работы в этом fork была направлена на то, чтобы приблизить EventHub к реальному продукту для управления мероприятиями, а не к статическому demo. История проекта показывает работу над UI, backend API, схемой базы данных, admin workflows, production safety, тестированием и надёжностью развёртывания.

Основные направления моей работы:

  • улучшение публичного пользовательского опыта, cabinet/dashboard flows и admin-facing UI;
  • реализация и исправление media-bank flows, включая публичное отображение медиа, проблемы загрузки/runtime и server/client boundaries;
  • работа над поддержкой: global support mini-chat, support ticket flows и user/admin support UX;
  • усиление admin tools для управления событиями, пользователями, командами, волонтёрами, email-аудиториями, direct email flows и аналитикой;
  • расширение Express/Prisma backend modules, validation, auth/RBAC поведения и production-safe обработки данных;
  • повышение надёжности Docker, database, migrations, seed, cleanup, CI/test, typecheck и deployment-related процессов.

Я сохраняю этот репозиторий именно как fork, а не перезаливаю его отдельно, чтобы контекст совместной разработки и реальная история изменений оставались прозрачными.

Что демонстрирует проект

  • Full-stack product development с Next.js frontend, Express API, shared packages и PostgreSQL-backed data model.
  • Backend domain modeling для events, users, roles, teams, volunteers, support, media, analytics, email, audit logs и admin workflows.
  • Production-minded engineering: environment contracts, Docker Compose, migrations, health/readiness checks, границы seed data, safe cleanup и deployment runbooks.
  • Admin and operations tooling: role-based admin panel, управление командами/участниками, moderation волонтёров, email operations, media bank и analytics surfaces.
  • Reliability work: type checking, linting, tests, CI/runtime fixes, исправления server/client boundaries и более безопасная обработка ошибок.

Архитектура

flowchart LR
    Web[Next.js Web App] --> API[Express API]
    API --> DB[(PostgreSQL / Prisma)]
    API --> Email[Email Provider / Resend]
    API --> Media[Media Storage]
    API --> Shared[Shared Packages]
    Web --> UI[Shared UI Package]
    Web --> Shared

    Admin[Admin Panel] --> Web
    Cabinet[User Cabinet] --> Web
    Public[Public Event Site] --> Web
Loading

Основные приложения

Область Путь Назначение
Web app apps/web Next.js frontend для публичных страниц, auth flows, пользовательского кабинета, admin panel, event pages, support, media и analytics surfaces.
API service services/api Express + TypeScript backend для auth, events, teams, volunteers, admin workflows, media, analytics, email, support и доступа к Prisma.
Shared UI packages/ui Общие стили и UI primitives, используемые web-приложением.
Shared domain packages/shared Общие types, contracts и utilities для frontend и backend.
Infrastructure infra, Docker files, compose files Runtime configuration, deployment support, Nginx/infra configs, Docker и production scripts.
Documentation docs Project notes, runbooks, deployment- и architecture-related документация.

Продуктовые модули

  • Публичная landing page и каталог событий с search, filters, pagination и event detail pages.
  • Регистрация по email, login, refresh/logout flows, управление профилем и protected routes.
  • User cabinet с participations, team membership, event cabinet flows и profile-related функциями.
  • Team mechanics: создание команд, режимы вступления, captain role, approval/rejection flows, member management и change history.
  • Volunteer applications с отслеживанием статуса пользователя и admin moderation.
  • Admin panel для events, participants, teams, volunteers, event admins, platform users, roles, reports и analytics.
  • Media bank с uploads, moderation, public event galleries, captions, import jobs и event media history.
  • Support and communication: support chat/tickets, admin support handling, email templates, broadcasts, recipients и delivery tracking.
  • Observability and reliability: structured logging, request IDs, health/readiness endpoints, safer errors, CI/runtime checks и deployment validation.

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

Слой Технологии
Frontend Next.js, React, TypeScript, next-intl, Tailwind CSS, Zod
Backend Express, TypeScript, Prisma Client, JWT, cookie-parser, CORS, Zod
Database PostgreSQL 17, Prisma schema, migrations, seed scripts
Email / integrations Resend, Svix, provider-aware email flows
Media Local upload storage, media asset models, public media routes
Testing / quality Vitest, Testing Library, Supertest, ESLint, TypeScript checks
Infrastructure Docker, Docker Compose, production compose config, health checks, deployment scripts
Monorepo tooling pnpm workspaces, Turbo, shared packages

Структура репозитория

apps/
  web/               # Next.js frontend application
services/
  api/               # Express backend API and Prisma schema
packages/
  ui/                # Shared UI styles/components
  shared/            # Shared types and utilities
infra/               # Infrastructure configuration
docs/                # Documentation and runbooks
scripts/             # Deployment and maintenance scripts

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

Требования

  • Node.js >=24.0.0
  • pnpm >=10.33.0
  • PostgreSQL 17 локально или через Docker

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

pnpm install

Настройка окружения

cp .env.example services/api/.env

Укажите обязательные локальные значения в services/api/.env, особенно:

  • DATABASE_URL
  • JWT_ACCESS_SECRET
  • JWT_REFRESH_SECRET
  • CORS_ORIGIN
  • переменные email provider при использовании реальной доставки почты

Настройка базы данных

pnpm db:generate
pnpm db:push
pnpm db:seed

Локальный запуск

pnpm dev

Локальные URL по умолчанию:

Сервис URL
Web http://localhost:3000
API http://localhost:4000
Health http://localhost:4000/health
Ready http://localhost:4000/ready

Docker Compose runtime

Development compose запускает контейнеры PostgreSQL, API и Web:

docker compose up -d

Полезные команды:

pnpm docker:up
pnpm docker:logs
pnpm docker:down

Docker defaults:

Сервис Порт
Web 3000
API 4000
PostgreSQL 5432

Основные scripts

Команда Назначение
pnpm dev Запустить API и Web вместе.
pnpm dev:api Запустить только API service.
pnpm dev:web Запустить только web app.
pnpm build Собрать shared packages, API и Web.
pnpm typecheck Запустить TypeScript checks по всему workspace.
pnpm lint Запустить lint checks по workspace.
pnpm test Запустить package и app tests.
pnpm db:generate Сгенерировать Prisma client.
pnpm db:push Применить Prisma schema для local development.
pnpm db:deploy Применить migrations для deploy/runtime.
pnpm db:seed Заполнить локальную development database.

Основные API-направления

API включает routes для:

  • authentication и profile management;
  • events, event detail pages, registrations, teams и volunteer applications;
  • admin event CRUD, users, event admins, participants, teams, volunteers и analytics;
  • support threads/messages и admin support workflows;
  • media assets, event media gallery, captions, moderation, imports и public media display;
  • email templates, broadcasts, recipients, consent, delivery status и webhook processing;
  • health/readiness checks для проверки runtime.

Статус

EventHub — развивающаяся основа event-platform. Многие продуктовые области реализованы как рабочие full-stack flows, при этом часть модулей продолжает развиваться как platform primitives и production-readiness улучшения.

Почему проект важен для технического обзора

Для рекрутеров и инженерных ревьюеров EventHub демонстрирует практический опыт в:

  • full-stack TypeScript development;
  • организации monorepo и границах shared packages;
  • backend API design с Express, Prisma и PostgreSQL;
  • authentication, roles, permissions, admin workflows и production safety;
  • Dockerized local infrastructure и deployment-oriented configuration;
  • реальных продуктовых сценариях: events, teams, volunteers, support, media, analytics и email operations.

About

Collaborative full-stack event-management platform with Next.js, Express, Prisma, PostgreSQL, admin workflows, teams, volunteers, media, analytics and Docker.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages