Inspiration

After learning about how many households don't have security systems installed in their homes, we thought of reasons this could be. After doing some research, we determined that the top reasons are because of the cost, laziness, and the unnecessary invasion of privacy that some security systems bring. We aimed to create a product that balanced security and privacy, as well as being cost effective and simple to install.

What it does

Our product operates like an ADT security system would, meaning that it has two states, armed or disarmed. In the armed state, the motion sensor on the door is active which means that opening the door will cause an emergency text message to go to the watcher's device. The user can then look through the activity logs on the app to determine whether or not the incident is considered worrisome. Users who share an apartment or a household can link up their devices to the Door Defender and can view the logs, as well as arm/disarm the system. Each user group can see who is online which allows for them to better assess the severity of any given situation.

How we built it

Since the project used both a hardware component as well as a software component, we split our team up to build the product. For the hardware side, we used an Arduino unit fitted with RFid and motion sensing capabilities. For extra protection and neatness, we mocked up a design and went over to the lab to construct a wooden casing for the unit. As for the software component, we mainly relied on NextJS and Node.js to handle a lot of the interactions between the server-client and the Arduino unit. With the security unit needing a real-time aspect to it, we used socket.io to handle the user interactions. We then integrated the sockets along with serial-port to hook up the Arduino system and get the whole application communicating smoothly. For added security, users must log in through auth0 in order to access the product and need a specific product code to link with the bot.

Challenges we ran into

The challenges that we faced while creating this project, was integration. One of the biggest struggles of this project was getting everything to work on its own and then together as a unit. For instance, we completed and constructed the Arduino but had to wait until the socket.io backend was configured in order to get any useful data. We also had some challenges working with Node.js, JavaScript, and NextJS. Since half of the team is new, we had a lot of fun but also a bit of trouble picking up these new technologies, and especially ran into a lot of asynchronous errors along the way.

Accomplishments that we're proud of

Some of the accomplishments that we are proud of is having a physical product that is able to communicate and receive data from the computer. We are also very proud that it does its job and reports incidents when the system is armed, while staying idle in the disarmed state. Our team maximized the use of GitHub, although we did not do any CI/CD work, we are proud that we got 38 commits to the repo and were able to make it run smoothly without any major merge conflicts.

What we learned

We learned a lot about Full Stack web development as well as getting into the more hardware-oriented aspects of computer science. We definitely learned a lot about NodeJS and building APIs with NextJS, which was definitely a very useful skill to pick up. Outside of the computer science aspects, we learned a good deal about teamwork and having the proper orientation. We came up a good plan at the beginning and were able to see through a majority of the big checkpoints for the product.

What's next for Door Defender

There are many directions that we are looking to take Door Defender if we continue with the idea. The big sticking point is getting the application to scale and stay secure for its users. Originally we were planning on using a PostgreSQL database to store the user data and door logs to, but we could not get the infrastructure down in time. Another feature we wanted to add was the RFiD detector in order to better identify users to disarm the system. We also wanted to add an additional layer of security to disarming the system by using a passcode, but could not get to it because of time constraints. Finally, we had an idea to add a safe curfew feature so that in the event that you do not make it home by the curfew the system can notify individuals that can help.

Share this project:

Updates