Skip to content

Backbone-UTP/events-manager

Repository files navigation

Meetup Manager

A platform to create and manage events, meetups and communities. This repository holds the first iteration: a TypeScript monorepo with a modular-monolith API and a Next.js web app that together cover one end-to-end flow — sign in, create an event, publish it, let attendees register on a public page, and review the attendee list.

What works today

  • Organizer login with a database-backed session (httpOnly cookie).
  • Create, update and publish events with a configurable registration form.
  • Public event page with SSR for sharing and SEO.
  • Public (or auth-gated) attendee registration with capacity and duplicate checks.
  • Organizer dashboard and admin view with the attendee list.

Three bounded contexts carry real code: identities, events, registrations. The rest of the product (communities, proposals, volunteers, check-ins, live interactions…) lives in the roadmap, not as empty folders.

Tech stack

Area Choice
Monorepo pnpm workspaces + Turborepo
API Node.js, Fastify, hand-wired composition root
Domain Plain TypeScript, no framework imports
Persistence PostgreSQL + Drizzle ORM (drizzle-kit migrations)
Web Next.js App Router, React, TanStack Query
Contracts/validation Zod (shared between API and web)
Tests Vitest (unit/use-case/integration), Playwright (E2E)

Quick start

pnpm install
pnpm db:up            # start Postgres (docker) — see docs for the user-space alt
pnpm db:migrate
pnpm db:seed          # demo organizer + a published event
pnpm dev              # API on :3001, web on :3000

Sign in with the seeded organizer: organizer@meetup.test / password123.

Full setup, including the user-space Postgres alternative, is in docs/development/getting-started.md.

Repository layout

apps/
  api/   Fastify API: identities, events, registrations, shared, bootstrap
  web/   Next.js App Router web client
packages/
  shared-kernel/  Result, ids, errors, Zod contracts shared by api + web
  config/         tsconfig base, eslint, prettier
  testing/        Vitest base config and helpers
docs/             Architecture, domain, features, ADRs, roadmap

Documentation

Common commands

pnpm lint              # eslint across the workspace
pnpm typecheck         # tsc --noEmit per package
pnpm test              # unit + use-case tests
pnpm test:integration  # Drizzle repos against a real Postgres
pnpm --filter @meetup/web test:e2e   # Playwright main flow

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors