System Analysis of Ride Sharing application api and Practical Experience
Background
Bangladesh is a most densely populated country in the world. Hence resulting in traffic jam. Safe and comfortable traveling is main problem for city. We are now searching for solution to these problems. Ride sharing is one of the many solutions to it. Here a person can share ride with another in return of charge and thus reducing jam on the road. In the last few years, we have seen a significant number of local startups getting into the ride sharing business. Some of these services are very good, providing premium ride quality and levels of service. Others are not so great, but get the job done somewhat.
So we get idea from different ride sharing application, which are already popular in USA and European countries. But our idea is little bit different from others.Few month ago i have been working on project named as “solution architect”. When we start the project, we have to analysis the project structure and problem domain of ride sharing apps .
In the last few years, we have seen a significant number of local startups getting into the ride sharing business. Some of these services are very good, providing premium ride quality and levels of service. Others are not so great, but get the job done somewhat.
System analysis and feature extertions
We have provided the features which are not available in other ride sharing apps, including their current facilities
- Payment gateway integration ( Visa, mastercard )
- Prepaid payment system for ride sharing within Town
- Car, byke and CNG for ride sharing
- For better performance, provide better map service
- Provide the prediction for traffic for Driver and customer
- Faster Response and Request service
- Realtime notification service
- Traveller automated security suggestion
- Local company can use Our api to build their own application for business
System Context Design and development
To analysis problem domain, I have use the Soft System Methodology (SSM) to design the context diagram of system. find out the problem domain. I have use Rich picture to introduce the soft system analysis for ride sharing apps problem domain identification.
What is Rich Picture?
A Rich Picture is a way to explore, acknowledge and define a situation and express it through diagrams to create a preliminary mental model. A rich picture helps to open discussion and come to a broad, shared understanding of a situation.[1]
This option was originally developed as part of Peter Checkland’s Soft Systems Methodology (SSM), developing a rich picture covers steps 1 & 2 of the SSM which describe the real world[1]:
- Identify the issue you wish to address, and
- Develop an unstructured description of the situation where the issues lies — how it is
The key part of the rich picture are:
- Structures
- Processes
- Climate
- People
- Issues expressed by people
- Conflict
Those are key part are provide the information about functional and non function requirment of the problem domain.
I have design the rich picture for Ride Sharing apps. which I have provide below
From the key part of the rich picture we will find the different functional and non functional requirment and actions. we also find the key actor of the problem domain of ride sharing apps. so we can design the use case diagram which will more understable for system context design and build the business model. Use Case diagram is UML (Unified Modeling Language) diagram.
What is Use Case Diagram?
Use case diagrams are usually referred to as behavior diagrams used to describe a set of actions (use cases) that some system or systems (subject) should or can perform in collaboration with one or more external users of the system (actors). Each use case should provide some observable and valuable result to the actors or other stakeholders of the system[2].
Two Types of Use Case Diagram are Introduce by UML:
- Business Use Case Diagram
While support for business modeling was declared as one of the goals of the UML, UML specification provides no notation specific to business needs. Business use cases were introduced in Rational Unified Process (RUP) to represent business function, process, or activity performed in the modeled business. A business actor represents a role played by some person or system external to the modeled business, and interacting with the business. Business use case should produce a result of observable value to a business actor[2].
2. System Use Case Diagram
(System) Use case diagrams are used to specify[2]:
- (external) requirements, required usages of a system under design or analysis (subject) — to capture what the system is supposed to do[2];the functionality offered by a subject — what the system can do[2];
I have use System Use Case Diagram to describe the system actions and actors of Ride Sharing application
Server Architecture for Ride Share Applicaiton
Server is vital part for ride sharing application. because this app needs lot of bandwidth. Server also invoke lot of traffic and realtime nofication processing. So I have design the server, which diagram is provide below
ERD Diagram for Ride Sharing Application
An entity relationship diagram (ERD), also known as an entity relationship model, is a graphical representation of an information system that depicts the relationships among people, objects, places, concepts or events within that system[3].
There are Three basic components of an entity relationship diagram:
- Entities: are objects or concepts which data stored about them.
- Attributes: which are properties or characteristics of entities.
- Relationships: Information or issue between and among those entities.
Entity Relationship Diagram of For Ride Sharing Application
Activity Diagram for Ride Sharing Application
Activity diagrams are typically used for business process modeling, for modeling the logic captured by a single use case or usage scenario, or for modeling the detailed logic of a business rule. Although UML activity diagrams could potentially model the internal logic of a complex operation it would be far better to simply rewrite the operation so that it is simple enough that you don’t require an activity diagram. In many ways UML activity diagrams are the object-oriented equivalent of flow charts and data flow diagrams (DFDs) from structured development[4].
Element of Activity Diagram:
- Initial node. The filled in circle is the starting point of the diagram. An initial node isn’t required although it does make it significantly easier to read the diagram[4].
- Activity final node. The filled circle with a border is the ending point. An activity diagram can have zero or more activity final nodes[4].
- Activity. The rounded rectangles represent activities that occur. An activity may be physical, such as Inspect Forms, or electronic, such as Display Create Student Screen[4].
- Flow/edge. The arrows on the diagram. Although there is a subtle difference between flows and edges I have never seen a practical purpose for the difference although I have no doubt one exists. I’ll use the term flow[4].
- Fork. A black bar with one flow going into it and several leaving it. This denotes the beginning of parallel activity[4].
- Join. A black bar with several flows entering it and one leaving it. All flows going into the join must reach it before processing may continue. This denotes the end of parallel processing[4].
- Condition. Text such as [Incorrect Form] on a flow, defining a guard which must evaluate to true in order to traverse the node[4].
- Decision. A diamond with one flow entering and several leaving. The flows leaving include conditions although some modelers will not indicate the conditions if it is obvious[4].
- Merge. A diamond with several flows entering and one leaving. The implication is that one or more incoming flows must reach this point until processing continues, based on any guards on the outgoing flow[4].
- Flow final. The circle with the X through it. This indicates that the process stops at this point[4].
- Note. A standard UML note to indicate that the merges does not require all three flows to arrive before processing can continue. An alternative way to model this would have been with an OR constraint between the no match and applicant not on match list flows. I prefer notes because stakeholders find them easier to understand[4].
I have design different activity diagram which describe different action or process or business logic of the Ride Sharing application.
Activity Driver Registration Process
Activity Diagram for User Registration Process
The Important Part of the Ride sharing application is Handling the Ride Request. I have created the Activity diagram which is provide the clear idea about ride request handling process
During the Ride Sharing is Critical process. We need the Socket.io Interaction for doing this process. Save the Information in History is most important. Also have the Lat and Log for Current Position is important for billing for customer.
Payment Process for Client and driver
Promo Code is Important Part of the Applicaition. By this client will get benefited from getting the ride from Ride Sharing Application’ Driver. I have provide the Activity Diagram for Promo Code generate and Distribution
Suggested Tools and Technique for Development
Development Language
- Javascript
Development framework
- Express JS
- React JS
- Mocha and Chai
- Redux for state management
Development Environment
- Node JS
- Docker
- PM2
Development Database
- MongoDB
- Postgresql
Development IDE
- IntelliJ IDEA
- VScode
- Terminal 2
- Postman for API testing
Plugins
- Nodemailer
- twilio sms node js
- Phantomjs
- Mongoose (ORM)
- Swagger for api documentation
- Google Maps
- Open Street Maps
- Socket.io
- Json Web Token for authentication
This is a Sample Development Process for Ride Sharing Application. If any one has different concepts,please suggest me to update the my discussions.
[References]
[1]Kaye Stevens Research Fellow, RMIT University. Melbourne. Rich Pictures, https://www.betterevaluation.org/en/evaluation-options/richpictures
[2] UML Use Case Diagrams, https://www.uml-diagrams.org/use-case-diagrams.html
[3] Entity relationship diagram (ERD), Margaret Rouse, https://searchdatamanagement.techtarget.com/definition/entity-relationship-diagram-ERD
[4] UML 2 Activity Diagrams: An Agile Introduction, http://agilemodeling.com/artifacts/activityDiagram.htm