Logo Lanfrica

JoshuaLaloyo/eventpass

Domain:

digital infrastructure

Record type:

software
Creator:
Jos
Host:
EventPass is a multi-tenant digital ticketing and event management platform for the Ugandan and East African market. It replaces fragmented tools (WhatsApp, paper tickets, Excel, mobile money screenshots) with a single system that lets organizers create events, sell tickets, take payments, and verify attendees at the gate. # EventPass — MVP (Phase 1 + Phase 2) Digital ticketing for events in Uganda. Create event → sell ticket → QR → scan → attendance. Phase 2 adds organizer self-serve tools: staff scoping, sales/attendance reports, closing ticket sales, ToS acceptance, and payout account linking. Built against the master plan (`EVENTPASS_CLAUDE_PLAN.txt` / `CLAUDE.md`) and the Phase 2 docs in `docs/`. Stack: Next.js 14 (App Router) · TypeScript · Tailwind · Prisma · PostgreSQL · Auth.js · Flutterwave (or built-in mock payments) · pdf-lib · html5-qrcode. --- ## 1. Setup (10–15 minutes) **Requirements:** Node 18+, a free Neon PostgreSQL database (or any Postgres). ```bash npm install cp .env.example .env ``` Edit `.env`: 1. `DATABASE_URL` — from Neon: create a project → copy the connection string. 2. `AUTH_SECRET` — run `openssl rand -base64 32` (or type any long random string). 3. Leave `PAYMENT_PROVIDER=mock` for now — you can test the entire flow with no Flutterwave account. Then: ```bash npm run db:push # create tables npm run db:seed # create the admin + test accounts npm run dev # localhost ``` ### Optional: run Postgres locally instead of Neon (works offline) By default `DATABASE_URL` points at Neon (cloud), so local dev needs internet even though the app itself runs on `localhost`. To remove that dependency, run Postgres in Docker and keep Neon only for staging/production: ```bash docker compose up -d # starts a postgres:16-alpine container (see docker-compose.yml) ``` Create `.env.local` (already in `.gitignore`, and Next.js loads it automatically, overriding `.env`): ``` DATABASE_URL="postgresql://eventpass:eventpass@localhost:5432/eventpass?schema=public" ``` Then push the schema and seed the local DB. The Prisma CLI only reads `.env` (not `.env.local`), so pass the URL inline for these two commands: ```bash DATABASE_URL="postgresql://eventpass:eventpass@localhost:5432/eventpass?schema=public" npx prisma db push DATABASE_URL="p …