Skip to content

rom618/gamestore-reworked

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

232 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Online Game Store (Personal Continuation)

This repository is a personal fork and continuation of a group project developed for ECSE 321: Introduction to Software Engineering (Fall 2024) at McGill University.

Original repository: https://github.com/McGill-ECSE321-Fall2024/project-group-5

The original system was developed collaboratively by a team of six students. This fork preserves the original work and commit history. Further development, experiments, and improvements in this repository are my own.

Online Game Store

Tech Stack

Backend:

  • Java
  • Spring Boot
  • Gradle
  • PostgreSQL

Frontend:

  • React.js
  • Vite
  • Node.js

Personal Extensions

After the completion of the course project, I continued working on this repository to explore additional improvements and features.

Examples of ongoing work include:

  • Improving backend architecture
  • Adding additional features w/ testing
  • Added gitignore and CI/CD
  • Full frontend rework
  • Functional frontend/backend interactions

F2024 - ECSE 321: Introduction to Software Engineering

Project Overview

In a team of 6, we are tasked with developing a web application that will allow the expansion of the independent game shop with an online store. We will do this by gathering requirements, designing a multi-tier software solution to satisfy those requirements, implementing the system, validating that the system is satisfying the requirements, and developing a release pipeline to automate the software delivery process. To simplify, we will follow the four key activities in the software engineering process: specification, development, validation and evolution.

The main features of the web application are listed as follows:

  1. Customer Accounts: Without having to create an account, customers will be able to browse the catalog of games. While customers with accounts, will also be able to purchase games, track their order history, save items to a wish list for future purchases, and post reviews for the games they have purchased.
  2. Employee Accounts: Employees will each own an account for management purposes, allowing them to update the inventory, and request the addition and removal games as well as specify their category.
  3. Manager Account: In addition to having all the functionalities of an employee account, manager accounts will also be able to approve requests made by employees to publish games to the catalog. They will also be able to reply to reviews.
  4. Reviews: The system will also allow the general public to pay for a parking spot, without the need of an account.

Meet the Team

Team Member GitHub Role Major Year
Ana-Maria Floarea anafloarea Software Developer Mechanical Engineering U4
Alisha Malik alishamalik00 Software Developer Software Engineering U2
Viviane-Laura Tain vivianeltain Software Developer Mechanical Engineering U4
Romain Teyssier rom618 Software Developer Computer Engineering U3
Caroline Thom carolinethom2 Software Developer Mechanical Engineering U4
Reswanth Reji Pillai jumpman786 Software Developer Software Engineering U2

Application Installation

Prerequisites

  • Docker & Docker Compose (Recommended for Quick Build)
  • PostgreSQL 17 (If running manually)
    • username: postgres | password: postgres | port: 5432
  • Java 23 (OpenJDK 23)
  • Gradle 9.3.1
  • Node.js v22.11.0+ & Npm 10.9.0+
  • Vite 8.0.4 & React 19.2.4
  • TypeScript 6.0.2

⚡ Quick Build (Docker Compose)

The easiest way to get the entire stack (Database, Backend, and Frontend) running simultaneously.

  1. Ensure you have Docker and Docker Compose installed.
  2. From the project root, run:
    docker-compose up --build
    docker-compose up

Manual Setup Database

  1. Open command line
  2. Access postgres: psql -U postgres and enter password postgres
  3. Create database: create database gamestoredb;
  4. Quit: \q

Manual Build and Start Application Backend on Local Machine

  1. Inside the backend directory: cd /path/to/project-group-5/GameStore-Backend
  2. Build grade: ./gradlew build
  3. Run application:
  • via Gradle: ./gradlew bootRun
  • via an IDE: run the application from /GameStore-Backend/src/main/java/ca/mcgill/ecse321/gamestore/GameStoreApplication.java
  1. Application should be started on localhost:8080

Manual Build and Start Application Frontend on Local Machine

  1. Backend should be started first
  2. Inside the frontend directory: cd /path/to/project-group-5/GameStore-Frontend
  3. Install node modules with npm install
  4. Start the Vite server with npm run dev
  5. The frontend server should be started on localhost:5173

* Note that this runs a development server, a production version should be built using npm run build and then ran using a webserver module such as serve

Sprint

Sprint 1: Overview

Sprint 2

Sprint 2: Overview

Sprint 3

Sprint 3: Overview

About

project-group-5 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 78.6%
  • TypeScript 15.6%
  • CSS 5.5%
  • Other 0.3%