Skip to content

Monash-FIT3170/Shazam-3-Scrum-Unleashed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shazam-3-Scrum-Unleashed

Project 3 - FIT3170 - 2024

Front Page

This application is an online knock-out styled tournament where players compete in a variety of 1 v 1 games such as Rock, Paper, Scissors and Pong. Special power ups can also be enabled to add more variety into the game. Players who lose will start spectating the winner, where they can then cheer on the winner with emojis. This application was built with the combined effort of 16 individuals as a part of a full year project at Monash University.

Team Members

Application Deployment

The deployed application is currently available here to be enjoyed. The server is being currently being hosted on Digital Ocean and the front end is hosted on Cloud Flare.

The application can be easily redeployed on other servers by forking the repo and updating the values in Github Secrets panel. The deployment pipeline is set up via Github Actions and automates deployment to production.

Repo Structure

  • client : contains all the front end components required for the web client.
  • server : contains all the backend (networking, storage and game logic) for the server.
  • types : contains interfaces and types which both the client and server will use, generally for communicate with each other.
  • tests : contains E2E tests for our application to ensure functionality.

Prepare for development

  1. Ensure you have the latest version of node v22 installed on your machine. You can download it from the following link: https://nodejs.org/en/
  2. Move into the client directory of the project by typing the command cd client.
  3. Open another terminal and then move into the server directory cd server.
  4. Install dependencies in both client and server by running npm install in both terminals.
  5. Run both the client and server by running npm run dev in both terminals.

Recommended steps (not strictly required)

  1. Use vscode as your code editor.
  2. Install the following extensions:
    • Prettier - Code formatter
    • ESLint
    • Typescript
  3. Refer to our handover video for a walkthrough of the architecture as well as a deep dive into the code and how the application works. The link can be found at: https://drive.google.com/file/d/1BLmVeHUXfNqvcXFwk-ovQhECkiHtJxus/view

Before committing/merge request

Remember to run the 2 following commands to ensure the code passes the automated linting test

  1. npm run format
  2. npm run lint

Testing

To run the E2E tests locally, complete the following instructions.

  1. Start the server and client, as outlined in Prepare for development
  2. Move into the tests directory of the project by typing the command cd tests.
  3. Install dependencies in tests by running npm install in the terminal.
  4. Run the test by running npm run test in terminal.

Pull Request (PR) Strategy

To submit a Pull Request (PR) for contributing to Rock Paper Shazam:

  1. Create a New Branch from dev: Work on a feature or bug fix in a branch named descriptively (Example: bugfix: fix pong timer, feature: Pong power ups).
  2. Make Commits: Ensure each commit is clear and descriptive. Follow the commit message convention (fix: resolve pong ball bug).
  3. Submit PR: Open a PR to the dev branch, providing a detailed description of your changes, referencing any other issues.
  4. Review Process: The PR will be reviewed by at least one developer. Any requested changes must be addressed before merging.

Versioning Strategy

For all future releases use Semantic Versioning (SemVer). Versions will be in the format MAJOR.MINOR.PATCH.

  • MAJOR: Increased for major changes
  • MINOR: Incremented for new features that are backward compatible.
  • PATCH: Incremented for bug fixes/minor updates that do not affect functionality. Examples: Version 1.3.0 means a third minor release with no new major features, while 2.0.0 introduces major features.

Notes

  • Running npm run test -- --headed will create and display the tabs on the local device.
  • Occasionally the test will stall when a client browser fails to join, this can be fixed by manually clicking the join button.
  • Occasionally a client browser will not be updated on a match start, refreshing will connect the client.

About

Project 3 - FIT3170 - 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages