
# Government Citizen Interaction Centre (GCIC) Portal – Frontend

This is the frontend for the GCIC Citizen Portal, built with React, Vite, and Tailwind CSS. The portal enables citizens to interact with government services, submit complaints, participate in polls, and get support.

## 🚀 Getting Started

### Prerequisites
- Node.js (v18+ recommended)
- npm (v9+ recommended)

### Installation
```bash
cd client-side
npm install
```

### Running the Development Server
```bash
npm run dev
```
The app will be available at `http://localhost:5173` by default.

### Building for Production
```bash
npm run build
```

## 📁 Project Structure

- `src/pages/` – Main page components (Home, Login, Register, Complaints, PollsSurveys, Chatbot, ForgotPassword, etc.)
- `src/components/` – Reusable UI components (Navbar, Footer, FloatingChatButton, etc.)
- `src/assets/` – Images and static assets
- `src/App.jsx` – Main app routing
- `public/` – Static files

## ✅ Features – Completed

- Citizen Home Page with hero, carousel, and feature cards
- Authentication: Login, Register, Forgot Password (with background images and overlays)
- File Complaints page (with form and file upload)
- Polls & Surveys page
- Chatbot page (AI-powered support)
- Responsive Navbar and Footer
- Floating Chat Button
- Ministry, Organization, and Agency listings in Navbar
- Modern, responsive UI with Tailwind CSS

## 📝 To-Do / Planned Features

- [ ] Admin Dashboard (manage users, complaints, polls, etc.)
- [ ] User Profile page (view & edit profile, change password)
- [ ] Notifications system (for complaint status, poll results, etc.)
- [ ] Feedback page (user feedback, ratings)
- [ ] Enhanced Chatbot escalation to live agents
- [ ] Analytics Dashboard (for admins)
- [ ] Role-based access (admin, citizen, agent)
- [ ] Improved error handling and loading states
- [ ] Accessibility improvements (a11y)
- [ ] Unit and integration tests
- [ ] Documentation for API integration

## 🤝 Contributing

1. Fork this repo and create a new branch for your feature or bugfix.
2. Follow the existing code style (React functional components, Tailwind CSS for styling).
3. Add your new page/component in `src/pages` or `src/components` as appropriate.
4. Test your changes locally.
5. Submit a pull request with a clear description of your changes.

---

For backend/API setup, see the `../backend/README.md`.
