Aimed at keeping Nigeria safer
# Garkuwa Platform
Production-minded foundation for the Garkuwa Foundation's Hausa-first bilingual platform.
Hausa is the canonical public language at `/`; English is secondary at `/en`. The future
`/admin` area lives in the same Next.js application. The NestJS API is a modular monolith.
## Architecture
- `apps/web`: Next.js App Router application for public and future internal routes.
- `apps/api`: NestJS modular-monolith API with configured Prisma database connectivity.
- `packages/i18n`: shared Hausa-first locale constants and independently authored messages.
- `packages/config`: strict TypeScript and shared ESLint configuration.
- `infrastructure`: local PostGIS-capable PostgreSQL 17 server through Docker Compose.
The database models staff identity plus the first anonymous incident-submission domain. A
Hausa-first public reporting form uses that API, and authenticated staff have a narrowly
controlled incident workflow.
Business functionality will continue to be added incrementally.
## Prerequisites
- Node.js 24 LTS
- Corepack with pnpm 10
- Docker Desktop or Docker Engine with Compose
## Repository structure
```text
apps/
api/ NestJS API and Prisma schema
web/ Next.js application
packages/
config/ Shared tool configuration
i18n/ Locale constants and message resources
infrastructure/ Local Docker Compose configuration
.github/workflows/ CI verification
```
## Local setup
1. Copy the example environment file:
```powershell
Copy-Item .env.example .env
```
On macOS or Linux use `cp .env.example .env`.
2. Review the non-secret local values in the repository-root `.env`, then start the
PostGIS-capable PostgreSQL server:
```sh
corepack enable
pnpm docker:up
```
If Docker is unavailable, install Docker Desktop or Docker Engine with Compose support and
ensure the `docker` command is available on your PATH. The wrapper will report that requirement
clearly if the binary is missing.
3. In …