TWELVE HEROES ============= *The digital version of the boardgame* - _Implementation in progress_ -------------------------------------- This is a web version on the 12 heroes board game that I am coding for fun as a personal project. It is far from being complete and production ready. Game official rules : https://cloud.jojolab.net/s/pBnC6wsSKC4E3RX Here you have : - A vueJS app with : - socket.io client for communication with backend - game menus - start of the game logic : build the start deck - A NodeJS backend server : - talks to a MariaDB - Authenticate users - implements game logic What's left : - Better look & feel, especially for cellphones - game logic - tests (shoud have started with that :) ) ## Project setup ### Prerequisites - nodeJS >= 14 - npm >= v6.14.8 - Docker >= v19.03.13 - Docker Compose >= v1.27.4 ``` npm install cd server && npm install ``` ## Compiles and hot-reloads for development in Firefox browser For development there is a default environment in `.env.development` ### Run dev server with hot reloading upon changes To run the backend you also need a mariaDB, following will start : - a local test DB with user1 to user5 created - the backend server ``` npm run dbtest npm run server-dev ``` You can admin the db at http://localhost:8080 Per current file [./.env.development](./.env.development), access local test DB admin with: - user : `th` - pass : `th123` ### Run VueJS app with hot reloading upon changes ``` npm run dev ``` ## How to deploy using docker compose You will need to fill up the `.env.production` file ``` # HOST and PORT of the backend server for client socket connection export VUE_APP_SERVER_HOST= export VUE_APP_SERVER_PORT= # Port on which you want to expose the game app export VUE_APP_PORT= ## backend MariaDB information : # DB host (usually localhost as same machine as the backend) export DB= # DB port (by default 3306 for mysql/MariaDB) export DB_PORT= # Depends on your DB config, you can connect to a unix socket instead of port export DB_SOCKET= # Database name export DB_NAME= # User and password export DB_USER= export DB_PASS= ``` Then you just need to do : ``` npm run build-docker docker-compose start ## Or docker-compose up to get logs ``` ### Recommended VS code plugins : * Vetur * Vue 2 Snippets * Vue VSCode Snippets * ESlint * Prettier ESLint * All Autocomplete * Bootstrap 4, Font awesome 4, Font Awesome 5 Free * SCSS IntelliSense