Эта дипломная работа - бесплатная онлайн-платформа для виртуальных настольных игры, написанная на ASP.NET + React.
- Минималистичный современный дизайн
- Своя реализация авторизации на JWT
- SignalR для связи сервера и клиента в реальном времени
- Потокобезопасная обертка для облегчения создания игр
Нашел какую-то проблему, баг или недоработку, пиши в issues.
Хочешь сам поправить какой-то баг или улучшить существующий код? Создавай свою ветку и делай pull-request со своими изменениями.
Хочешь создать новую игру? Инструкция в этом разделе.
Создай базу данных PostgreSQL по схеме webapi/webapi/Data/Schemas/WebBoardGamesDB.sql
Добавь в файл webapi/webapi/appsettings.Development.json
строку подключения к БД и случайный jwt ключ длиной 128 символов (вместо stub
):
"ConnectionStrings": {
"DefaultConnection": "stub"
},
"Jwt": {
"Issuer": "http://localhost:5042",
"Audience": "http://localhost:3000",
"Key": "stub"
},
Windows:
- Запусти
run_server.bat
- Запусти
run_client.bat
Linux:
- Запусти
run_server.sh
- Запусти
run_client.sh
- Посмотри, нет ли ее в списке
games.txt
. - Если ее там нет, сделай pull request с добавлением игры в этот список.
- Начинай разработку в своей ветке (в названии ветки нужно указать название игры).
- В webapi в папке
Games
создай папку с названием игры и класс игры с названием типаCheckersGame
, гдеCheckers
- название игры. Наследуйся от абстрактного класаPlayableGame
. - В webapi зарегистрируй игру в файлах
GameServicesConfigurator.cs
,GameEndpoints.cs
иGameNameToLobbyServiceMapper.cs
по аналогии с другими играми. - В reactapp в папке
Games
создай папку с названием игры и файл-компонент игры с названием типаcheckersGame.tsx
, гдеcheckers
- название игры. - В reactapp в папке
Games/Lobby
создай файл с лобби своей игры по аналогии с лобби других игр. - В reactapp зарегистрируй игру и лобби в файле
App.tsx
по аналогии с другими играми.
Перед принятием важных решений обязательно вешай ревью на CompleXss.