Making a prediction is one of the most reliable and efficient ways to prime and stoke the reward circuitry of the brain.
- Dr Jane McGonigal, PhD
Goal setting is an important part of personal development, there are a wealth of self-help resources, apps, and even cultural traditions such as New Years resolutions based around the achievement of goals. Yet when it comes to actually completing goals many fall short.
While it is important to begin with a well defined and realistic goal, the fact remains that when people are only accountable to themselves and there is no immediate consequence to failure it is all too easy to give up on a goal or make it a low priority.
Placing bets is itself an attempt to predict. Encouraging people to bet on their own success inspires them to think in an intrinsically positive mindset, which in itself is a powerful motivator.
Gecko aims to leverage the fact that there is one thing that successfully motivates people all over the world to do things they don't really want to do, money.
What it does
Gecko is a commitment keeping application which combines a financial incentive with a degree of social pressure to help people achieve their goals.
Users will place a pledge of a chosen amount of money, with the promise to complete a task within a specified time-frame. They then designate a friend to act as a referee who controls when the task is marked as complete.
The user and referee will be prompted to exchange goal progress updates, which is proven to improve the odds of attaining a goal.
If a user succeeds at achieving their goal, their friend can confirm their success and the user will have the option to have their funds returned, donate the money, or pledge the funds again to another goal.
When a user fails to complete a goal their funds will go to a charity of their choice, helping to take the sting out of their failure and put it in a more positive light, and in doing so hopefully encourage them to continue setting goals.
How we built it
Gecko is split into two parts, the front-end react site and the back-end API. The frontend is created using the React.js framework, the "axios" http client and the "styled" css library. The backend is created with node using the express.js library and an sqlite3 database.
The part of our team working on programming collaborated using git and github to cooperatively put together both parts of Gecko. After creating a data dictionary and deciding what API routes we required, we split into two seperate teams to produce the backend and frontend. Then, once the backend was complete we worked together to get the backend to work with the frontend.
The backend is containerised using docker and then deployed on google cloud using the Cloud Build and Cloud Run Google APIs. The frontend is continuously deployed using github workflows and github pages.
We primarily chose technology that we had a decent amount of experience with so that we could work quickly. However, where it made sense we learned new tech, such as sqlite to create the best possible solution during the hackathon.
Challenges we ran into
- We initially spent a decent amount of time working out the best method of monetising the application. We were always against the idea of including advertisements within it, and are staunchly against the idea of selling user data. This lead us to our eventual decision to invest in sustainable ETFs, as it can provide a relative increase in return without a great amount of risk, and leads to positive impact in the long run.
- We also had to deal with streamlining the scope of the app down to create the best minimum viable product, which involved lining up our priorities to drop some features we were initially interested in, whilst still providing a fleshed out and enjoyable app.
- Finding locations to film some of the ideas for our pitch video proved to be difficult, requiring us to rethink some of our ideas and adapt them for other locations.
- Dealing with ambiguous sqlite error messages
- Using react router with github pages
Accomplishments that we're proud of
- Rapidly developing a functional backend
- Smooth git collaboration
- Sleak, well produced and interesting pitch video
What we learned
During the development process, we picked up some new skills and technologies along the way:
- Making use of Twilio for automated SMS and voice calling
- Using sqlite to manage backend databases
What's next for Gecko
Heading further into the future with Gecko, we plan to expand upon the features provided within the application, including:
- The ability to create more urgent, depreciating goals, that slowly lower the amount of money to be returned as time passes, donating the total drained to charity
- Social sharing, to allow users to show off their goals and accomplishments
- Group goals, which enable multiple users to be involved in a single pledge
- Automated time progression notifications (SMS/Email) for goals, via Twilio
- Accounts tied to phone numbers, verified via Twilio
- A fund-raising feature, that allows organisations to set up events that users can pledge to donate to, whilst committing to completing a specified task (for example, Movember)
- Use machine learning to create smart goal recommendations for users that they are more likely to achieve