Sppd stands for South Park Phone Destroyer, a mobile game available for Android and iOS devices.
This project aims at making team planning a bit easier:
- Everyone can create a profile on the website.
- Once logged in you can create a new team or request to join an existing one.
- Everyone can set the level for his cards.
- The card levels of all team members are being aggregated for the team. This makes it easier to select the cards to upgrade for team wars. (TODO)
- [...more to come...]
This project has been started mainly out of technological interest to
- get a hands-on experience with .net core
- figure out how to build a frontend with a modern technology (Vue)
- find ways to fill the gaps (e.g. generate frontend API client classes) in order to have a workflow as easy as possible
- set up continuous integration and continuous delivery (CI/CD) to guarantee good quality.
I'm also using this project as a playground to test new concepts and define the best practices I'd like to apply in other projects. If you have any improvements to propose please do.
The repository contains the backend, exposing a RESTful API, which is an ASP.net core 2.2 application and the frontend, consuming the API and using the data, which is a Vue 2 application.
Details:
- Node.js: Frontend (using the current version, node 12.13.1 with npm 6.12.1, by the time of writing this)
- .NET Core 2.2 SDK: Backend
- SQL Express: Default database (this is not absolutely required as Sqlite can also be used, but strongly recommended)
From Backend directory, install the dependencies once:
dotnet restore ./Sppd.TeamTuner/Sppd.TeamTuner.csproj
and run the backend:
dotnet run --project ./Sppd.TeamTuner/Sppd.TeamTuner.csproj --launch-profile Development
From Frontend directory, install the dependencies once:
npm install
and serve the frontend:
npm run serve
Cake (c# make) is being used as build automation tool. Targets have been defined to build, test, package the backend along with the frontend; it can also upload test coverage results to Codecov.
Example: Execute .\build.ps1 -Target Zip-Package
in a PowerShell console to package the entire application.
Details:
These tools have proven useful.
Backend:
- Visual Studio Community: Development
- ReSharper: Code formatting (a shared configuration is checked in)
- SQL Server Management Studio (SSMS): Database access
- Log4View: Log viewer
Frontend:
- Visual Studio Code: Development (recommended extensions: Babel JavaScript, ESLint, PowerShell, Vetur)
General
- Notepad++: For anything related to text, json, xml, etc. files
- Visual Studio Code: Cake scripts and markdown documentation (recommended extensions: Cake, Markdown All in One)
Please check the GitHub Dependency Graph for the complete list.
If you would like to participate in the project, please submit a pull request or get in touch with me if you have any questions.