Inspiration
Every student has a missed deadline horror story. Planners and calendar apps only help if you remember to open them, but you never forget to open your front or bedroom door. So, we put the reminder where you're guaranteed not to miss it.
What it does
Remindoor hangs on your door and tells you what's due every time you open it.
- Canvas: a Python program uses a Canvas API token to grab your assignments, course names, and due dates.
- Website: everything shows up on a calendar. You can add your own tasks, check them off, or delete assignments you've already dealt with. Every change gets saved to a data file right away.
- The door device: an Arduino with an OLED screen. When the door swings open, a tilt sensor triggers it. If you have assignments due, it plays an alarm. If you're all caught up, it plays a happy little tune. Then it tells you how many assignments you have and flips through each one with its due date, followed by your tasks.
- When the door is closed: the screen shows the time, date, and a weather icon (sun, cloud, or rain). There's also a little face in the corner. Happy means nothing is due, neutral means you've got stuff coming up, and sad means something is due today.
How we built it
Our team is made up of three people who worked on each individual component: reading information from Canvas, website development, and Arduino programming and wiring.
- Canvas (Python): the canvasapi library, used with the access token.
- Website (Flask, HTML, CSS, JavaScript): a calendar and to-do list. The browser sends the upcoming assignments and unfinished tasks to a /save route, which writes them to data.txt.
- Bridge (Python): the Arduino Nano 33 BLE has no Wi-Fi, so a script on a nearby computer reads data.txt, adds the date, time, a "due today" count, and the weather from the Open-Meteo API, then sends it all over USB. It reconnects on its own if the cable gets bumped.
- Hardware (Arduino, C++): a Nano 33 BLE, a 128x64 OLED, an MPU6050 accelerometer to detect the door moving, and a passive buzzer.
Challenges we ran into
- Git: three people, one repo, and a lot of merge conflicts and login problems.
- Integration: getting Canvas, the website, and the Arduino device to communicate with each other.
- Assembly: we had lots of issues with wires getting loose and components not staying in their cases.
Accomplishments that we're proud of
Getting the OLED to display assignments and tasks cleanly, and having it update live whenever a task is added or completed.
What we learned
We learned to use GitHub more proactively, and how to successfully integrate a system of multiple components.
What's next for Remindoor
We want to connect more platforms like Crowdmark, WebAssign, and Teams, and make Remindoor standalone with a battery and Bluetooth or Wi-Fi so it can get updates without needing the USB connection.
Log in or sign up for Devpost to join the conversation.