Game Store

A web application that lets users search video games, make payments, and organize their purchases.


Game Store Interface

🌟 Project Overview

The Game Store project is an interactive Java EE web application that lets users browse, purchase, and manage their video game library. With this platform, users can:

  • Discover Games: Easy browsing and filtering of games to match user preferences.
  • Smooth Transactions: Effortlessly add games to your cart and proceed to secure payment options.
  • Manage Purchases: Once a game is purchased, it is automatically moved to the user’s personal library for future access.

🛠️ Technology Stack

The project leverages a full-stack approach with the following technologies:

  • Java EE & JSP: The core of the application, providing a robust back-end and dynamic front-end.
  • JPA (Jakarta Persistence API): For managing and persisting game and payment data.
  • MySQL: The database that stores video game and payment information.
  • Maven: For managing project dependencies and building the project.

📚 What I Learned

Agile Development with SCRUM

The project was developed using the SCRUM framework, helped me improve my skills in:

  • Sprint Planning: Breaking down large features into manageable tasks for each sprint.
  • Backlog Management Organizing and prioritizing work items, which allowed the team to focus on the most valuable tasks first.
  • Team Collaboration Daily stand-ups and sprint retrospectives ensured that all team members were aligned..

DevOps Implementation

  • Automated build process with Maven (3.3.2)
  • CI/CD pipeline featuring:
    • JUnit test execution gate
    • WAR artifact signing
    • Azure Web App deployment

Testing Infrastructure

  • JUnit 5: Parameterized tests for service layers
  • Mockito: Behavior verification for repository layers

DevOps Toolchain

Cofiguration on Azure DevOps

  • Azure Boards for sprint planning (12 user stories completed)

  • Azure DevOps: Azure DevOps was the central tool used to implement SCRUM and DevOps practices.

    • Azure Boards: Used to manage the project backlog, create user stories, and track progress across sprints.
    • Azure Repos A cloud-based repository for version control, ensuring that code was properly versioned, and changes could be tracked and managed efficiently.
    • Azure Pipelines: Set up for CI/CD, automating the build, test, and deployment processes.
    • Retrospectives: The tool helped us reflect on completed sprints, identify areas for improvement, and iterate on our processes.

🚀 Engineering Insights

Agile Implementation

  • Managed 4 sprints using Azure Boards
  • Conducted sprint retrospectives with actionable improvements
  • Implemented planning poker for story point estimation
  • Implemented unit testing
  • Configure CI/CD pipeline