Logo Lanfrica

Follyb2810/yoruba_calendar

Record type:

software
Creator:
Fol
Host:
# 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 …

Languages