Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 8

DownloadManual
Open PDF In BrowserView PDF
Sign Up
● On the sign up page enter a first name, last name, email address, and password.
● Then select how you will be using the service, as a driver or a passenger.
● Lastly, click the sign-up to complete the sign up process.

Login
● On the login page, enter the email and password associated with your account.
● Then select the service associated with your account, driver or passenger.
● Lastly, click the login button to complete the login process.

Request Ride
● Fill in the fields for the pick up location
● Fill in the fields for the destination location
● Click the submit button, a message should appear that the ride has been successfully
scheduled.

Driver View Assigned Route
● After logging in to your driver account, if you have a route assigned to you for the day,
an image of your route should appear as well as a link to get directions for your route
● Click the link to open Bing Maps and get directions for your route

Driver set/update schedule
● After logging into your driver account, click the driver schedule button
● Then on the driver schedule page select the checkboxes for the days you can work and
click the submit button

Back-end Installation:
In order to deploy our project, the prospective client must have both a PHP and MySQL server
running, and must load the empty database schema and webpages into the appropriate folders,
setting access permissions as necessary. Additionally, the client must use a cron or cron-like
utility to schedule the execution of the Java .jar file to run once a day, although such automation
is optional as this can be performed manually; any Java runtime environment earlier than
version 8.0 is not supported.

·​ ​Known problems, bugs, limitations, and unimplemented features
The most recent version of the project performs flawlessly, violating no ordering or capacity
constraints. We have tested its scalability and have found that it continues to perform as
expected, unless unrealistic inputs are given to it. If the proportion of ride requests to drivers
becomes too high, the algorithm takes a considerable time to converge and the resultant routes
are unsuitably long, sometimes exceeding a workday to drive. To compensate for this, we could
have restricted user requests beyond a certain capacity for a given day’s drivers, or we could
have maintained a secondary table for requests to be offloaded to a third party vendor.
One of our UI limitations was the Bing Maps API’s restriction of 25 waypoints in a calculated
route, forcing us to split up the view into multiple subroutes. Should a client of this software wish
to purchase premium access to the API, this limitation would be nonexistent and the UX would
be considerably more polished. A further stretch goal for our user experience would be to
introduce OAuth authentication, rather than unencrypted PHP hashing for passwords, and to
include email communication with both drivers and passengers.
To detect bugs, we have tested our project on empty input, on sparse input, and on
unrealistically large input. To date, we have fixed all resultant bugs, as demonstrated by the
records contained in the Test Suite documentation.
Acknowledgments: Thanks to Dr. H and Dr. Wang for their assistance and guidance in
developing the pathfinding algorithm.

Paratransit Fleet Scheduler Abstract
Uber and Lyft are companies in the transportation field that make obtaining a ride from
point A to point B as easy as a tap of your finger. ​Ridesharing is also a topic of discussion with
energy efficient vehicles emerging at consumer friendly prices. Combining the two and with a
business demand in mind we decided to satisfy the needs of the disabled. Our paratransit fleet
scheduler is created for users to request a ride ahead of time. Users will be picked up at their
location dropped off at their destination in a promptly manner. The hypothesis was clear, devise
a static algorithm which would account for vehicle capacity and provide riders with the shortest
travel distance.​ Throughout the semester a few pathfinding algorithms were explored which
would need to satisfy runtime, path efficiency, and capacity of a vehicle. K-means clustering
proved to be a highly effective way to group requests into close proximity. Clustered groups are
then supplied to the pathfinding algorithm. Early considerations for pathfinding were Djikstra’s
algorithm and exhaustive search. Both proved to be cumbersome designs for the problem at
hand. The final algorithm incorporates Best-First Branch and Bound pathfinding. Our dampened
greedy heuristic, combined with the sorting we perform on expected value, performs
considerably faster than local search alone and cuts down the explored search space by an order
of magnitude in some test cases. Pathfinding scales appropriately with large input, provided the
proportion of drivers grows at a similar ratio, which mirrors the real world use cases we have
considered. Combining the algorithms in place along side a front-end user interface users are
able to request rides with a click of the mouse.

What would you do differently if you had to do it all over again:
● Anthony Macchia:
○ Work more on the back-end of the project
○ Do more work in the beginning of the semester
● Raymond Pickett
○ If i were to do this project again, I would start writing programs and using a
database sooner.
● Tyler Rambo
○ Gain more insight on all of the various parts of the project, especially the coding
of the algorithm.
○ Try to coordinate more scheduled meetings during each week to keep on topic.
Schedules permitting.
● Wes Holman
○ Within the first two weeks of the project, I would have built a brute-force solution
to the problem to improve upon, if I had to do it over again
● Kieran Walsh
○ For the back-end I would have made more wrapper classes to hold information,
instead of having all the data stored in Arrays. With all the multi-dimensional
arrays it was harder to find all the stored information.
○ Considering I didn’t know anything about databases, it would have been useful to
study them more, as it would have helped future programming.

What you learned from working in a group:
● Anthony Macchia:
○ I learned that communication is a key aspect to the success of a project.
○ It is best allocate work based on where people’s strengths are
● Raymond Pickett
○ I learned to stay up-to-date with what the group is doing, have regular group
meetings, and actively help complete whatever part of of the project is in
progress at the time.
○

I learned about using databases, github, and slack. I learned about K-means
clustering and ridesharing algorithms.

●

●

Tyler Rambo
○ Everyone has the tendency to lose focus due to other courses and structured
meetings provided an effective way to regain control.
○ Allowed me to practice explaining functionalities of my modules to other group
members who may not initially understand.
○ Learned how valuable version control tools like GitHub can be working in a large
group.
Wes Holman

○

●

I learned how to delegate responsibilities fairly and work with partners to
accomplish subgoals
Kieran Walsh
○ I learned a tremendous amount of databases, and it helped me in other classes
as well. Before this class I wouldn’t know how to create a table, Insert values, or
Select values from the database and now I can do it very easily.
○ I learned a lot about GitHub. I have used it before, but didn’t really understand
how useful it was. The merging of code was extremely helpful and easy.
○ I learned a lot about programming in general. Having to work on a big project like
this helped me hone my skills as a software developer.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : Yes
Producer                        : Skia/PDF m76
Page Count                      : 8
EXIF Metadata provided by EXIF.tools

Navigation menu