-
Notifications
You must be signed in to change notification settings - Fork 4
Home
A web interface to simplify the process of signing up for special shuttles at RPI.
The Rensselaer Union, along with support from Auxiliary Services and Parking & Transportation, runs a pilot program for a Capital District shuttle service. Certain weekends of the year, shuttles leave from the Rensselaer Union to destinations around the Capital District such as Crossgates Mall and Albany International Airport.
Before this project came to exist, a Google Form was used to facilitate sign-ups for these special shuttles. These forms weren't the best solution. This project aims to simplify that process, helping both students, and those at Auxiliary Services and Parking & Transportation.
This project is developed on the MEAN stack (MongoDB, Express.js, Angular.js, and Node.js).
Before you begin, you should make sure that you have both MongoDB and Node.js installed on your system. If you don't, you can find information about installing each here and here, respectively.
Eventually, we want to look into installing MongoDB using npm automatically when you run npm install
below.
Next, you're going to want to clone this repository (if you haven't done so already), and cd
into it. Run npm install
, sit back and relax. This project has many dependencies that need to download.
Great! Now, we're ready to run the application. Make sure MongoDB is already running, and simply run npm start
. By default, the application runs on port 8080, but this can easily be changed using an environment variable.
In the future, we'll provide an init script that will allow running Shuttle Signups as a service on Linux distributions (which grants you tons of amenities, such as automatically running on start-up). For now, you can look into using forever
.
- Implement a functional user-facing and admin-facing frontend.
- Put shuttles into groups, based on origin/destination, and day of departure
- This will allow us to prevent users from signing up for multiple shuttles going to the same destination on the same day.
- Allow exportable and printable data about shuttles
- Allow storing of student phone numbers
- This one is rather tricky because it requires us to actually store users in the database in some form, instead of relying completely on CMS
- Store shuttle history
- Currently, shuttles don't ever leave the database, so they can be queryable after they've been completed. However, this can cause the database to fill up rather quickly, so in the future, we'll probably make an archive for shuttles, sepearate from the main, active database.
- Email reminders to users
- Nodemailer is totally going to be our friend here. We should allow the time frame for the reminder to be configured per-shuttle, for groups of shuttles, or globally across the application. This will also be useful in notifying students of cancelled, or delayed shuttles.
- Luggage restrictions
- This information, and much more, can be specified in the notes section for a shuttle, which was added in
e09fe30
.
- This information, and much more, can be specified in the notes section for a shuttle, which was added in
- Allow administrator override to add people past bus capacity
- We'll need to modify signup_shuttle and unsignup_shuttle to allow administators to specify a user, and add and remove them from shuttles.
- Close waitlist when departure is soon
- Allow the closing time to be configurable. I don't know if we'd like to extend this functionality to the
users
list for a shuttle as well.
- Allow the closing time to be configurable. I don't know if we'd like to extend this functionality to the