RECSY is a Flutter-based mobile application designed to help users find the best mobile phone based on their preferences. It provides personalized recommendations, detailed specifications, and a comparison feature to assist in making an informed decision.
- Personalized Recommendations: Get phone recommendations tailored to your needs.
- Detailed Phone Specifications: View in-depth details for each mobile phone, including display, processor, camera, and battery information.
- Compare Phones: Compare the specifications of multiple phones side-by-side.
- Favorites: Save your favorite phones for quick access later.
- User Authentication: Sign in to sync your favorites and preferences across devices.
- Web & Mobile Support: Built with Flutter, the app was initially built for android and the support for web platforms is in development. The app was previuosly deployed on the Google Play Store and now it is available on APKPure (Link: https://apkpure.com/recsy-ai-smartphone-recommend/com.recsy.mobile_recommender).
- Framework: Flutter
- Backend & Database: Firebase
- Authentication:
firebase_auth,google_sign_in - Database:
firebase_database,cloud_firestore - Storage: Used for hosting phone images.
- Authentication:
- State Management: Provider
- UI Components:
carousel_slider: For image carousels.dots_indicator: To display progress for carousels.fluttertoast: For simple user notifications.
- Utilities:
url_launcher: To open external links (e.g., 'Buy Now').http,html,xml,csv: For data fetching and parsing.logger: For application logging and debugging.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Flutter SDK (Version >= 3.0.0)
- A code editor like VS Code or Android Studio.
- A configured Firebase project.
-
Clone the repository:
git clone https://github.com/your-username/mobile_recommender.git cd mobile_recommender -
Set up Firebase:
- Place your
google-services.jsonfile in theandroid/app/directory. - Ensure your Firebase project has Authentication, Realtime Database, and Firestore enabled.
- Place your
-
Install dependencies:
flutter pub get
-
Run the application:
flutter run
To run on a specific device, like Chrome for web:
flutter run -d chrome --web-renderer html
The project follows a standard Flutter application structure:
lib/
├── data/ # Data sources and models
├── models/ # Core data models (e.g., Mobile)
├── screen/ # UI screens/pages of the app
├── services/ # Services for business logic (e.g., ML, recommendations)
├── utils/ # Utility functions and helpers
├── widget/ # Reusable UI widgets
└── main.dart # Entry point of the application
Contributions are welcome! Please feel free to submit a pull request or open an issue to discuss any changes.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.