Logo Lanfrica

LucylleMakachia/afrisight-app

Record type:

software
Creator:
Luc
Host:
An app showcasing african countries and details about them # Afrisight Afrisight is a cross-platform Flutter application that lets users explore, search, and learn about African countries, manage favorites, and personalize their experience with profile and notification features. ## Features - **Explore African Countries:** Browse, search, and filter all African countries with details like capital, population, area, borders, currencies, languages, region, subregion, and timezones. - **Favorites:** Mark countries as favorites for quick access. - **Profile Management:** Edit your profile, upload a profile image, and manage preferences (dark mode, notifications). - **Onboarding & Authentication:** Guided onboarding for new users, sign up/sign in with validation and local persistence. - **Notifications:** Receive and view app notifications. - **Robust Error Handling:** Handles API/network errors gracefully. - **Caching:** Reduces redundant API calls for better performance. - **Unit Tests:** Ensures stability and correctness of core logic. ## Project Structure ``` afrisight/ ├── lib/ │ ├── app/ │ │ ├── bindings/ # Dependency injection setup (app_bindings.dart) │ │ ├── controllers/ # State management (country_controller.dart, profile_controller.dart, etc.) │ │ ├── models/ # Data models (country.dart, user.dart) │ │ ├── routes/ # App routing (app_pages.dart, app_routes.dart) │ │ ├── screens/ # UI screens (home_screen.dart, country_details_screen.dart, etc.) │ │ ├── services/ # API, cache, notification services (api_service.dart, cache_service.dart, notification_service.dart) │ │ ├── themes/ # Light/dark theme (app_theme.dart) │ │ ├── widgets/ # Reusable widgets (custom_search_bar.dart, loading_widget.dart) │ ├── main.dart # App entry point (main.dart) ├── test/ # Unit and widget tests (widget_test.dart) ├── assets/ # Images and icons ├── andr …