Portfolio

To sum up, Billy Wencl is a true tech expert. We were lucky to have him and his excellent skills at our school. He's always exceeded expectations and I'm confident he'll do the same for you.

Tavish Satrom

Technology Director

Cleveland Public School

Tavish Satrom

Technology Director

Cleveland Public School

Door Control Server

Cleveland Public School

Problem:

The school was facing a challenge with its existing door control software. It could schedule one-time events, but the setup process was time-consuming and prone to errors that could potentially leave the building unlocked.

Solution:

To address this issue, I developed a Node.js server that interfaces with the existing software’s simple REST API to lock and unlock doors. The server leverages the Node-Schedule package to handle the timing of the API calls to open the doors. It also uses a MySQL database to store data on existing schedules. This data not only allows users to make schedule changes but also serves to restore schedules if the server crashes. During the development of this project, the main requirements were the simplicity of the user interface and speed of development. As a result, the UI is very plain, with minimal time spent on styling beyond ensuring it was browser and mobile friendly.

Categories

 
  • System Design
  • Web Application
  • Database Design

Technologies

 
  • Node.js
  • REST API
  • MySQL

Impact

 

This project significantly simplified the scheduling of doors for one-time events, improving security and efficiency. Now, managing door schedules is a breeze, and the risk of leaving the building unlocked due to scheduling errors has been greatly reduced.

Challenges:

Recurring Events

One primary requirement was the ability to schedule daily, weekly, or monthly events for a time and then stop after a provided date. The previous software claimed to have this feature, but it rarely functioned correctly. I used the Node-Schedule package to handle both of these issues. Node- Schedule allows you to set one- time or recurring events, which is useful for scheduling the doors and running a nightly check for expired schedules.


System Recovery

A drawback of the Node-Schedule package is that it is fully based on your Node.js server, meaning if the server crashes or loses power you lose all the current schedules. To ensure that all schedules trigger properly regardless of server restarts, I added a MySQL database that stores records of every schedule. This way the server can automatically restore all active schedules upon startup.