Inspiration
I’ve always struggled with getting routine, boring tasks done--especially homework. After reading a paper about why video games are so engaging (especially for people with ADHD), one line stuck with me: "games give instant feedback, while homework gives none".
That idea became the seed for Forrest: an app that turns productivity into a feedback loop, just like a game. I have been thinking of an app for a very long time, and have finally built it.
As for the style of the app--I was heavily inspired by the simple yet charming looks of Wii Sports for the grass, and pixel art for everything else fit along with that very well.
What it does
Forrest has two modes - Task and Timed mode.
With Task mode, you get rewarded per task done. With timed, you can get rewarded for the amount of time you spent doing something (Studying, working on an assignment, etc.)
Forrest provides instant visual and emotional feedback, similar to what games do, helping users feel rewarded for every bit of progress. I even used Forrest to build Forrest, and it worked very well.
How we built it
Given the limited time window, I used the NextJS and React frameworks, because it took care of lots of server-client communication and allowed me to focus on application logic. I use Prisma for the database, because it provides static type definitions for TypeScript, and, when I deploy it, I can easily switch Prisma to use MySQL or PostgreSQL without any changes to my application logic.
Challenges we ran into
I ran into many issues, especially with React--React expects you to use it in a certain way, and if you don't do things the way it wants you to, you can very easily start fighting React instead of actually building your application.
I also had many issues with technical debt--I chose the easy way to start off when writing a prototype, but it ended up costing me a lot of time in the long-run.
Finally, I had many issues with the Wi-Fi network, as communication between devices on the same network was disabled at Mountain House High School, so I had to come up with a creative solution around that.
Accomplishments that we're proud of
I learned a lot. I learned much more about React, and I also learned more SQLite. This is also a project where I learned to use NextJS as both my front AND backend, instead of using Flask as a backend like previous projects!
I am also very happy with how the app is designed, and the subtle details like the birds (The birds in themselves were very difficult because I learned how to use a single picture for animation and crop that instead of 1 picture per frame), and the waterfall. I am very impressed with how I was able to make a very good 3d-look without using a 3d library such as three.js.
What we learned
Again, I learned a whole lot, but most importantly:
- SQLite
- Prisma
- NextJS & React (expanded my knowledge)
- NextJS App Router
What's next for Forrest
I had so many new features--Especially with AI--planned for Forrest that I was unable to complete given the time constraints. I am definitely going to polish this up at home, and host it publicly on my homelab, but especially: I want to turn this into a mobile app, instead of a website, which can consume a lot of data when out and about.
But before all that, I’ll focus on solidifying user authentication and security, so Forrest is ready for real-world use beyond the hackathon. Stay tuned!
Built With
- krita
- next
- nextjs
- prisma
- react
- sqlite
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.