34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# CoFi Registration App
|
|
|
|
## Overview
|
|
Standalone event registration + payment app for CoFi (Collaborative Finance).
|
|
Adapted from `crypto-commons-gather.ing-website` with centralized config.
|
|
|
|
## Architecture
|
|
- **Stack**: Next.js 16 (App Router, standalone) + Mollie + Google Sheets + Mailcow SMTP + Listmonk
|
|
- **Deploy**: Docker on Netcup with Traefik labels
|
|
- **Key pattern**: All event-specific config centralized in `lib/event.config.ts`
|
|
|
|
## Flow
|
|
1. User fills `/register` form → POST `/api/register` → Google Sheets (Pending)
|
|
2. User picks accommodation/payment → POST `/api/create-checkout-session` → Mollie redirect
|
|
3. Mollie webhook POST `/api/webhook` → verify payment → assign booking → update sheet → email → Listmonk
|
|
|
|
## Key Files
|
|
- `lib/event.config.ts` — **Edit this to configure a new event** (pricing, dates, venues, branding)
|
|
- `lib/mollie.ts` — Shared Mollie client singleton
|
|
- `app/globals.css` — Blue/teal OKLch color theme
|
|
- `docker-compose.yml` — Traefik-labeled deployment
|
|
|
|
## Dev Workflow
|
|
```bash
|
|
pnpm install
|
|
pnpm dev # localhost:3000 → redirects to /register
|
|
```
|
|
|
|
## Deployment
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
Traefik auto-discovers via labels. Update Host rule in `docker-compose.yml` for your domain.
|