Skip to content

Latest commit

 

History

History
133 lines (81 loc) · 5.19 KB

README.md

File metadata and controls

133 lines (81 loc) · 5.19 KB

billy-cdk

Docker pulls Image version Image Info

CircleCI

BillyCDK Remastered Edition. Manage CDKey inventory and more. Featuring C#, TypeScript, GraphQL, React-Redux, and more.

Demo

A demo has been uploaded to Bilibili and Youtube.

Features

Currently, you are automatically logged in as Billy, a super admin. The user info will be saved in the redux store after a successful log-in.

Cover

How to navigate

The UI of BillyCDK is inspired by the Fallout 4 terminal.

You can click the menu items with mouse clicking or by tapping, just like browsing a normal website.

Also, since this is designed as a terminal interface, you can try navigating with your keyboard. Try selecting a menu with arrow keys, press "Enter" to go into a menu, or press "ESC" to go back. Besides, you can always press the "Home" key to go back to the main menu. Currently, to focus different items in a form interface (e.g. Add a new game window), you need to press the "Tab" key to switch your input focus.

Buy games from the store

Buygames

You can buy a game from the store. After purchasing a game for yourself, the game item will appear in your game inventory directly (No CDKey entering required).

View the player list

ViewPlayers You can view a list of all players. And currently, all players are assumed to be your friends.

Manage the CDKeys

ManageCDKeys You can take a look at the CDKeys you own at the CDKey inventory. You may choose to activate a new game by entering an existing inactivated CDKey.

Manage players

ManagePlayers

Admins can manage the players. They can help register a new player, edit the information of an existing player, or delete a player.

Manage store games

ManageStoreGames

Admins have the privilege to manage the store. They can publish a new game, edit the details of the existing games, or delete a game.

Publish a new game

PublishNewGame

Admins can publish a new game.

Issue CDKeys for games

IssueCDKeys

Admin can issue CDKeys for a certain game. To do that, you need a CDKey value prepared in advance.

Switch language

SwitchLanguage

You can switch languages at the main menu. Translations are provided in English, French, and Chinese Simplified.

Todo

Server:

  • ✔ CDKey Management (add, get, update, remove)
  • User authorization (player sign-up, login)
  • Premium Examination
  • ❌ Platform management (restart, download, delete)

Client:

  • UI ✔
  • i18n ✔

Class diagram for CDK inventory

billy-cdk-class

Deployment

Preparations

  • A working MongoDB: Set up via docker or install one manually.

  • secrets.yaml for DB connection configs.

  • appsettings.yaml for appliaction settings.

    • Set a basePath if the server is behind a reverse-proxy (e.g. Nginx, Kubernetes)

    • Do remember to specify the Kestrel Url in appsettings.yaml, otherwise, you cannot access the server! Refer to server/App/appsettings.Development.yaml for hints or refer to section ListenOptions.UseHttps on article "Kestrel web server implementation in ASP.NET Core".

Docker

Run:

docker run -d \
--network my-vps-main-network \
--name billy-cdk-c1 \
-v /path/2/appsettings.yaml:/workspace/www/billyCDK/appsettings.yaml \
-v /path/2/secrets.yaml:/workspace/www/billyCDK/secrets.yaml \
valorad/billy-cdk:latest

Manually

  • Install .NET Core Runtime ^3.1.0

  • Download the release version, extract files, and locate the directory.

  • Create your own appsettings.yaml and secrets.yaml in that directory.

  • Run:

    dotnet BillyCDK.dll

Links to git submodule of this repo

Github has a problem accessing the git submodule with relative paths. You can access them from the links below.

Original version

The original version was developed in 2014 as a personal project after finishing the C programming course.