Inspiration
The inspiration for Persist came from our personal experience with habit trackers and the difficulty of completing habit goals. Because there is no incentive or disincentive for completing a goal on your typical tracker, it is very easy to fail goals that you set for yourself. This is where the idea for Persist came in -- we wanted to make these goals more achievable and to help users truly persist in their habits. By using money as an incentive to continue going, Persist supports its users when other habit trackers can’t.
What it does
Persist is a web app that allows you to pledge money for a better incentive to stick towards habits that you define. The pledge money is sent to a charity of your choosing if you are unable to keep up with your goal for your habit. For example, if a smoker sets a goal to become smoke-free for 90 days with a $5 pledge. The $5 will be sent to a charity of their choosing if they happen to break the habit.
How we built it
We used django as our webserver with a custom frontend that is mostly designed and written by our team. Django provided us with a backend server that can interface nicely with a SQLite database used to hold our user and habit data. Our frontend is designed with the idea with a light, minimalistic UI design to allow the user to easily access and view the habits that they are trying to maintain.
Challenges we ran into
We ran into a lot of challenges during the development of Persist. One specific example was the storing of dates inside our database. The initial creation of the database was storing dates and having all habits ticking counting from midnight, but after thinking about it that didn’t make much sense. Switching to a date-time format made all related getter/setters extremely complicated, and it was necessary to think of a different method of storing data. We settled on using epoch time for the backend, while the frontend parsed things into date objects.
Accomplishments that we're proud of
We are proud of making an app we would actually use daily. The idea stemmed from issues in our lives and so from idea to creation was a fantastic and highly personal process.
What we learned
Besides Daniel, this was everyone else’s first foray into full-stack web development. Ray learned a lot about the way the server communicates with the client and the routes that Django uses in order to make this two way communication possible. One specific example was learning how to intelligently serialize and deserialize objects into a json format that could be used quickly and efficiently by both the server’s database and the client-side javascript. Additionally, everyone had a good opportunity to learn how to work together as a team using version control (git) and abstracting functions in order to combine pieces more seamlessly.
What's next for Persist
Persist is still an unfinished product which is not ready to be launched to the public yet. We need to go through UI to a greater depth and fix a few errors in design we currently have. Furthermore, all of our charts are currently placeholders so we need to implement a library to dynamically load account-specific charts. Finally, our last implementation needs to be fixing our system to accept payments on our website and reroute them to charity. After this Persist can function quite well as a simplistic webapp, however, to gain more traction we could also add the following features: Global/ Social gamification of habits, (perhaps you can challenge your friends to compete with you for a healthier lifestyle). We could have better tools in place for managing our data and perhaps offering advice based on account information to users.
Log in or sign up for Devpost to join the conversation.