47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# Shogi
|
|
A web application for playing the Shogi boardgame with others, developed as a hobby and hosted at [https://lucaserver.space/shogi/](https://lucaserver.space/shogi/)
|
|
The application uses sockets to allow players to enjoy sessions in real time.
|
|
|
|
### Technologies used
|
|
A Blazor Web App which uses Sql Server for presistent storage and Identity EF Core for account management.
|
|
|
|
|
|
### Roadmap of features remaining
|
|
The app is not yet finished, though much of the functionality exists. Here is a list of what remains.
|
|
|
|
* Placing pieces from the hand onto the board.
|
|
* Checkmate experience
|
|
* Preventing the rarely invoked rule where check-mate cannot be gained by placing a pawn from the hand.
|
|
* Retaining an archive of games played and move history of each game.
|
|
* Adaptive UI layout for varying viewport (screen) sizes.
|
|
|
|
### Database Setup
|
|
If you don't have them, install the `Data storage and processing` tools through Visual Studio Installer. This gives you a local MSSQL database for you to develop with, which is nice so you aren't touching live data while working.
|
|
|
|
After that, you need to set up the database. The database has two sources of table structure.
|
|
|
|
#### 1. Shogi.Database project
|
|
This project contains the table structure for the game.
|
|
|
|
1. Build the Shogi.Database project.
|
|
1. Publish the Shogi.Database project (right click in Solution Explorer).
|
|
* If you're prompted for a connection string, use the one from `Shogi/appsettings.json`.
|
|
|
|
#### 2. EntityFramework via AspNetCore.Identity
|
|
This solution uses the `Microsoft.AspNetCore.Identity.EntityFrameworkCore` package to offer authentication and authorization. This uses Entity Framework, which comes with tools to setup our database with the necessary table structure for auth.
|
|
|
|
1. Install the Entity Framework dotnet tools that come with the project. Via Powershell run this command:
|
|
```
|
|
dotnet tool restore
|
|
```
|
|
1. Run the database migrations and fill out table structure for auth. Run this command from the MUD.Api project directory:
|
|
```
|
|
cd /path/to/solution/Shogi
|
|
dotnet ef database update
|
|
```
|
|
|
|
After this, you should be ready to create some test accounts for local development.
|
|
|
|
### Creating Test Accounts
|
|
To create test accounts for local development, make sure to build in DEBUG mode and then use the `/debug/create-test-accounts` endpoint
|
|
of the API. This will create two accounts. If those accounts already exist, they'll be deleted (along with all game session data associated) and recreated. |