This document describes a food delivery application project. It discusses using the MeteorJS framework with MongoDB and Node.js to build both a website and mobile app. It proposes combining Dijkstra's shortest path algorithm with traffic light timing to optimize delivery routes. The project evaluation notes challenges integrating new technologies and selecting packages, while the conclusion reflects on prioritizing algorithms over additional features.
2. Introduction
▪ This application is a food delivery service which provides convenience to users who want to
order food on-demand.
▪ This has been a popular invention as individuals are getting busier everyday.
▪ The aim of this application is to get the orders sent out efficiently.
▪ Usable on computers and also mobile devices.
▪ Both the web and mobile platforms work similarly.
3. Website – Web Platform
▪ The website will feature the landing page – Hopped.
▪ represents ’quick’.
▪ Devices have to be connected to the Internet in order to load the system.
▪ To start using the service, the user has to input their delivery address at the address field
provided.
▪ Proceed on with the search button to view the restaurants that are delivering.
▪ Account not required to browse restaurants and menu.
▪ Login required when user wants to check out their order.
4.
5. Mobile – iOS Platform
▪ Runs on mobile but only for devices using iOS
software.
▪ Requires Internet connection and location services.
▪ uses GPS (Global Positioning Systems)
▪ Works by calculating positions and detecting signals
6. Which language?
▪ The MeteorJS full-stack framework – consisting of MongoDB and Node.js
▪ Beneficial for individuals who do not have much experience in deciding on a selection of software
subsystems.
▪ Easy to use because the pages will be automatically updated as codes update.
▪ Can utilize packages.
▪ Customizable packages to extend the functionalities.
▪ MongoDB is an open source database program.
▪ Node.js is a minimal framework which utilizes an event- driven asynchronous I/O model.
7. Existing Solution – Dijkstra’s Algorithm
▪ A well known algorithm to calculate the
shortest path possible between two
points
▪ An algorithm that favours the nearest
nodes and efficiently finds the shortest
paths in a graph consisting of nodes and
edges
▪ Pick the vertex with minimum distance
value and not already included in SPT (not in
sptSET).
▪ Update the distance values of adjacent
vertices of vertex 1.
▪The distance value of vertex 2 becomes 12.
▪We repeat the above steps until sptSet does
not include all vertices of given graph.
*spt: shortest path tree
8. Possible Solution
▪ Combining Dijkstra’s algorithm with traffic light algorithms.
▪ Focusing on getting the shortest route along with the least time spent waiting for the traffic
light to turn green.
▪ Driving on a street takes a constant amount of time to reach the other end.
▪ Driving through a traffic light takes the amount of time you have to wait for it to turn green.
▪ Time: T Value of edge: V
▪ If an edge has value V, time spent traversing the edge will add the value V to the amount of
time spent
(T += v)
▪ Value of a node is denoted by N, and if traversing that node, it will have to wait until T is
divisible by N.
T += (N - T % N) % N
9. Scaled Example
Routes:
S –4–[1]–2–[5]
| |
4 3
| |
[4]–2–[5]–1– E
Bottom route:
Start: 0 + 4 → 4
4 % 1 == 0 #can pass
4 + 4 → 8
8 % 4 == 0 #can pass
8 + 2 → 10
10 % 5 == 0 #can pass
10 + 1 --> 11
End: 11
Time spent: 11
Top route:
Start: 0 + 4 → 4
4 % 1 == 0 #can pass
4 + 2 → 6
6 % 5 != 0 #have to wait
6 + 4 → 10
10 % 5 != 0 #have to wait
10 + 3 --> 13
13 % 5 != 0 #have to wait
13 + 2 – 15
15 % 5 == 0 #we can pass
End: 15
Time spent: 15The bottom route takes a much shorter time compared to the
top route. As shown above, the amount of time spent waiting at
destination vertex will be added when the length of path is
computed.
Key
Edge Value
Node Value
10. Conclusion of Possible Solution
▪ Beneficial to combine both algorithms that might provide a better result.
▪ Having the vehicles to reach the traffic light by the time it turns green
▪ The driver does not have to accelerate from zero speed.
▪ Accelerating from zero takes up more time than doing a slight brake then accelerating again.
11. Use Case Diagram
▪ A user is required to login into their account or
register
▪ If the user forgets their password, they can reset it
with a reset link sent to their registered email
address.
▪ The user has to input their address to show the
restaurants that are delivering
▪ The user is required to add the items they want to
cart and proceed on to the next step.
▪Card payment details and full delivery addresses are
required to complete the order. Additional notes
are optional.
▪ After the payment has gone though, the order can
be tracked until the order is delivered to the user.
12. Administrator Features
▪ This application consists of an administrator side which controls and monitors the front-facing
website.
▪ Only the administrators are able to access this dashboard.
▪ Participating restaurants and their details are added into the database
▪ This is where all the important details can be seen and monitored.
13. Project Evaluation
▪ Research along with trials and errors.
▪ Background research done beforehand would have helped reduce the amount of issues faced.
▪ MeteorJS, was recently introduced so there were not much information it which may have
caused extra time and work.
▪ The packages helped speed the development process.
▪ However, there were multiple packages available for each task so it was important to know
which package will suit the project best.
14. Conclusion
▪ Prioritized the route finding algorithm.
▪ User interface and user experience design were crucial for this project.
▪The system works well and it does what it was supposed to do.
▪ Unfortunately, I was unable to implement my possible solution because it broke my codes.
▪ Additional features could be implemented to improve the application if more time or even a
team of developers were to develop this application were allowed.