The original concept for the project was based on a study technique that one member of our group had been using for a while for tech interviews. This was the concept of spaced repetition where information is presented at increasing intervals, as studies have shown the best time to strengthen memory is right when a person is on the verge of forgetting. This is a technique that many sites like Duolingo use. The app that the teammate had been using was very basic, but also seemed like the most popular, so it seemed like a worthwhile place to possibly fill a only partially tapped need.
What it does
This site allows users to create flashcards with questions and answers on them. Cards are organized into decks which allow the user to decide what topics they want to focus on at a given time. Upon answering a question, the user is prompted to rate the difficulty of the flashcard and the flashcard will be given a cooldown timer before it reappears in the deck again. The harder the difficulty, the sooner the card will reappear.
How I built it
This site was built using Django for the backend and React for the frontend. We used Heroku to deploy the site and used the PostgreSQL database that comes with Heroku for the database.
Challenges I ran into
On our team, we had some members that had exposure to Django as a backend, and one member that knew React well. It was decided this would be a good stack as we had the knowledge coverage, but each could learn something new. This was to be hosted on Heroku which some on the team had used before as well. As the React person was used to working off a REST backend, the Django REST framework was discovered.
What followed was three days spent entirely on working out the kinks to make the kind of stack properly communicate and deploy. Additionally, the Django REST framework proved to be very different from the Django that had been experienced before. Many additional libraries were learned, Djoser for handling user management along with JWT libraries for the frontend authentication. This was on top of the countless little issues dealt with getting Django to serve the React index.html.
Accomplishments that I'm proud of
Despite all of the difficulties hit on the deployment, our team still worked hard and very late on the last day on getting a product up and running as complete as time allowed. We were able to produce in the 24 hours that we had left after solving stack issues to blaze through a large amount of code and functionality. We also ultimately were able to solve those very difficult build issues, which will be invaluable for when we hit these kinds of problems in our future careers.
What I learned
The largest thing that we learned was the importance of knowing how to deploy the proposed stack. It is not enough for the stack to be known in part scattered over the group. And when these types of issues are hit, the knowledge to pivot to another stack that can be spun up quickly so productive work can be done. Additionally, countless knowledge of Django and the REST framework was obtained, along with a more fundamental knowledge of how Heroku works.
What's next for Spaced Flashcard Site
First a good rest. But the next step will be to get the planned functionality to where we have planned to be, now that the largest obstacles are out of our way.
Log in or sign up for Devpost to join the conversation.