React Native based mobile app for Ethiopian Electric Utility Complaint Management Project.
# EEUCMS Mobile App
This is the official mobile application for the **Ethiopian ELectric Utility Complaint Management System (EEUCMS)**. The app allows users to easily make complaints, view complaint history, and manage their profiles. It uses an AI-based backend to classify, route, and escalate complaints for faster resolution.
## π Tech Stack
- **Framework**: Expo (React Native)
- **UI Library**: React Native Paper
- **State Management**: Zustand
- **API**: Axios for backend communication
- **Toast Messages**: `react-native-flash-message`
## π Folder Structure
```
app/
βββ tabs/ # Tab navigation pages
β βββ home.tsx
β βββ make-complaint.tsx
β βββ profile.tsx
βββ login.tsx # Login screen
βββ register.tsx # Register screen
assets/
βββ constants/
β βββ profileData.ts # Profile form field definitions
hooks/
βββ useUpdate.ts # Profile update logic
βββ useUser.ts # Fetch and store current user
store/
βββ userStore.ts # Zustand user state
utils/
βββ profileUpdateSchema.ts # Profile validation schema
````
## π§ Features
- π Secure login & registration with OTP
- π Submit complaints with optional file upload
- π¬ Integrated AI chatbot (planned)
- π View and filter complaint history
- π€ Edit profile information
- βοΈ Cloudinary file storage (planned for uploads)
- π± Fully responsive mobile UI with dark mode
## π οΈ Installation
```bash
# 1. Clone the repo
git clone
github.com
cd aicms-mobile
# 2. Install dependencies
npm install
# 3. Start development server
npx expo start
````
> β οΈ Requires Expo CLI and Node.js installed.
## π Environment Variables
Create a `.env` file with:
```
API_BASE_URL=your_api_url
```
> Make sure you use `withCredentials: true` in all axios requests.
## π§ Important Design Decisions
* All design tokens (fonts, colors) follow EEUCMS branding:
* Primary: `#ff784b`
* Secondary: `#c6635a`
* Background: `#121212`
* Font: ` β¦