# 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 …