- About The Project
- Deployment & DevOps Practices
- Usage
- Roadmap
- Contributing
- License
- Contact
- Acknowledgments
SeatSnap is a modern, intuitive web application designed to provide a seamless ticket discovery and purchasing experience, similar to popular platforms like Ticketmaster. This repository primarily houses the frontend application, demonstrating a robust and automated deployment strategy through advanced DevOps practices.
While this repository focuses on the frontend and its deployment, it is envisioned to be the user-facing component of a larger system.
- Frontend: (HTML/CSS/JavaScript)
- Containerization: Docker 🐳
- CI/CD: Jenkins ⚙️
- Orchestration: Kubernetes ☸️
- Cloud Provider: AWS ☁️
- Monitoring: Prometheus 🔥, Grafana 📊
The SeatSnap frontend application is successfully deployed and accessible. The continuous integration and continuous deployment (CI/CD) pipeline is fully operational, ensuring that new features and bug fixes are delivered efficiently to the production environment.
Backend Status: The backend services for SeatSnap are currently not deployed as part of this project's scope. This project specifically highlights the frontend deployment and the DevOps practices applied to it.
This project showcases a comprehensive implementation of DevOps principles for the frontend application's lifecycle, from code commit to production deployment.
The CI/CD pipeline is orchestrated using Jenkins and automates the following stages:
- Source Code Management: Code is pulled from a GitHub repository 🐙.
- Code Quality Analysis: SonarQube performs static code analysis to maintain high code quality standards ✨.
- Deep Level Scanning: OWASP ZAP is utilized for deep-level file system scanning to identify security vulnerabilities 🕵️♀️.
- Vulnerability Scanning: Trivy performs container image vulnerability scanning 🛡️.
- Docker Image Creation: The frontend application is containerized into a Docker image 📦.
- Application Testing: Automated tests are executed on the application running within its Docker container ✅.
- Deployment: The tested Docker image is deployed to the production environment 🚀.
- Email Notification: Stakeholders receive automated email notifications about pipeline status 📧.
The SeatSnap frontend is deployed on Amazon Web Services (AWS), leveraging key cloud services for scalability and reliability:
- EC2 Instances: Virtual servers hosting the application components 💻.
- Docker Containers: The application runs within Docker containers for isolated and consistent environments 🐳.
- Kubernetes Cluster: The containers are orchestrated and managed by a Kubernetes cluster, ensuring high availability and efficient resource utilization 🌐.
- Load Balancing: An AWS Load Balancer distributes incoming traffic across the Kubernetes pods, enhancing performance and reliability ⚖️.
- Custom Domain Mapping: The application is accessible via a user-friendly custom domain, configured through AWS Route 53 🔗.
Continuous monitoring is established to ensure the application's health and performance:
- Prometheus: Collects metrics from the Kubernetes cluster and application 🔥.
- Grafana: Provides dashboards and visualizations for real-time monitoring and alerting 📊.
Once deployed, SeatSnap allows users to:
- Browse a wide range of events (concerts, sports, theater, etc.) 🎭.
- View event details, including dates, times, venues, and seat availability 🗓️.
- (Future: Select seats and proceed to a secure checkout process) 💳.
- Implement full backend integration for user authentication, ticket management, and payment processing ➡️.
- Enhance frontend UI/UX with advanced search and filtering options 🔍.
- Add push notifications for event updates 🔔.
- Integrate third-party APIs for venue maps and detailed event information 📍.
- Explore serverless functions for specific backend functionalities ☁️.
This project is solely implemented with frontend interface of our SeatSnap site and integrating it with DevOPS and agile methodologies.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated!
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
- Name - Ajitesh Sharma
- Email ID - 13ajitesh@gmail.com
- This is part of a 1-month IBM DevOps Certification.