You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EZGas application is an application to find the nearest gas station with the best price and also comparing them by some characteristics like price. This application has two types of users. One is with authentication in order to have some privileges, which is an Administrator and the other one, without those privileges, which is a general user. For having some special offers to loyal customers there is a need to have a login system and customer management. The loyalty is based on the number of feedbacks and also getting noticed by other people to those feedbacks. This shows how much feedback is valuable.
Administrators in this system should update gas prices periodically for instance on a daily base. For accomplishing that he/she should check changes among the prices. He/She can use some systems to monitor the changes in gas prices. The administrator is also able to guide the user who is asking or help or for advertising some promotions.
Stakeholders
Stakeholder name
Description
Administrator
Authorized Users that use the application to update fuel prices with respect to the station and category
EZGas General user
Uses the application to find nearest gas stations with the best price.
EZGas Server
Sends data related to the gas stations to clients.
left to right directionactorAdministratorasaactorEZGas_General_userasba-- (EZGas_Server)
b-- (EZGas_Server)
(EZGas_Server) --> (Map_system):<<include>>
(EZGas_Server) --> (Payment_system):<<include>>
context diagram github view:
Interfaces
Actor
Logical Interface
Physical Interface
Administrator
GUI
Screen, keyboard
EZGas_General_user
GUI
Screen, keyboard
EZGas_Server
Internet
Wi-Fi/4G-LTE/Lan Connections
Payment_System
Internet
Wi-Fi/4G-LTE/Lan Connections
Map_System
Internet
Wi-Fi/4G-LTE/Lan Connections
Stories and personas
Alice works in an office and when he wants to go to his office he uses his car. For a better experience, he uses some applications like ways or Google map to find the best path to work. For him, it is so useful to find gas stations in his path to work. Because he does not want to change his path so much and consume more fuel for that. Another advantage of finding a proper gas station is loyalty. He can get a special discount using his customer's cards if he is a loyal customer of a special company.
Bob is traveling in his car to a new place and does not know exactly the places and the prices of the gas in the new place. By searching on google map he just finds the place of gas stations and no more data are available about the gas price and also the people's feedback in that gas station. He fills the car using an oil company and he thinks he paid a lot for that he needs to tell the other people not to use that gas station because of that.
persona1: Female, middle age, high income with a car not married
persona2: Male, Married , low or middle income
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Get the position of user to show nearest gas stations
FR2
User must login to the application
FR3
Application will authenticate the user
FR4
Application will contact a local server to get the info with respect to the stations, prices and availability of the near gas stations on the map
FR5
Application will sort properly the list of the available gas station (best price, distance from user and users feedback)
FR6
User chooses a particular gas station
FR7
User fills up his/her car
FR8
User submits feedback
FR9
Update the number of hours to refresh prices
FR10
Register
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Performance
User response time and All functions should complete in < 0.5 sec in 4G and <1 sec in 3G mobile networks
All FR
NFR2
Training time
Time from starting the app to find detail information about gas station
All FR
NFR3
Reliability
percentage of failure during usage
All FR
NFR4
Globalization
Number of languages available in EZGas app
All FR
Use case diagram and use cases
Use case diagram
left to right directionactorEZGas_General_userasaa-- (FR1Gettheposition)
a-- (FR2Logintotheapplication)
a-- (FR6Chooseagasstation)
a-- (FR7fillsupthecar)
a-- (FR10Register)
left to right directionactorEZGas_Serverasaa-- (FR3Userauthentication)
a-- (FR4Showinggasstationsonthemap)
a-- (FR5Evaluates & returnslastupdatedinformation)
left to right directionactorAdministratorasaa-- (FR6Updateprices)
a-- (FR8.1Checkingfeedbacks)
a-- (FR10Register)
Use Cases
Use case 1, UC1 - FR1 Get the position
Actors Involved
EZGas General user
Precondition
Position service should be "ON" on the device
Post condition
Device.location=available
Nominal Scenario
EZGas User turns on his location and runs the application
Variants
If connection not stable, warning message
Use case 2, UC2 - FR2 Login to the application
Actors Involved
EZGas General user
Precondition
Customer has installed EZGas application, User has an account
Post condition
Customer.Authorized = 'true'
Nominal Scenario
EZGas user inserts his/her own credentials
Variants
Customer does a reset password because he/she has forgotten it; User create a new account
The system keeps track of the user's device movement in order to update the results
Variants
Location is not available so the connection error message is shown
Use case 4, UC4 - FR7 Fills up the car
Actors Involved
EZGas General User
Precondition
Gas station chosen, have enough credit
Post condition
fills the car up
Nominal Scenario
User fills up the car by using his/her credit
Variants
Not enough credit
Use case 5, FR3 User authentication
Actors Involved
Administrator , EGas General User
Precondition
Username and password are defined in system
Post condition
A token is returned for future connections
Nominal Scenario
If the user is not authenticated before, using login page submits authentication information and gets a token
Variants
User is not defined, the wrong password
Use case 6, FR4 Showing gas stations on the map
Actors Involved
EZGas General user
Precondition
Nearby gas stations are available
Post condition
Nearest choice with best prices is given
Nominal Scenario
The application will verify if there are any gas stations related to companies in which the customer is a loyal client, otherwise, the selection is made based on price and distance of the gas station.
Variants
No available gas station, Out of the supported area
Use case 7, FR5 Evaluates & returns last updated information
Actors Involved
EZGas General user
Precondition
Gas station chosen
Post condition
customer.money -= purchase
Nominal Scenario
The user puts money at the station terminal to gas up the car.
Variants
customer.offer(Used)
Use case 8, FR6 Update prices
Actors Involved
Customer
Precondition
User has filled up his/her car using the application
Post condition
Given feedback of the service
Nominal Scenario
The user gives feedback on the utility of the application service and maybe prices
Variants
The customer reports some issues/complaints: problem in fill up, complaints about price/service.
Use case 9, FR8.1 Checking feedbacks
Actors Involved
Administrator
Precondition
The User has submitted feedback
Post condition
Feedback recorded
Nominal Scenario
The administrator check feedback type and eventually gives extra loyalty points to the user
Variants
If complaints about prices take it into account.
Use case 10, FR10 Register
Actors Involved
Anonymous
Precondition
None
Post condition
Registered user
Nominal Scenario
Anonymous user registers to use the app
Variants
User is available so no register needed instead forget password.
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC10
Description
Anonymous user registers as User U
Precondition
User should open the application
Postcondition
User U is registered and a token is returned
Step#
Step description
1
User enables GPS and Internet connection
2
User open the app and see the map and touches the Find best gas station
3
System asks for login and U uses the credentials
4
System returns gas station G
Scenario 2
Scenario ID: SC2
Corresponds to UC1,2,3,5,6
Description
User U searches for gas station and finds gas station G
Precondition
Gps system is available and internet connection is reliable
Postcondition
Best gas station is selected with respect to the distance and price
Step#
Step description
1
User enables GPS and Internet connection
2
User open the app and see the map and touches the Find best gas station
3
System asks for login and U uses the credentials
4
System returns gas station G
Scenario 3
Scenario ID: SC3
Corresponds to UC2,3,4,5,7,8,9
Description
EZGas user U fills up the car in gas station G
Precondition
account of U has enough money to fill up the car
Postcondition
account of U updated, credit of U updated
Step#
Step description
1
User selects a gas station G
2
User sets credit for the related price
3
Deduce Price of fuel in G from the remaining credit of U
Scenario 4
Scenario ID: SC4
Corresponds to UC2,3,4,5,7,8,9
Description
User U found gas station G but not enough credit
Precondition
account of U has not enough money to fill up the car
Postcondition
account of U updated, credit no change
Step#
Step description
1
User selects a gas station G
2
User sets credit for the related price but it is not enough
3
Show related error with the capability to charge with payment system
Glossary
classEZGasclassEZGas_General_user {
+ ID+ username+ password
}
classAdministrator{
+ username+ password+ secretKey
}
classGasStation{
+ name+ priceList+ place_position+ Station_review_ID+ lastUpdate
}
classRegister{
}
classUpdatePrice{
+ date
}
classFeedback{
+ rating+ review
}
classInteraction{
+ action_type+ time_&_date
}
noteleftofAdministrator
Admin can login to
the system and update the prices
end notenotetopofEZGas
Provides information about the place
of gas stations and the prices of
different types of gas in DB
end notenotebottomofInteraction
This entity is about defining
types of actions for logging
end notenotebottomofGasStation
Gas station organization which provides
gas for cars depending on the car.This
entity has a position and the price list
and related reviews
end notenotetopofEZGas_General_user
General user that can get info about the prices
and the position of gas stations.
end noteEZGas-- "*" EZGas_General_user :Is member of
EZGas-- "*" Administrator:Is member of
'EZGas -- "*" GasStation :Has the list of'EZGas_General_user-- "*" Feedback : Submits
EZGas_General_user-- "*" Register : Has
Administrator-- "*" RegisterAdministrator-- "*" UpdatePrice :sets
Register-- "*" GasStationUpdatePrice"*"-- "*" GasStationFeedback"*"-- "*" GasStationInteraction<|--RegisterInteraction<|--UpdatePriceInteraction<|--Feedback