Project Title: MatchMate
Project Description:
Create an Android app that simulates a Matrimonial App by displaying match cards similar to
Shaadi.com's card format. The app should use the provided API to fetch user data and
display it in a recycler view. Users can accept or decline matches, and the app should store
and display their decisions persistently, even in offline mode.
Requirements:
1. API Integration: Fetch user data from the provided API
(`https://randomuser.me/api/?results=10`) to populate the match cards.
2. Card Design: Design the match cards which includes user images, basic details, and two
action buttons (Accept and Decline). (Below is a just sample for reference but you should
improvise its UX/UI)
3. Accept/Decline Functionality: When a user clicks on the Accept or Decline button, update
the card UI to show the corresponding status (Member Accepted/Member Declined) and
update the database accordingly.(Below is a just sample for reference but you should
improvise its UX/UI)
4. RecyclerView: Implement a RecyclerView to display the match cards. Each card should
show user information and action buttons.
5. Local Database: Use a local database (e.g., Room) to store user profiles and their
acceptance/decline status. The database should handle offline storage and persistence.
6. Offline Mode: Ensure that the app functions seamlessly in offline mode. Cached data
should be displayed, and users should be able to accept/decline matches even without an
internet connection. Sync data with the server when the connection is restored.
7. Design Patterns: Implement appropriate design patterns to separate concerns and
improve maintainability.
8. Best-in-Class Libraries: Utilize libraries such as Retrofit for API calls, Picasso or Glide for
image loading, Room for local database, and LiveData for data flow management.
9. Clean UI: Design an intuitive and visually appealing user interface that adheres to modern
Android design guidelines.
10. Error Handling: Implement error handling for API calls, database operations, and network
connectivity.
Submission Guidelines:
1. Set up a GitHub/Gitlab repository for the project and commit your progress regularly.
2. Create a README file detailing the project's functionality, libraries used, and any special
instructions for running the app.
3. Ensure the app meets the assignment requirements and functions as described.
4. Submit the GitHub/Gitlab repository link within 3 to 4 days.
Notes:
- As the assignment emphasizes the use of best-in-class libraries and design patterns, focus
on clean code architecture and utilizing the suggested libraries effectively.