- Proficient knowledge of the Dart programming language and the Flutter framework
- Understanding of Backend REST APIs (to communicate with team members)
- Ability to manage Material Design, including database handling and scaling applications to handle load changes
- Knowledge of accessibility and security compliance
- Experience with version control, such as Git
- Native app experience will be an add-on (Optional)
Core Requirements:
- Create UI based on the given screenshots (You need to create the auth UI)
- Make models as per design UI and bind with UI
- Following points need to be considered while making the designs:
- Use Slivers as much as possible
- Make user experience smooth
- Page navigation should be Shimmer-based
- Search should be in full screen
- ListView should be animated based on user gestures
- MVP / MVVM / Others (Architecture Pattern)
- Repository Architecture (Optional)
- Bloc Pattern / Provider / GetX (any works)
Implement Login and Register functionality using the APIs provided below.
POST https://api.rapsap.com/api/v1/mobile/registerUser
Content-Type: application/json
{
"mobile": 8454883226,
"email": "c2905y@gmail.com",
"password": "123456",
"name": "Chandan Yadav"
}POST https://api.rapsap.com/api/v1/mobile/loginUser
Content-Type: application/json
{
"username": "rapsap@gmail.com",
"password": "123456"
}- Add Login and Register screens
- UI design is open but must include:
- Clean Material UI
- Smooth transitions
- Shimmer / Loader during API calls
- Existing screens, navigation, and logic must not break
- Name: Required
- Mobile:
- Exactly 10 digits
- Numbers only
- Email:
- Valid email format
- Password:
- Minimum 6 characters
- Confirm Password:
- Must match password
- Username / Email: Required
- Password: Required
Note: All validations must be handled before making API calls.
API error messages must be displayed clearly using Snackbar / Dialog.
After successful login, use one of the following to store session data:
SharedPreferencesGetX Storage(preferred if using GetX)
isLoggedInflag- User identifier (email / username / id if available)
On app launch:
- If user is logged in → Navigate directly to Payment Dashboard
- If user is not logged in → Show Login Screen
- Avoid unnecessary re-login API calls once session exists
Bonus points for:
- Using local database
- Simplified 3rd party integrations enhancing the app's functionalities and keeping the app size minimal
- Ensure clean, readable, and well-documented code
- Follow Flutter best practices
- Include a proper
README.mdwith setup instructions - Push your code to a GitHub repository
- Share the repository link for evaluation
Good luck! 🚀
Prepared by Bitroot Org.
