🌟 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
-
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