# Kọ́jọ́dá — Yoruba Calendar
A community platform for tracking Yoruba festivals, honoring the Orisa, and managing cultural events.
## Features
- **Yoruba Calendar** — 4-day week cycle with traditional date names
- **Festival Directory** — Browse published community events
- **Orisa Guide** — Reference for deities and their festivals
- **Event Creator Dashboard** — Create, draft, publish, and manage events with tickets
- **Authentication** — Email/password + Google, GitHub, Twitter via NextAuth
## Tech Stack
- Next.js 16 (App Router)
- PostgreSQL + Prisma 7
- NextAuth v5 (JWT sessions)
- Tailwind CSS 4 + Radix UI
- Zod + Formik validation
## Getting Started
### 1. Install dependencies
```bash
npm install
```
### 2. Configure environment
Copy `.env.example` to `.env` and fill in your values:
```bash
cp .env.example .env
```
### 3. Set up the database (local SQLite)
```bash
npm run db:local
```
This runs `prisma db push` (no migrations needed) and seeds Orisas + sample festivals.
> **Production (PostgreSQL):** Uncomment the Postgres lines in `prisma/schema.prisma`, `prisma.config.ts`, `utils/prisma-client.ts`, and set your Supabase/Postgres `DATABASE_URL` in `.env`. Then run `npx prisma migrate deploy`.
### 4. Run the dev server
```bash
npm run dev
```
Open
localhost.
## Environment Variables
| Variable | Description |
|----------|-------------|
| `DATABASE_URL` | SQLite locally: `file:./dev.db` — Postgres in production |
| `NEXTAUTH_SECRET` | Secret for session signing (`openssl rand -base64 32`) |
| `NEXTAUTH_URL` | App URL (e.g. `
localhost`) |
| `NEXT_PUBLIC_BASE_URL` | Public base URL for server-side fetches |
| `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` | Google OAuth (optional) |
| `GITHUB_ID` / `GITHUB_SECRET` | GitHub OAuth (optional) |
| `TWITTER_ID` / `TWITTER_SECRET` | Twitter OAuth (optional) |
| `PAYSTACK_SECRET_KEY` | Paystack secret key for book & ticket payments |
| `RESEND_API_KEY` | Resend API key for order …