Shuttle Service Company Website

EDIT on 10/15/2017

The owner of shuttle service company decided to close the website. To see how it works, visit https://agilesalt.net/Shuttle


http://portcanaveralshuttle.us/ is out. Simple shuttle service company website for making reservations and driver schedule management.

Stories implemented:

  • Customer can make reservation on the website.
    • Customer specifies trip information.
      • One way trip takes pick up date, pick up time, pick up location, # of passengers and dropoff location.
      • Pick up time is limited due to the shuttle provider's availability.
      • Trip can be one way or round trip.
      • Round trip takes two "one way trip" infos.
      • On round trip, returning trip's pickup place is set to the dropoff location of initiating trip.
      • Initiating trip must be future date. If round trip, returning date should be later than initiating trip's pick-up date.
    • Customer specifies contact info: name, email and phone #.
    • On the final step, customer can review the trip summary and go back to previous screen if change is needed.
    • Customer pays the fee on the web using credit card.
    • When reservation is made, customer gets an email with the trip summary.
    • The email contains a link to cancel the reservation.
  • Concept of Location Area
    • Each location belongs to location area.
    • There are two location areas at the moment: Orlando and Port Canaveral.
    • One trip is always from one location area to another location area. For example, if you choose a hotel from Orlando as pick up location, drop off location is limited to Port Canaveral location.
    • Round trip's initiating trip always starts with Orlando area. So if you choose round trip, pick up location shows Orlando area locations only.
    • Pick up time is given by location area.
  • Concept of Availability (implemented partially but dropped off from the final release due to change request)
    • Per pick up location area and pick up time, Administrator can assign availability.
    • Reservation cannot be made over the availability.
    • Weekend and weekday availability can be different.
  • Referrer can make reservation on the website and take referral fees.
    • When referrer is logged in, Rates page shows adjusted amount.
    • When referrer creates a reservation,
      • The final button is not "Confirm and Pay" but just "Confirm".
      • Email is sent to the referrer's email even if the customer has given the email address. (Referrer can forward the email to the customer if needed.)
      • Fee is calculated using adjusted amount. Tax is not added.
  • Administrator can manage reservations
    • Administrator can see all the reservations with trip summary of each reservation.
    • Administrator can leave a comment on each reservation.
    • Cancelled reservations should be in red color.
  • Administrator can print driver schedules.
    • Driver schedule is printed by pick up date and pick up area.
    • Driver schedule shows the total number of passengers of the trip, all the passengers' pick up location and dropoff location.
    • Driver schedule shows the comment of the reservation if given.
    • Driver schedule shows cancelled reservation but cross-out the pick up location and name.
    • Driver schedule is searchable by date range.
  • Administrator can manage referrer info.
    • Administrator can see all registered users' list and give any of them an administrator and/or referrer role.
    • Administrator can put Name of the registered user.
  • Administrator can configure settings.
    • Configurable settings: tax rate, one way fee, round trip fee, one way referral fee, round trip referral fee, company info, rules and restrictions info
    • Company Info is used in Contact page and Trip Summary.
    • Rules and Restrictions info is used in Trip Summary.
  • Important activities are logged and administrator can see them.
    • Activities that are logged:
    • Log in, log off
    • New user registration
    • New reservation
    • Commenting on the reservation
    • Setting changes
    • Role changes
    • User name changes

Technology stack:

  • React 0.14.2 with Flux 2.0.3
  • ES6 (& ES5 partially)
  • Client side: browserify, react-router, lodash, moment, babelify
  • Server side #1: C#, Ninject, ValueInjecter, ELMAH, Dapper, NUnit
  • Server side #2: .Net Framework 4.5, ASP.NET, MVC 5 (but really didn't use much other than basic razor view and web api)
  • SQL Server 2014
comments powered by Disqus