Logo Lanfrica

mkojoa/civictrack

Domain:

digital infrastructure

Record type:

softwareproject
Creator:
mko
Host:
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 …