CivicTrack - Community Issue Reporting Portal. CSCD602 Advanced Software Engineering, University of Ghana.
# CivicTrack — Community Issue Reporting Portal
Civic infrastructure and sanitation fault reporting for a Ghanaian Metropolitan,
Municipal or District Assembly. Residents report geolocated faults with
photographic evidence; assembly officers triage, assign and progress them
through a guarded lifecycle with a full audit trail.
Built for **CSCD602 Advanced Software Engineering**, University of Ghana.
Author: **Michael Ameyaw (22427696)**.
---
## Documentation
| Document | Contents |
|---|---|
| docs/SRS.md | Requirements specification — 45 Must-have functional requirements, 30 NFRs, MoSCoW prioritisation, traceability matrix |
| docs/effort-estimation.md | Use Case Points and PERT estimates, and how they determined scope |
| docs/system-design.md | Architecture, UML diagrams, data design, design-time technical debt register |
---
## Running locally
### 1. Prerequisites
- Node.js 20 or later
- A PostgreSQL database (a free Neon project is sufficient)
### 2. Configure
```bash
cp .env.example .env.local
```
Fill in at minimum:
| Variable | Required | Notes |
|---|---|---|
| `DATABASE_URL` | Yes | PostgreSQL connection string |
| `NEXTAUTH_SECRET` | Yes | `openssl rand -base64 32` |
| `NEXTAUTH_URL` | Yes | `
localhost` in development |
| `NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME` | No | Omit and photo upload is disabled gracefully — this is NFR-REL-02 behaviour, not a fault |
| `CLOUDINARY_API_KEY` / `CLOUDINARY_API_SECRET` | No | As above |
### 3. Install, migrate and seed
```bash
npm install
npm run db:push # create the schema
npm run db:seed # sequence, categories, test accounts, sample issues
```
### 4. Run
```bash
npm run dev #
localhost
```
---
## Test accounts
Created by the seed. Passwords satisfy the FR-AUTH-03 policy.
| Role | Email | Password |
|---|---|---|
| Administrator | `admin@civictrack.gov.gh` | `Admin@2026` |
| Officer | `officer@civictrack.gov.gh` | `Officer@2026` |
| Officer | `officer2@civictrack …