Inspiration
For our inspiration, with midterms coming up, studying was all on our minds. Having a personal need for something to help with studying was something that drove us to create a study application. The spaced repetition (SRS) flashcard system was an idea that pulled from various language learning applications (such as duolingo) which space out reviews to help remind you of content before you're about to forget. Unlike language though, when you're studying for a math or history test, you usually aren't studying the same content for months at a time, so we opted to build something that was a lot more short term, and that could help students memorize anything they needed for their classes.
What it does
Like what was brought up above, we essentially built a flash card application that allows the user to review certain cards after a certain interval of time (thats the spaced repetition system). The user inputs the name of their flashcard, the question, and the answer. The program then quizzes them on it when they go into study mode. After studying, it locks studying it again for certain amount of time based on how close the user is to mastering that card (the higher their SRS level, the more time they wait between reviews). The user can also create new cards to add to their deck any time they wish!
How we built it
We built it in Java using jsonsimple to deal with storing the flashcards. We then used the date and time converted to minutes in order to give the cards a time when they can be reviewed again. If the current time and date is greater than the time and date in the json for that flashcard (which is when the card should be reviewed by the user again), then when the user enters study mode, they will be quizzed on that card.
Challenges we ran into
- Going from idea to code smoothly
- Getting GitHub set up properly
- Learning how to deal with JSONObjects in Java
- Dealing with the date and time, and how to set a time in the future for the cards to be reviewed
Accomplishments that we're proud of
- Working json reading/writing/editing
- Having a fully functioning product that a more polished program could be derived from.
What we learned
- A lot about json format and how to work with json in Java
- How to collaborate through Github, as none of us have ever really worked with others on projects, and Github definitely had a bit of a learning curve, where we had to make sure we didn't all try to push at once (or else we had some merging errors)
- Learned a lot more about Java overall (classes, arrays, etc.)
- Learned how to pull system time
What's next for Crammer Flashcard Spammer
- Polish and edge case issue fixing (date/time issues at end of months/end of year and file checking to ensure that cards.json exists).
- Implement an edit mode
- Card randomizer
- More visually interactive (UI or have it act as a backend for a web app)
- Allow for multiple users to have their own flashcard sets on the same system.
- Allow for separate card sets (eg. one study set for calc, one study set for history, etc.)
Log in or sign up for Devpost to join the conversation.