Speedia is a real-time online Wikipedia racing web-app, built in Vue and Node. Select a category, face your opponent, and reach the final article first!
- VueJS (frontend), scaffolded with Vue-CLI
- NodeJS 12+ with ExpressJS (backend)
- SocketIO (backend WebSockets server), Vue-SocketIO (frontend WebSockets client)
Speedia is tested to work on the following platforms:
- MacOS High Sierra 10.13.6+ (x86_64)
- Ubuntu Linux 19.0.0+ (x86_64)
If you're on a Windows environment, running Speedia through the Ubuntu Terminal might be possible.
Before jumping in to everything, it might be a good idea to get familiar with these tools if you aren't already:
- Bash, which allows us to run, build, and deploy the app
- Yarn (or NPM), the package manager for Node that helps install the app's dependencies
- Clone or download the repository through the
Clone or Download
button here on GitHub or through your command line - In the command line, move to the repository and run
yarn install
to install all dependencies - Once Yarn has installed everything without errors, open up two terminal windows to separate output from the frontend and the backend (optional but recommended)
- Run
yarn frontend
in the first terminal to run the frontend web app (available onlocalhost:8080
) - Run
yarn backend
in the second terminal to run the backend WebSockets server (accessible to the frontend onlocalhost:8079
)
Speedia uses Nodemon, a tool that automatically refreshes the backend whenever changes to backend code (located in the speedia/server
directory) are detected. Running yarn frontend
triggers a development server for the frontend, which will automatically refresh the frontend on file changes as well.
If you're running into errors during installation, here are some things to watch out for:
- Speedia uses Worker Threads to handle individual games, which is only available out-of-the box in NodeJS 12+; make sure that this version is installed on your system