Skip to content

This project features a robust CI/CD pipeline designed for a 3-tier application that supports CRUD (Create, Read, Update, Delete) operations. The pipeline automates the build, testing, and deployment processes, ensuring seamless delivery of features and enhancements.

Notifications You must be signed in to change notification settings

Vishsig/BoardGame-Java-AWS-CI-CD

Repository files navigation

🚀 BoardGame-Java-AWS-CI-CD

🖋️ Project Overview

This repository features a robust CI/CD pipeline for a 3-tier full-stack Board Game Database web application supporting CRUD (Create, Read, Update, Delete) operations. The pipeline automates building, testing, and deployment, ensuring seamless, reliable delivery for features and enhancements.

The application empowers both regular users and privileged managers to manage board games and reviews through secure role-based access, and leverages modern DevOps practices with Docker, Kubernetes, Jenkins, and monitoring tools.


🏗️ 3-Tier Web Application: Board Game Listing

  • View board game lists & reviews (All users, including guests)
  • Authenticated users:
    • Add board games
    • Write reviews
  • Managers:
    • Edit and delete reviews
    • Full control over board game entries and reviews

🛠️ Technologies

Layer Tech Stack Purpose/Function
Backend Java, Spring Boot, Spring MVC, JDBC, H2 DB (in-memory), JUnit, Maven Business logic and data service
Frontend HTML5, CSS, JavaScript, Thymeleaf, Thymeleaf Fragments, Bootstrap UI/UX, responsive design, templating
DevOps Jenkins, Docker, Kubernetes, AWS EC2, Prometheus, Grafana, SonarQube, Trivy, Blackbox Exporter CI/CD, containerization, deployment, monitoring, vulnerability scanning

🔑 Features

  • Full-stack board game & review management (CRUD operations)
  • Role-based authentication & authorization via Spring Security
    • Non-members: view only
    • Users: add board games, write reviews
    • Managers: edit/delete reviews
  • Modern UI with Bootstrap and Thymeleaf Fragments
  • Unit and integration testing with JUnit
  • Clean MVC architecture for scalable development
  • Automated deployment on AWS EC2
  • CI/CD pipeline: Jenkins-based build, test, and deploy automation
  • Monitoring & Logging: Prometheus & Grafana dashboards
  • Security & Quality: SonarQube analysis, Trivy vulnerability scanning

💻 How to Run

  1. Clone the repository
    git clone https://github.com/Vishsig/DevOps-3-tier-CI-CD.git
    cd DevOps-3-tier-CI-CD
  2. Open the project in your IDE of choice
  3. Run the application (via Maven or your build tool)
  4. Login Credentials:
    • User: bugs | Password: bunny
    • Manager: daffy | Password: duck
  5. Sign up as a new user to explore/manipulate roles

🚦 CI/CD & Deployment Flow

  • Continuous Integration:
    • Jenkins builds: code lint, test, SonarQube, Trivy
  • Continuous Deployment:
    • Docker builds, k8s YAML, auto-deploy to AWS EC2
  • Monitoring:
    • Prometheus + Grafana for dashboards and alerts
  • Health & Blackbox Monitoring:
    • Blackbox Exporter for endpoint status

📚 Project Structure

DevOps-3-tier-CI-CD/
├── .github/workflows/        # CI/CD workflow files
├── src/                     # Java source code
├── deployment-service.yaml   # k8s deployment config
├── Dockerfile               # Containerization config
├── Jenkinsfile              # CI/CD pipeline script
├── pom.xml                  # Maven build file
├── README.md                # Project & usage guide
├── ...                      # Frontend assets, config, SQL init scripts

🏆 Highlights

  • End-to-end automation for modern cloud-native deployment
  • DevOps best practices (pipelines, monitoring, security)
  • Advanced security: SonarQube, Trivy scans in CI/CD
  • Extensible and production-ready architecture

🤝 Contributions & Support


📜 License

Distributed under the MIT License. See LICENSE for more information (if available).


📧 Contact

Questions, feedback or suggestions?
Open an issue on GitHub or contact via Vishsig Profile

About

This project features a robust CI/CD pipeline designed for a 3-tier application that supports CRUD (Create, Read, Update, Delete) operations. The pipeline automates the build, testing, and deployment processes, ensuring seamless delivery of features and enhancements.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published