Greenstand / Greenstand/treetracker-android
Implement Login Feature
- Dominant language
- Kotlin
- Stars
- 101
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
The app user should be able to create a login that functions will all of Greenstand's services.
## Goal / Outcome
Users can create a Greenstand account, and log in to the Tree tracker app at a later date or on another phone.
## User Context
**Primary user:**
Users are individual's with a phone, they have access to internet.
This does not include community growers, who lack access to phones and internet.
**User need:**
When user gets the app, they add their details and take a selfi, however, when they return at a later date or after having removed and reinstalled the app, they can't access that data, and create a duplicate entry.
## Problem Statement
The nonstandard account concept is confusing and should be replaced with a standard account concept.
## Scope
Changes to mobile app sign in interface.
Integrations with Greenstand's Keycloak user authentication system.
Ability to reset password, via emails
## User Stories
- As a user, I want an account on the tree tracker app that I can log back into and access my data
- As a user, I don't want to stay logged into my account until I log out.
- As a user, I use the app off line and needing to log in another time can hinder my progress
- As a user, I will never remember my password and tend not to have an email, so resetting must be accomplished by phone number or whatsapp.
## Constraints
- Basic constraint is listed on [this page]( https://github.com/Greenstand/treetracker-android/wiki/Product-Documentation)
- First time login's can be done on line.
- Users often take the app out in the wilderness, where internet is limited or non-existent. Making a user log in a second time should be avoided unless the user logged out.
## Logic and Rules
- Users should be able to log in and log out.
- Log out should not happen automatically
## Inputs and Outputs
### Inputs
- Email address OR phone number
- (Only users who register phone number) One time code
- First name
- Last name
- Selfie
Key cloak functional
### Outputs
User has a global Greenstand account that they can use to log into other elements of the project (admin panel etc.
## User Flow
- User opens the app and is asked to create an account.
- User name, name,
- Is asked to authenticate the account via email or phone number
- User enters choice of email or phone number
- Unser enters contact data
- User gets a link on phone
- link opens app, or enters code from what's app or something...
- User is asked if they want to add a selfi
- User is asked if they are associated with an organization (are told they can change this later)
- User is logged in.
**Diagram:**
https://www.figma.com/design/VAtukk7j39urb2Ap2KEZsY/Team-Playground?node-id=2953-1234&t=htGdeQ5DrwjP5vgl-4
## UX / Design
Links to Figma, wireframes, flows, prototypes
[TBD]
## Success Metrics
Need to discuss
- Login error rate (after launch?)
- Number of inquiry (after launch?)
- Task success rate (if we will conduct usability testing)
## Technical Notes
### Authentication Architecture
Key Cloak is Critical to this task.
It may require restructuring the way we look at the users and user accounts on the data base
### Other
## Risks and Open Questions
This is a complicated task that holds the following dependencies:
- Data structure
- Key Cloak and dual factor authentication
- Changes to the singing in flow
- There will be a change in the data to collect. We might need to also update the privacy policy
## Dependencies
- Keycloak APIs
- Keycloak international phone text messaging
- Keycloak What's app integration services
- Other tickets - TBD
- Feature flags - TBE
- Data models - TBD
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.