Majorka Thanasi

SWE & Co-Founder • Munich, Germany

JCheck

During the JacobsHack 2018 hackathon, our team identified a need to improve time management opportunities for students at Jacobs University. To address this, we developed a light sensor device that can be used to check the availability of the university's laundry machines. Additionally, a web application was created that can be accessed using Jacobs University student credentials, which automatically updates information about the machines in use, enabling students to better plan their laundry time.

JCheck Homepage
JCheck Choose College
JCheck Banner

Project Description

Arduino

During the hackathon, our team utilized Arduino to program light sensors that could read the color changes of the laundry machines. Specifically, we programmed the sensors to recognize the color red to indicate that a machine was in use, while green meant that it was available. However, one challenge we encountered was a shortage of light sensors. Fortunately, we discovered that LEDs can also function as photodiodes, which allowed us to convert them into sensors and use them in our project. To prepare for the build, we created schematics using Fritzing and then assembled the components onto the Arduino boards, ensuring that everything was properly programmed and wired.

Java Server

After completing the hardware portion of the project, our team turned our attention to finding a way to collect and store the data from the light sensors. After careful consideration, we ultimately decided to use a Java server due to its strong performance capabilities. To ensure that the server could handle the large number of laundry machines at Jacobs University and any potential future expansions to other appliances such as kitchen ovens, we designed it to be scalable and multi-threaded. While some might consider this to be overkill, we wanted to ensure that our solution could meet the needs of the university and its students both now and in the future.

To collect and store the data, the server was configured to listen for any changes related to the devices and then update a dedicated MongoDB database accordingly. By implementing this type of database system, we were able to effectively manage and analyze the data in a way that was both efficient and user-friendly. Overall, the combination of the hardware and software components allowed us to create a comprehensive and effective solution to address the needs of the Jacobs University community.

Web Interface

After completing the hardware and server side of the project, the next step was to create a web interface to tie everything together. We needed a quick solution, so we chose to use an Express Node.js server to serve the HTML pages. To ensure the pages looked professional, we used EJS in combination with Bootstrap for page templating and styling. The web application features several useful functionalities, including the ability to log in using university credentials, select from four residential colleges, and view availability for laundry rooms and kitchens.

The express server is connected directly to the MongoDB database, and triggers are set up to display real-time availability changes for the machines. Additionally, a simple time approximation system was implemented that takes into account machine modes and calculates when the machine will be available again. Overall, the web application proved to be an excellent way to tie together the hardware and server-side components of the project, allowing users to easily check the availability of the laundry machines and kitchen ovens in real-time.


Tech Stack

Frontend:
EJS
Bootstrap
Backend:
Express.js
Mongoose.js
MongoDB
Tools & Packages:
Arduino

JacobsHack 2018 Prizes

As a result of our hard work and dedication, our team was honored to receive several prizes for our project. We are proud of what we achieved and excited to keep making a difference in our field.

  • Hacker Spirit (1st) Prize
  • Deep Web Solutions Sponsor Prize
Last updated on