Software Design Specification - murradkh/Shabus-Home GitHub Wiki
This document gives a detailed description of the different stages during the developing process. It provides several diagrams which discuss a different features of our application, in addition , this document will provide a detailed explanation including technical reviews of what requirements our client asked for whether its functional or non-functional , beside the risks during the developing (written in the previous document SRS).
The main purpose of the design document is to simplize the software architecture and spliting it into technical methods in order to start the developing iterations. this process is done by connecting between the different layers - database, logic, users, GUI interface.
- Preparing us to move from the "documenting" part to the real developing part(coding and styling the screens). -Turning point of the project-
- Used as a reference for spliting the work between the developers.
- To discuss the whole structure of different layers by describing the relations between each component in our application.
- Fixed dissensions about every features that involves design and architecture.
- Used as a reference for testing and bugs handling -thanks to this document, we know more or less how the application suppose to be looking and functioning ,so we can do testing according to the things that appear in this document-.
- Used as reference for final dissensions of every things that involves multiple option, such as which coding language will be used,which environment used during developing, which software used to share the code , etc...)
- Explaining the process of connecting the software with the hardware.
Priority from 1 (very low) to 9 (very high).
Risk High-Medium-Low.
Capability | Description | Priority | Risk if not done | |
---|---|---|---|---|
1 | login | Bus driver should login to the system every time they start a shift | 9 | High |
2 | Passenger Identifying | Every passenger should be identified by their phone number when getting on the bus | 9 | High |
3 | Modifying MOOVIT users list | If it is your first time getting on a Shabus bus,Shabus offers you a one-time free travel.So the system should modify a MOOVIT user so he won't be able to have more free rides. | 7 | Medium |
4 | Coupon system | Shabus offers certain passengers some sort of privileges such as having coupon which allows the passenger to pay less and etc... | 5 | Low |
5 | "shekel per kilo-meter" | For some paths, Shabus offers the passengers a price which they pay one shekel per kilo-meter . so the system should "calculate" the kilo-meters "depending on the stations" so the price would be calculated per each passengers. | 4 | Medium |
6 | Real Time Location | The application should report the bus location every 30 second. | 3 | Low |
7 | NFC (optional) | Shabus thinks that in future they would issue passenger card . exactly like RAV-KAV | 0 | Very Low |
All data will be saved in a external sever that the organization provides us.
The data will be extracted form the server by HTTP requests using REST API.
- Friendly and convenient interface, simple to use.
- The user must be registered to the system before usage.
- The sever must be maintained by the organization.
1.Our application is hybrid application. So we will check this point by activating the application on android device and IOS device.
2.Driver password and passenger phone number should be stored in the database of firebase for testing stage.
3.Creating a fake account in order to simulate the operations that we have implemented.
4.login as a driver.
5.login as a passenger.
6.Modify passenger as a MOOVIT user.