Machine Test Flutter Developer
Machine Test Flutter Developer
Test Instructions:
- Required: Laptop with Flutter installed, internet access for API testing (optional local JSON file
provided if offline).
- Objectives: Develop a fully functional Flutter application that demonstrates Bloc state
Task Description:
Project Requirements
Authentication Module:
- Use a mock API endpoint (or provided JSON data file) to verify login credentials.
- Bonus: Include a 'Remember Me' option using local storage (e.g., SharedPreferences).
- Fetch product data from a provided API endpoint and display it in a ListView with pagination.
- Implement a loading spinner during data fetch, and a 'Load More' button to simulate pagination.
- Use Bloc to manage the product list state, with states for loading, success, and error.
- On clicking a product, navigate to a detail page that shows full product information.
- Use a new Bloc instance to manage the state of this detail page.
- Include a 'Favorite' button that updates a local database (SQLite or Hive) to save or remove the
product as a favorite.
- Bonus: Show a toast notification when a product is added to or removed from favorites.
- Use Bloc to manage the state for displaying and updating favorites.
- Allow users to remove products from their favorites on this screen, with real-time updates.
Evaluation Criteria
- Use Bloc to manage different states across screens (loading, success, failure).
- Use local storage for saving login credentials (if 'Remember Me' is implemented) and favorites.
4. UI and UX (20%)
- Provide code comments explaining key logic, especially Bloc state transitions.
- Include a README file with setup instructions, any third-party packages used, and explanations of