roos-fs tasks #125
Updated by Vadim Pariev 11 months ago
**User Story:**
As a mobile app user, I want to log in with my credentials, so that I can access my data securely without needing to create a new account.
**Description:**
The login screen must match the web design and integrate with the new backend API endpoint for authentication.
The Android app must collect user credentials, communicate with the provided API, securely store the session token, and handle errors appropriately.
**Acceptance Criteria:**
- The login screen matches the web design (branding, fields, error messages, etc.)
- A form is present with input fields for:
-- Email/Username
-- Password
- A login button triggers the API call
- Language swithc is present in the screen and German and English languages are provided
**On successful login:**
- The returned JWT/token is stored securely (EncryptedSharedPreferences or Android Keystore)
- The user is redirected to the app’s home/dashboard screen (for not let it be empty, but contain logout button as in the web version)
**On failed login:**
- Appropriate error messages are shown (e.g. “Invalid credentials”, “Server not reachable”)
- No navigation happens
- A loading indicator is shown while the request is in progress
**Other requirements**
- Password reset have to work the same way it is implimented in the web version
- "Remember Me" option saves credentials securely
- The login state is preserved during app restarts if the token is valid
- Use of HTTPS and secure request handling (no plain-text passwords logged)
- A bundle have to be generated to showcase the work