Skip to content

EcoLafaek Mobile App ​

AWS AI Agent Hackathon

πŸ† AWS AI Agent Global Hackathon ​

This Flutter mobile app is part of EcoLafaek's AWS AI Agent Global Hackathon submission, showcasing how mobile applications integrate with autonomous AI agents powered by Amazon Bedrock AgentCore for intelligent environmental monitoring.

πŸ€– AI Integration Flow: ​

  1. Report Submission β†’ FastAPI Backend (AgentCore Runtime) β†’ AI Analysis
  2. Image Analysis β†’ Amazon Bedrock Nova-Pro β†’ Waste Classification

For detailed AI agent architecture, see Backend README.


πŸ“± About ​

EcoLafaek Mobile is a citizen-focused mobile application that empowers residents of Timor-Leste to report waste issues and track their environmental impact. The app provides a streamlined experience for waste reporting with intelligent AI analysis and meaningful progress tracking.

🌱 How The App Works ​

πŸ“Έ Waste Reporting Process ​

  1. Capture: Take a photo of the waste issue using your phone's camera
  2. Location: GPS automatically captures the exact location of the problem
  3. Submit: Add optional description and submit the report instantly
  4. AI Analysis: Amazon Bedrock Nova-Pro automatically identifies waste types (plastic, organic, metal, etc.)
  5. Tracking: Monitor your report status from submitted β†’ analyzing β†’ analyzed β†’ resolved

πŸ—ΊοΈ Interactive Mapping ​

  • Personal Reports: See all your submitted reports plotted on the map
  • Location Context: Understand waste patterns by geographic distribution

πŸ” App Screens ​

πŸ” Login / Registration ​

User authentication and account creation.

LoginRegister


🏠 Home Dashboard ​

Overview of user's reports and statistics.

Dashboard


πŸ“ Report Creation ​

Form for submitting waste reports with photos and location.

Report Step 1Report Step 2Report Step 3


πŸ—ΊοΈ Map View ​

Geographic display of submitted reports.

Map View


πŸ“„ Report Details ​

Detailed view of submitted reports with status updates.

Report Details


πŸ‘€ Profile ​

User account management and settings.

Profile


πŸ“ˆ Stats ​

Detailed view of user and general reporting stats.

Stats 1Stats 2Stats 3Stats 4

πŸ–₯️ Technical Overview ​

System Architecture ​

Complete system architecture: See Diagram/README.md for detailed architecture documentation.

AI-Powered Processing: The EcoLafaek mobile app integrates with an autonomous AI agent backend powered by Amazon Bedrock AgentCore. Images are analyzed using Amazon Nova-Pro v1 for waste classification, with embeddings generated by Amazon Titan Embed for semantic search capabilities. The agent autonomously executes multi-round tool calling to process reports, generate analytics, and provide intelligent insights.

Technology Stack ​

Mobile App (Flutter) ​

EcoLafaek is built with Flutter, providing a cross-platform solution for both Android and iOS users. The app follows a provider-based state management pattern with a clean, modular architecture.

  • Frontend: Flutter/Dart
  • State Management: Provider
  • Backend Integration: HTTP/REST API
  • Maps: Flutter Map (OpenStreetMap)
  • Authentication: JWT Token-based auth

Backend & AI Infrastructure ​

The backend leverages AWS services and autonomous AI agent technology:

  • API Server: FastAPI (Python) running on Amazon Bedrock AgentCore runtime
  • AI Analysis: Amazon Bedrock Nova-Pro v1 for waste classification
  • Autonomous Agent: Multi-round tool calling with AgentCore Code Interpreter & Browser
  • Vector Embeddings: Amazon Titan Embed Image v1 (1024-dimensional)
  • Image Storage: AWS S3 with organized folder structure
  • Database: Distributed SQL with vector search support
  • Deployment: AWS Lightsail (Ubuntu 22.04)

Dependencies ​

  • provider: ^6.0.5
  • http: ^1.1.0
  • flutter_map: ^5.0.0
  • latlong2: ^0.9.0
  • geolocator: ^10.0.0
  • image_picker: ^1.0.4
  • cached_network_image: ^3.3.0
  • flutter_secure_storage: ^9.0.0
  • shared_preferences: ^2.2.1
  • intl: ^0.18.1
  • animate_do: ^3.1.2

Full dependencies in pubspec.yaml

πŸš€ Getting Started ​

Prerequisites ​

  • Flutter SDK (3.13.0 or later)
  • Dart SDK (3.1.0 or later)
  • Android Studio / XCode
  • Git

Installation ​

  1. Clone the repository:
bash
git clone https://github.com/ajitonelsonn/EcoLafaek.git
cd EcoLafaek/ecolafaek
  1. Install dependencies:
bash
flutter pub get
  1. Create .env.development file with required environment variables:
API_BASE_URL=https://www.ecolafaek.xyz
  1. Run the app:
bash
flutter run

πŸ“Š Project Structure ​

lib/
β”œβ”€β”€ main.dart                              # App entry point with provider setup
β”œβ”€β”€ config/
β”‚   └── theme.dart                         # App-wide theme configuration
β”œβ”€β”€ models/                                # Data models
β”‚   β”œβ”€β”€ report.dart                        # Waste report data structure
β”‚   β”œβ”€β”€ user.dart                          # User profile model
β”‚   └── waste_type.dart                    # Waste classification types
β”œβ”€β”€ providers/                             # State management (Provider pattern)
β”‚   β”œβ”€β”€ auth_provider.dart                 # User authentication & session
β”‚   β”œβ”€β”€ location_provider.dart             # GPS location services
β”‚   β”œβ”€β”€ report_provider.dart               # Report CRUD operations
β”‚   └── stats_provider.dart                # Analytics & impact metrics
β”œβ”€β”€ screens/                               # Main app screens
β”‚   β”œβ”€β”€ home_screen.dart                   # Dashboard with report tracking
β”‚   β”œβ”€β”€ login_screen.dart                  # User authentication
β”‚   β”œβ”€β”€ register_screen.dart               # User registration
β”‚   β”œβ”€β”€ report_screen.dart                 # Waste report submission
β”‚   β”œβ”€β”€ map_screen.dart                    # Interactive map with reports
β”‚   β”œβ”€β”€ stats_screen.dart                  # Personal impact analytics
β”‚   β”œβ”€β”€ profile_screen.dart                # User account management
β”‚   β”œβ”€β”€ report_detail_screen.dart          # Individual report details
β”‚   └── otp_verification_screen.dart       # Email verification
β”œβ”€β”€ services/                              # External service integrations
β”‚   β”œβ”€β”€ api_service.dart                   # Backend API communication
β”‚   β”œβ”€β”€ auth_service.dart                  # JWT token management
β”‚   └── storage_service.dart               # Local data persistence
β”œβ”€β”€ widgets/                               # Reusable UI components
β”‚   β”œβ”€β”€ loading_widget.dart                # EcoLafaek crocodile loader
β”‚   β”œβ”€β”€ loading_indicator.dart             # Compact loading states
β”‚   β”œβ”€β”€ report_card.dart                   # Report display cards
β”‚   β”œβ”€β”€ report_tracking_widget.dart        # Modern progress dashboard
β”‚   └── custom_button.dart                 # Themed buttons
└── utils/                                 # Helper functions
    β”œβ”€β”€ navigation_utils.dart              # Route management
    └── date_utils.dart                    # Date formatting

For Judges ​

To review and test the app, judges can easily download the mobile app and login using the following credentials:

Login Credentials ​

UsernamePassword
usertest1234abcd

πŸ“ž Additional Documentation ​


'tais'

Built with ❀️ for Timor-Leste | AWS AI Agent Global Hackathon

Built with ❀️ for Timor-Leste | AWS AI Agent Global Hackathon