front-end API for Mbale Innovators Hub platform
# Mbale Innovators Hub - Frontend
## Overview
This is the frontend application for the Mbale Innovators Hub platform, built with React, Material-UI, and Vite.
## Technologies Used
- React 19
- Material-UI (MUI)
- React Router DOM
- Axios for API calls
- Vite for build tooling
## Installation
1. Clone the repository
2. Install dependencies: `npm install`
3. Start the development server: `npm run dev`
4. Build for production: `npm run build`
## Features
### User Authentication
- User registration and login
- JWT-based authentication
- Role-based access control
### Project Management
- Submit new projects with file uploads
- View public approved projects
- Filter projects by category, faculty, technology
- Role-based dashboards
### User Roles
- **Students**: Submit projects, view dashboard
- **Supervisors**: Review and approve/reject projects
- **Admins**: View analytics and platform statistics
- **Public Users**: Browse approved projects
## Project Structure
```
src/
├── api/ # API client configuration
├── components/ # Reusable UI components
├── context/ # React context for state management
├── hooks/ # Custom React hooks
├── pages/ # Page components
├── routes/ # Routing configuration
├── services/ # API service functions
├── styles/ # Global styles
└── utils/ # Utility functions
```
## Key Components
### Authentication Context
Manages user authentication state and provides login/logout functions.
### Protected Routes
Components that require authentication to access.
### Project Gallery
Public view of approved projects with filtering capabilities.
### Dashboards
Role-specific dashboards showing relevant information and actions.
## API Integration
The frontend communicates with the backend API at `
localhost`.
Key API endpoints used:
- `/auth/*` - Authentication
- `/projects/*` - Project management
## Responsive Design
The application is built with Material-UI and is resp …