Shift Scheduling and Trading System

Project Description

This project was done while working at the college of engineering computer help desk at Oregon State University. This was to replace a poorly designed and implemented scheduling system developed by pervious students. The goal of this project was to create a simpler, faster, and more reliable scheduling system that allowed its users to up their shifts that they could not make up so that other coworkers could take them if they wish. We wanted people to be able to create a term long work schedule that could be viewed when logged in. It would then show the user its shifts for the full term and allow them to be put up so someone else can take them. We also wanted to send out daily list of currently available shifts to notify people that someone put their shift up to be taken.

This was the first project that I worked on with another person and had to coordinate what each of us were working on and how we were implementing the features that we were working on. This was also the first project I worked on that other people were going to use regularly and that allowed us to be able to get feedback to make improvements and add more features as we went through the school year.

Project Features

  • User Sign-Up
  • User Login
  • Term Long Schedule Creation
  • Shift Trading
  • Daily Emails

What I Learned

There were a lot of parts of this project that I learned a lot about. This was the first project that I worked on that I had to manage passwords and users information. So I learned a lot about how to store and access them in a secure way. This lead to me

One aspect of the project that people wanted was email notifications of shifts that were available to be picked up and I had never worked with regularly scheduled emails so I had to learn a lot about how it was done and most commonly implemented. Thats when I learned about NodeMailer and node scheduler. Th is allowed for easy templates of emails and cron like scheduling.

This project was the first project I worked on that other people would be using. This allowed me to learn about how to take feedback from users and incorporate that into changes made to the platform.

Languages and Frameworks Used

HTML
CSS
Bootstrap
Javascript
NodeJs
Express
mySQL
Passport
HandelBars
NodeMailer
jQuery