# GovTrack Kenya
**A Web-Based Platform for Integrated Tracking & Retrieval of Lost Government Documents**
> Machakos University CS Project Β· Victor Mauti Cosmas Β· J17-1239-2022
---
## π Project Structure
```
govtrack-kenya/
βββ backend/ β Node.js + Express + MongoDB API
β βββ models/ β Mongoose data models
β β βββ User.js
β β βββ Document.js
β β βββ LostReport.js
β β βββ FoundItem.js
β βββ routes/ β Express API routes
β β βββ auth.js β Register / Login / JWT
β β βββ documents.js β Track & view documents
β β βββ lostReports.js β Submit & view lost reports
β β βββ foundItems.js β Search found items
β β βββ admin.js β Admin-only endpoints
β βββ middleware/
β β βββ auth.js β JWT protect & adminOnly middleware
β βββ server.js β Express app entry point
β βββ seed.js β Seed database with sample data
β βββ .env β Environment variables
β βββ package.json
β
βββ frontend/ β React app
βββ src/
βββ api/
β βββ axios.js β All API calls (Axios)
βββ context/
β βββ AuthContext.jsx β Global auth state + JWT storage
βββ components/
β βββ Icon.jsx β SVG icon library
β βββ Sidebar.jsx β Navigation sidebar
β βββ StatusBadge.jsx β StatusBadge + DocTypeIcon
βββ pages/
β βββ LandingPage.jsx
β βββ AuthPage.jsx β Login + Register
β βββ Dashboard.jsx
β βββ CitizenPages.jsx β Track, MyDocs, ReportLost, FoundItems, MyReports
β βββ admin/
β βββ AdminPages.jsx β All 5 admin pages
βββ styles/
β βββ global.css
βββ App.jsx β Main router
βββ index.js
```
---
## π Setup Instructions
### Prerequisites
- Node.js (v18+)
- MongoDB (local or MongoDB Atlas)
- Windsurf / VS Code
---
### 1. Backend Setup
```bash
cd backend
npm install
```
Edit `.env` with your MongoDB URI:
```
PORT=5000
MONGO_URI=mongodb://localhost:27017/govtrack_kenya
JWT_SECRET=go β¦