Skip to content

Technology Stack

Allen Lee edited this page Aug 6, 2024 · 8 revisions

Frontend

Figma

A UX design tool that allows the entire team to see and interact with the latest designs by accessing a single, live URL.

Vue.js

Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications.

Vuex (state management)

Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official devtools extension to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.

Bootstrap Vue

Bootstrap Vue provides one of the most comprehensive implementations of the Bootstrap v4.3 component and grid system for Vue.js, complete with extensive and automated WAI-ARIA accessibility markup.

Backend

  • Node.js
  • colyseus as the multiplayer framework for data synchronization within game "rooms"
  • express endpoints for data access and retrieval

Authentication

passport js's oauth2 module and google / meta oauth for user sign in

Database

Currently using:

To upgrade postgresql docker image and container do the following:

steps to upgrade db image:

  1. upgrade db version in base.yml
  2. backup db via npm run backupdb in the server container
  3. copy the generated pom-(date).sql out from the server container into the host, e.g., docker compose cp server:/code/server/pom-db.sql .
  4. stop db container
  5. upgrade to new postgres image in docker-compose.yml
  6. backup postgres data directory e.g., mv docker/data{,.backup}
  7. regenerate docker-compose.yml via make docker-compose.yml or make deploy
  8. docker compose up -d
  9. copy pom-db.sql into server container and run npm run dangerously-loaddb

Version Control

Documentation

Deployment