Home
Here the user can start a Journey, see exsisting ones, see tickets and passes they have purchaced and start a new serch/journey.
Task Chat LaunchThis document is not meant to outline how to use the API endpoints, rather how to build it. We outline what it's capabilities should be, once you have built them, you can create documentation on how to utilize them on the APIs tab.
- Status & Details
- User Stories, Flows & Personas
- Features & Functions
- Data
Description
The Home will grow over time, adding new sections and features, the goal is to create a simple and easy to understand view of everything the user needs at a glance without needing to go to otrher views. In a later version we will merge the transit home into the GO Home and dynamicly display the rights sections and data based on if the user if using public transit or a car.
Status
These details are only updated with each release, for more acurate updates and keeping track of progress, see the task in GitHub.
| Doc Status | Product Status | Last Update | Version | Release | Phase |
|---|---|---|---|---|---|
| In Progress | Research | - | 0.00 | Internal | Alpha |
Team
| Product Owner | Lead Dev |
|---|---|
| Mendy | Yossi |
Reminders
- Keep code lean and clear
- follow the outlined arcetecture
- write commetes in your code
- update the staus in the docs and in GitHub
- try not to recreate functions we alredy have, rather update exsiting functions to support your needs
- Be sure to follow the release guidelines
- Update Documentation
- keep API docs up to date each time you update or add endpoints
Links & Resources
User Stories
Persona One
Update Coming Soon
As a busy user I don’t want to watch but rather listen to a podcast, however, when I hear a voice I don’t recognize, I want to take a glance at my phone to see a name and/or photo of who is talking or maybe ask the built-in “AI/assistant”.
User Flows
Personas
Features
Below is a list of features that will be utilized in order to deliver the best account features and functionalities. The details bellow are not comprehensive feature details but rather, describe how the features will be utilized within the account, for further details, please see the individual feature documentation.
-
[Journey]
A journey is a way for the user to set a start location, stops and end location. To start a jrouney a user can enter a start location or we auto detect the location, and a destination as well as stop along the way. Search will generate multiple journey sugestion and the user can choose one, save it or buy a ticket.
-
[Open Journey]
The user can also start a Journey by simply scanning a QR, swip on the journey card as other ways we will develop in the future. This is what we cunsider a "Open Jeourney" since we do not know the destination, we keep the journey live until we detect or the user swipes to end the journey.
-
[Tickets]
To pay for public transit we will generate a tickest either once the user pays for a journey or if they start an open journey, anytime a journey's status is "Live" meaning they are activly on the trasit, a tickeat much be active/avalible.
For each ticket that is generated, the infomation can be access though a QR code and NFC.
-
-
Passes
A pass is anything that is purchased (once or reacuring) that can be used on multiple jouneies (e.g. dayly pass, monthly subscription, etc).
-
[Promo/Banner]
Here we will promote other GO apps.
-
You can find the Data Structure.
On the document we want to keep all the important data, the first fetch and fast to access.
Auth
Not all accounts will need auth, primaraly accounts will be accessed by other accounts however, indeviduals will need to authenticate. If auth is not reqried than access is reqied and vs.
- Data Structure
- Data Model
- auth
- - method 1
- - - method (social, local, keypas)
- - - created (date)
- - - email
- - - password
- - - status
- - - expried
- - method 2
- - - method (pin)
- - - created (date)
- - - pincode (******)
- - - status
- - - expried (date)
Here is what the model might look like, this should be a sub collection within the account document, each method will have its own document and the fields might vary based on the method.
class AuthMethod {
final String method;
final DateTime created;
final String? email;
final String? password; // Store securely or hash
final String? status;
final String? pincode; // Store securely or hash
AuthMethod({
required this.method,
required this.created,
this.email,
this.password,
this.status,
this.pincode,
});
Map<String, dynamic> toMap() {
return {
'method': method,
'created': created.toIso8601String(),
'email': email,
'password': password,
'status': status,
'pincode': pincode,
};
}
factory AuthMethod.fromFirestore(Map<String, dynamic> data) {
return AuthMethod(
method: data['method'],
created: DateTime.parse(data['created']),
email: data['email'],
password: data['password'],
status: data['status'],
pincode: data['pincode'],
);
}
}