Inspiration
Forest and Duolingo were our two biggest inspirations in making this project.
Forest inspired us because staying motivated to study is challenging, and Forest provides a visual incentive to study: a plant that grows in real-time as you study. As you pile on more study sessions, you build a forest of the plants you previously grew.
We liked Duolingo because competition is a great way to spur excellence, and Duolingo does just that. In Duolingo, you can compete with your friends in learning languages, making learning even more fun!
What it does
With TryHard, you can connect with friends to compete against each other to study the longest.
After you start the timer, you will be prompted every 30 minutes to solve a short math problem to ensure you are actively studying (no cheating!). Once your timer ends, you can see how you did against your friends!
How we built it
Our tech stack is straightforward. We used HTML, JavaScript, and CSS for the front end and Python with Django as the backend framework.
We started by building the basics. We initially implemented HTML files without any CSS. Our timer page didn't count or have an interactive button; it had a start and stop button with a static timer.
After implementing the basics of the HTML files, our front-end developer implemented the JS file for the timer, while our full-stack dev, who was focusing on the backend, began work on the Python files.
After finishing the timer functionality and backend request handling, we worked on implementing the account creation and storage. Since our full-stack dev, a cybersecurity undergraduate, is well-versed in password hashing, he got to work on handling accounts in the backend while our front-end dev and another team member worked on the CSS for the pages.
After handling account creation, the next step was data storage and displaying times in the leaderboard, where we ran into significant issues. We were stuck with corrupted files for so long that we began to dread that we would have to submit a dysfunctional project.
Eventually, we sorted out these issues and got the leaderboard to display the active users. The only thing left was applying the finishing touches to the front end. We used our remaining time to add animations and a color palette and organize some of our CSS.
Challenges we ran into
One of our biggest challenges was staying within the hackathon's time frame. At first, 42 hours seemed like a lot, but we quickly realized how efficient we would have to be in completing our project.
We also faced challenges with the Django framework. One corrupted migration resulted in hours of errors and frustration, which, in more ideal circumstances, could have been used for areas like UI/UX.
Accomplishments that we're proud of
Making our front end look the way we sketched it to be was something we were all proud of. This, along with just simply finishing our work, was highly satisfying.
After hours of effort, fixing the issue with the Django framework was also highly satisfying. When we saw the leaderboard finally display the times of registered users, we breathed a sigh of relief.
What we learned
We learned to focus more on communication as a group. There were points when we tried to meet at set times, but it did not go as planned, putting us behind where we wanted to be work-wise.
We also learned that committing early and often in group projects using a git repository is crucial for avoiding catastrophic issues and irresolvable conflicts.
What's next for TryHard
Due to the time constraint, we could only add a few of the features we envisioned for TryHard. However, we plan to develop an iOS application that is user-friendly and more accessible to others.
Here is a list of features we plan to add:
- Friend Requests
- Different session types (math, science, English, etc)
- Different leaderboard types (global, national, subject, friend, etc)
- A visual representation of study time as it grows (e.g., plant growing in Forest app, resulting in a forest)
Log in or sign up for Devpost to join the conversation.