The “FixMyStreet Lagos” project is a citizen-centric mobile application designed to enhance community engagement in Lagos, Nigeria. It empowers residents to report infrastructure issues and waste management concerns through a user-friendly interface. Built with Flutter.
# Flutter Supabase "FixMyStreet" App
A Flutter application for reporting local infrastructure issues, built with Supabase for the backend.
## Features
### 🔐 Authentication
- **Email/Password Authentication**: Secure sign-up and login.
- **Phone Authentication**: SMS-based verification for user registration and login.
- **Password Reset**: Email-based password recovery.
### 📱 Real-time Data Management
- **CRUD Operations**: Create, read, and view issue reports.
- **Real-time Sync**: Dashboard and "My Reports" screen update in real-time.
- **Image Uploads**: Users can upload photos of issues to Supabase Storage.
- **Geolocation**: Reports are tagged with the user's current location.
### 🎨 User Interface
- **Material Design**: Clean interface following Material Design guidelines.
- **Responsive Design**: Optimized for different screen sizes (phones and tablets).
- **Loading States**: Smooth loading animations and progress indicators.
- **User-friendly Error Handling**: Clear error messages for auth and data operations.
## Project Structure
```
lib/
├── main.dart # App entry point and all screen/widget definitions
test/
├── widget_test.dart # Basic widget test for the Auth screen
```
## Dependencies
### Core Dependencies
- `supabase_flutter`: Supabase SDK for authentication, database, and storage.
- `image_picker`: For picking images from the camera or gallery.
- `geolocator`: For fetching the user's location.
- `flutter_dotenv`: For managing environment variables.
## Getting Started
### Prerequisites
- Flutter SDK (3.0.0 or higher)
- Dart SDK (3.0.0 or higher)
- Android Studio or VS Code with Flutter extensions
- A Supabase account
### Installation
1. **Clone the repository**
```bash
git clone
cd fix_my_street_lagos
```
2. **Install dependencies**
```bash
flutter pub get
```
3. **Supabase Setup**
- Go to Supabase and create a new project.
- In your Supabase project, navigate to the **SQL Editor**.
- Create a new query to set up t …