Disability Enlightenment Foundation (DEF Tanzania) website
# DEF Tanzania Website
Website for **Disability Enlightenment Foundation (DEF)** — Next.js 14 (App Router) + TypeScript + Tailwind CSS + Framer Motion + next-intl (English/Swahili) + Prisma/PostgreSQL.
## Getting Started
1. **Database**: get a free PostgreSQL database from Supabase or Neon, or run one locally with Docker:
```bash
docker run -d --name defotanzania-postgres -e POSTGRES_USER=defo -e POSTGRES_PASSWORD=defo_dev_password -e POSTGRES_DB=defotanzania -p 5433:5432 postgres:16-alpine
```
2. Copy `.env.example` to `.env` and fill in `DATABASE_URL`, `ADMIN_PASSWORD`, and `ADMIN_SESSION_SECRET`.
3. Install dependencies, create the database tables, and seed starter content:
```bash
npm install
npm run db:migrate
npm run db:seed
```
4. Run the dev server:
```bash
npm run dev
```
Visit `
localhost` (it redirects to `/en`). Swap `/en` for `/sw` to view the Swahili version. The admin panel is at `/admin/login`.
```bash
npm run build # production build
npm run start # run the production build locally
npm run db:studio # visual database browser (Prisma Studio)
```
## Project Structure
- `app/[locale]/` — one route folder per public page (Home, About, Meet the Team, Programs, Projects, News, Gallery, Publications, Partners, Volunteer, Donate, Contact)
- `app/admin/` — password-protected content admin (see below), outside the `[locale]` tree
- `app/api/` — form-submission endpoints (`contact`, `volunteer`, `donate`) that write to the database, plus `api/admin/login|logout`
- `components/` — design system (`ui/`, `motion/`, `media/`, `layout/`), plus page-specific sections (`home/`, `projects/`, `gallery/`, `forms/`)
- `i18n/en.json` / `i18n/sw.json` — copy for pages that aren't database-backed (nav, labels, About/Programs/Projects/Gallery/Partners content). Edit these files directly to change that text.
- `prisma/schema.prisma` — database schema. `prisma/seed.ts` — starter content loaded by `npm run db:seed`.
- `lib/prisma.ts`, `lib/content.ts` — d …