Welcome to the JKUAT Christian Union App, a mobile application designed to connect students of Jomo Kenyatta University of Agriculture and Technology (JKUAT) with their Christian Union community. The app helps members stay informed, engage with spiritual resources, and participate in CU activities.
We need to create a WelcomeController that will manage the initial user flow upon launching the app. The controller will determine if it's the user's first time using the app and whether the user is authenticated or not. Based on these checks, it will navigate to the appropriate screen.
Requirements:
First-Time Check:
Use GetStorage to check if it's the user's first time using the app.
If it's the first time:
Navigate the user to the Sign-Up page.
If not the first time, proceed with the authentication check.
Authentication Check:
Use GetSecureStorage to check if the user is authenticated.
If authenticated:
Navigate the user to the Home Screen (Bottom Navigation).
If not authenticated:
Navigate the user to the Login Page.
GetX Controller:
Implement the WelcomeController to handle all the logic for the above checks.
Ensure that GetStorage and GetSecureStorage are integrated for persistent data management.
Use GetX navigation methods (Get.to() or Get.offAll()) for smooth transitions.
Bindings:
Bind the WelcomeController to the WelcomePage using GetX's bindings system.
Additional Notes:
The placeholders for the Sign-Up and Home pages will be added for now, and the logic will be implemented later by other team members.
Ensure proper documentation in the controller code to make it easy for further updates and maintenance.
Acceptance Criteria:
The app should check if it's the user's first time and navigate to the sign-up page if true.
If it's not the first time, the app should check if the user is authenticated, navigating to the home page if authenticated, or to the login page if not.
The navigation should be smooth, with the appropriate transitions using GetX.
Resources:
Refer to the GetX documentation for GetStorage and GetSecureStorage.
If needed, placeholder routes for the HomePage and SignUpPage should be added for future development.
Feature: Welcome Controller (User Flow Management)
Issue: #Create_Welcome_Controller
Description:
We need to create a
WelcomeController
that will manage the initial user flow upon launching the app. The controller will determine if it's the user's first time using the app and whether the user is authenticated or not. Based on these checks, it will navigate to the appropriate screen.Requirements:
First-Time Check:
GetStorage
to check if it's the user's first time using the app.Authentication Check:
GetSecureStorage
to check if the user is authenticated.GetX Controller:
WelcomeController
to handle all the logic for the above checks.GetStorage
andGetSecureStorage
are integrated for persistent data management.Get.to()
orGet.offAll()
) for smooth transitions.Bindings:
WelcomeController
to the WelcomePage using GetX's bindings system.Additional Notes:
Acceptance Criteria:
Resources:
GetStorage
andGetSecureStorage
.HomePage
andSignUpPage
should be added for future development.