Inspiration
Our major inspiration for Small Steps was twofold. Every year people are constantly trying to build positive habits and break negative ones, but we noticed that, more often than not, people fail miserably when trying to build or break habits... unless they are being held accountable by something. After witnessing some friends try and fail to overcome addictions and others try and fail to consistently practice, we realized that we wanted to do something about this. Also, as strong believers in a growth mindset, becoming a better person through small, yet steady, progress is something we wanted to help people with. From our own personal experience trying to learn languages (spoken, not programming), we observed that we tended to make the most progress when we worked on the same languages, and held each other accountable by comparing our progress. In other words, our innate friendly competition and positive peer pressure tricked us into consistently working towards our goals.
Secondarily, we wanted to tackle larger scale social issues from an individual level. We believe that many social issues cannot be solved without consistently being worked towards. For example, global warming and pollution cannot be solved overnight. Only through consistent work can we overcome these challenges. Small Steps enables this progress by making it easier for people to be consistent and build the kind of positive habits that will change the world, eventually.
What it does
Small Steps takes advantage of peer pressure and friendly competition in order to help people make consistent progress towards their goals. It strives to maximize accountability and interaction by allowing users to share progress towards common goals, or individual goals, in a fun way. Small Steps also builds habits by building up a timeline of users' documented progress. Seeing how far they have come motivates them to continue in the future.
Users first create goals, either personal goals or goals shared with groups. Then, reminiscent of social media platforms like Be Real, users periodically take photos or videos of them working towards the goals to share and document their progress.
How we built it
We are a two person team, so we split into front end and back end for this project.
Front End: React Native, React, Axios
Back End: Firebase (Auth/Storeage), MySQL (Database), NodeJS/ExpressJS (Server)
Challenges we ran into
We hit walls at every step of the way, some as a result of our tech stack, and others as a result of sleep deprivation.
React Native: Although we had some experience with React, we had none with React Native. Also, we both use Mac Books. React Native has serious issues with M1's architecture, making an already tedious setup process, downright awful. It probably took us between 4 and 5 hours of configuring to get React Native properly setup.
Firebase: We had never used Firebase Storage and our experience with Firebase Auth was from over a year ago. It took us quite a while to get it all set up on the back end and we never finished linking it to the front end.
MySQL: We had to figure out where and how to host our database. Our database schema and queries were mostly together. Eventually, we made the decision to drop MySQL (temporarily) and proceed with Firestore in order to complete something workable.
NodeJS/ExpressJS: There was a strange issue with getting requests from Axios to register on our locally running server.
Sleep: Probably the biggest one. It's hard to be efficient and productive on little to no sleep. We knew this going in, yet we still struggled with getting adequate rest. If there's a balance to be reached in Hackathons between work and rest. We still haven't found it.
Reaching MVP: MVP means Minimum Viable Product. We made something Minimum and it is a Product. Viability is debatable.
Accomplishments that we're proud of
We're proud that we were able to make as much progress as we did on a project of this scope, with a team of our size. Our biggest accomplishment was definitely the React Native app. After all that configuration, we wouldn't allow ourselves to not make something at least halfway decent, and we made something pretty cool, in our opinions. Also, although we definitely haven't achieved all we wanted to with this project, we built a strong foundation to build on in the future, and we're extremely proud of that.
What we learned
We learned how to use a lot of new tools. We also learned a bit about managing large projects with multiple repos (we were able to avoid merge nightmares). The most important thing we learned, however, was how to be flexible and think on the go. If we hadn't learned that lesson early on in this, we would have not made nearly as much progress as we did.
What's next for Small Steps
Small Steps is not just a Hackathon project. We are committed to this idea and will be evolving it in the near future. We're going to try to get some more team members and complete this project. We can't wait to finish so other people can get their hands on it and grow into better versions of themselves.
Log in or sign up for Devpost to join the conversation.