Inspiration
Studying is boring. Fear makes it exciting. We wanted to raise the stakes when you are studying using flashcards to drill the concepts into you. Upon getting a flashcard, you must answer the answer/prompt correctly. We made a simple punishment system: 3 strikes you're out. On the last strike your OS will be completely nuked (system32 on Windows, root dir on Linux/macOS). We'll leave the first two strikes as a surprise to be discovered.
What it does
Once installed as a desktop app you can upload your Anki flashcards. Upon starting a new study session, the app will go into the background with a timer of unknown length to interrupt you. Once the timer goes off, the app will flash back into the screen with a random question from the flashcard deck. You will be given a time limit to answer the question based on the difficulty of the question. An AI will then judge your response and give you a pass/fail based on your given input. If answered correctly, then hurray! You can continue on back to the waiting phase. If answered incorrectly, then a strike will be taken off and a punishment will be administered corresponding to how many strikes you have left. After the punishment is administered you can be redirected back to the waiting phase to try your luck again (and hopefully learned your lesson!). In either case, the AI will provide feedback as well as a grade out of 10 for your response. The study session will continue on until the user decides to close the app or the 3 strikes are up.
Some additional features include voice lines provided by ElevenLabs when speaking out quotes from historical figures during the waiting phase.
How we built it
- Frontend: React (JSX), Electron (desktop app); built with Vite
- Backend: Express.js, Node.js, MongoDB
- AI: OpenAI API (gpt-4o-mini), ElevenLabs API
Challenges we ran into
- Making sure it's compatible across all OS (Windows, macOS, Linux), punishments directly interact with the OS. Also making sure we didn't blow up our precious laptops when testing the root deletion.
- This was our first time figuring out how to build a desktop app as we did not have much experience
- Managing state across the different pages in React
- Having cohesion between the different backend API endpoints, and designing the table schema for the local MongoDB
Accomplishments that we're proud of
- Being able to work with external processes (e.g. closing browser tabs)
- Seamless integrations with different OS
- A clean UI with original mascot designs done in Figma
- Backend was robust and well-organized so that we could add different routes and ideas without worrying about it breaking
- Ultimately we were proud of the fact that we balanced a very fun idea with solving real world problems
What we learned
- How to work on desktop apps and frameworks like Electron
- Learned how to run processes and commands on the desktop via NodeJS
- Tailwind CSS classes do not get a chance to be rebuilt on re-renders
What's next for slammer
This project genuinely has infinite scale. Challenges can go beyond flashcard memorization to incorporate any challenge (leetcode, system design, rizz up an AI baddie, sending a text to your friend, drawing a picture of x, doing pushups). It can also incorporate more interesting punishments (record yourself singing (kpop demon hunters yay!!), sub 4 minute mile run or the pc gets it, random file gets deleted)
Built With
- electron
- elevenlabs
- express.js
- mongodb
- node.js
- openai
- react
- vite
Log in or sign up for Devpost to join the conversation.