# E-County Issue Reporting and Tracking System (Kisii County)
A full-stack web application for managing citizen issue reports and public announcements in Kisii County, Kenya.
## Project Structure
```
E-COUNTY SYSTEM/
├── frontend/ # React TypeScript frontend
├── backend/ # Node.js RESTful API
├── .gitignore
├── README.md
└── package.json # Root package configuration
```
## Tech Stack
- **Frontend:** React, TypeScript, CSS, Responsive Design
- **Backend:** Node.js, Express.js, RESTful API
- **Database:** MongoDB
- **Hosting:** Vercel
- **Version Control:** Git & GitHub
## Features
### Public Landing Page
- Hero section with image carousel (Kisii County imagery)
- Trending announcements
- Call-to-action for issue reporting
- FAQ section
- Footer with contact info
### User Roles
#### 1. Citizen
- Register and secure login
- Report county issues with GPS-based location
- Photo attachment
- Real-time status tracking (Pending → Verified → Assigned → In Progress → Resolved)
- Email notifications
- Issue history and feedback submission
- 1-5 star ratings for resolved issues
#### 2. Field Officer
- Secure login
- View assigned issues
- Update issue status with photos and comments
- Create and manage public announcements
- View workload and task completion
#### 3. Administrator
- Create and manage all users
- View county-wide issue analytics
- Verify and assign issues
- Monitor SLAs and performance
- Generate reports (PDF/CSV)
- Configure categories and departments
## Getting Started
### Prerequisites
- Node.js v16+
- MongoDB
- npm or yarn
### Installation
```bash
# Install dependencies
cd frontend && npm install
cd ../backend && npm install
# Create .env files in backend with MongoDB connection
# See backend/.env.example
```
### Running the Application
```bash
# Start backend (from backend directory)
npm run dev
# Start frontend (from frontend directo …