ScoreStore [2021]

Concept

This project was designed to refamiliarize myself with ASP.NET development given that I've used it only once before on a project during my time in university. In addition, web applications development is also a very useful skill to have.

This project aims to allow users to choose a game from the game database or submit their own if it does not exist. These games can be card games, sports or even videogames. After a user submits a game, they can tally their scores in said game by manually updating their account each time they play a match of that game.

ScoreStore will not only track the win/loss ratio and match history but also provide visuals in the form of graphs to help the user better understand their recent performances.

Features

Much like most applications built on ASP.NET, ScoreStore runs in the browser and acts like any typical website. Without any account registered, there is not much a user can do. However, registration is easy to do either through a local account or a social login such as Google. Once registered, users may:

  • submit any game to the global game database

    • attach image cover arts to each game

  • add a score for any game they've saved

    • increment their wins if the player marks a win

    • increment their losses if the player specifies a loss

      • mark who in their friend list was the winner

  • graphically observe their performances via:

    • win/loss ratio

    • play count per game

    • total wins per game

    • complete win/loss history

    • win/loss streaks

  • add other users as friends

    • view the overall performance of any friend across their own games

    • compare stats against a friend for games that are shared

Release

The source code can be viewed on GitHub.

A live production demo for users to try is hosted on Heroku Railway.

As of 08/25/2022, Heroku announced an end to all of its free hosting services that ScoreStore was originally using. As a result, I have migrated the live environment to Railway. Please note, Railway's free service has a monthly limit of 500 hours, and so the live environment may be unavailable at times.

Specifications

  • C# for program and controller logic

  • HTML/CSS for view layouts

  • Bootstrap 4 for additional CSS support

  • JavaScript for webpage logic

  • ASP.NET for applicaiton development and MVC design

  • Google Charts for rendering charts

  • Google Sign-In for social login

  • SendGrid for mail server

  • Visual Studio 2019 development environment

Live Environment

  • Heroku for free hobby-tier app and database hosting

  • Railway for free starter-tier app and database hosting

  • PostgreSQL integration for database (default MS SQL not supported by Heroku or Railway)

  • jincod/dotnetcore-buildpack for dotnet deployment in Heroku

  • Docker dockerfile for dotnet deployment in Railway