Skip to content

Latest commit

 

History

History
86 lines (55 loc) · 3.88 KB

README.md

File metadata and controls

86 lines (55 loc) · 3.88 KB

CS 2340 Scala Project: Risk

Status Uptime Version Contributors

CS 2340 Risk is a Scala web app that exposes a WebSocket API, leveraging the Akka Actor system to manage state.

At a high level, the frontend is built with Vue.js and HTML Canvases, while the backend is built with Scala Play and Akka. The project itself was produced for CS 2340 at Georgia Tech with Professor Christopher Simpkins (class website)

📚 Design Docs

Detailed documentation on the project and its components (including the frontend, backend, and deployment) is available here.

game screen

🚀 Getting Started

To setup the Risk web application, both the front end, written in Vue, and the back end, written in Scala, need to be built.

Front End

To compile the web application from its sources, make sure you have Node.js installed. Run the following commands in the /vue directory to install dependencies and then build the front-end codebase:

npm install
npm runScript buildProd

Back End

To start up the server and compile all Scala source files, run the following command from the project directory:

sbt run

And open http://localhost:9000/

⚙ Development setup

For development mode, run the following commands instead, which will (in addition to installing dependencies like before) generate source mappings, more verbose modules, and enable the Vue devtools extension: (again, in the /vue directory)

npm install
npm runScript build

When starting the server, you can enable the file watcher and start the Scala build/run process simultaneously:

sbt ~run

🔗 Dependencies

Frontend

  • Konva - Used for HTML canvas rendering
  • Vue.js - Progressive SPA framework for Javascript application
  • Popper.js - Javascript framework to create responsive tooltips
  • BootstrapVue - Bootstrap bindings for Vue to develop responsive web applications
  • FontAwesome - Large selection of web icons

Backend

Deployment

  • Docker - Container virtualization software
  • Nginx proxy - Proxy container providing support for https on live
  • Alpine Linux - Container image used to package application

👥 Contributors

Our team for CS 2340 consisted of the following members: