Inspiration

Achievements are included in almost all games ranging from easy to very difficult but there is little incentive to complete them aside from more score alongside user profiles. With AchieveForGood we combine the achievement system with challenging your friends, introducing new stakes to completing achievements within games and facilitating donations to charities at the same time.

We also saw lots of streamers offering to hold charity streams for 24 hours in order to raise money for a good cause while gaining viewership for themselves. Our project allows them to potentially increase rewards for charity as well as allowing the streamer and viewers to enjoy the experience more when there is money on the line for difficult challenges posed by the audience.

What it does

AchieveForGood links into the Steam API, allowing users to log in and register with their Steam account using OpenID and pose challenges to users who have also registered, placing a bounty of their choosing which they agree to pay should they complete the chosen achievement.

Once the achievement has been completed, a payment link through Just Giving to the charity of the player's choice is provided to the user for them to pay.

How we built it

We built our web app using Bootstrap for a fast basic HTML/CSS page design and programmed the back-end in PHP to manage our API and database use. Front end scripts for autocompletion on fields in Javascript was essential due to the large number of options for games and achievements possible on the Steam platform.

Challenges we ran into

It was difficult in places to integrate the various APIs into a final working product.

There was also several restructures of our database as we refined our requirements which caused some problems with having to rewrite queries.

And last of all, staying awake!

Accomplishments that we're proud of

Planning out tasks more carefully before proceeding and delegating tasks amongst us allowed us to be a lot more productive at Great Uni Hack than our previous project at Hack Manchester. There was much less time spent idle and more focused on the task in different areas at once.

We are also very proud of being able to integrate the Steam API very successfully within the site and could access the immense numbers of games on the platform and all the achievements for each of them in order to create a compelling product which is also focused on social good!

What we learned

We have learned a lot about the use of external APIs and the use of OpenID to authenticate with external providers while not having to collect a lot of sensitive user information ourselves.

What's next for AchieveForGood

There is a huge amount of room for extra features and expansion on this project, from statistics on those who have donated to charity through the site or gained the most bounties from others to integration with game score leaderboards to challenge others based on specific values not limited to those in traditional achievements.

However the most obvious next place to improve would be to implement caching for many of our API functions as this would drastically improve speed and responsiveness where calls are made to Steam servers.

A system to place a hold on a payment method to guarantee payment from the challenger would also be useful for this project, as non-payment of bounties would be discouraging for users.

Another great feature would be the ability to set time limits on when the achievement can be completed to prevent funds from being held up if the above was implemented and to add additional challenge.

We anticipate that a very large market for this site would be for streamers as you can see the results of your challenge (usually the streamer's frustrations as to not being able to get the achievements!)

Built With

Share this project:

Updates