Skip to content

Building DevOps Capstone Project that generetes QR Codes for the provided URL.

License

Notifications You must be signed in to change notification settings

Suraj-kumar00/DevOps-URL2QR

 
 

Repository files navigation

DevOps-URL2QR Project

This project focuses on creating a streamlined solution for generating QR codes from user-provided URLs. It features a user-friendly Next.js front end for URL input, a robust FastAPI backend for QR code generation, and a secure storage system for saving the generated codes.

  • Front-End Container: User-facing website for URL input.
  • API Container: Backend service for QR code generation.
  • Storage Container: Secure storage for generated QR codes.

Cloud & DevOps Practices

  • Docker: Used for containerizing the front-end (Next.js) and API (FastAPI) to ensure consistent deployment across environments.

  • GitHub Actions: Implements CI/CD pipelines to automate the deployment of containers when source code changes occur.

  • Terraform: Manages and provisions cloud infrastructure, specifically creating a Kubernetes cluster using Infrastructure as Code (IaC).

  • Kubernetes: Orchestrates the deployment and management of containerized applications, ensuring scalability and high availability.

  • AWS S3: Provides secure storage for generated QR codes, allowing for persistent data storage and easy accessibility.

  • Amazon CloudWatch: Monitors container metrics, providing insights for performance and operational monitoring.

  • Grafana: Enhances observability by visualizing metrics collected from the application, aiding in performance monitoring and troubleshooting.

Project Workflow

DevOps URL2QR Project Workflow

End to End CI/CD Pipeline

CICD Pipeline

Running the project locally

Run the Backend

The Backend code exists in the api directory. You can run the API server locally:

  1. Clone this repo
git clone <repository-url>
  1. Make sure you are in the api directory
cd api
  1. Create a virtualenv by typing in the following command:
python -m venv .venv
  1. Install the required packages:
pip install -r requirements.txt
  1. Create a .env file, and add your AWS Access and Secret key, check .env.example just run the below command
cp .env.example .env
  1. Also, change the BUCKET_NAME to your S3 bucket name in main.py
  2. Run the API server:
uvicorn main:app --reload
  1. Your API Server should be running on port http://localhost:8000

Run the Front-end

The front-end code exits in the front-end-nextjs directory. You can run the front-end server locally:

  1. Make sure you are in the front-end-nextjs directory
cd front-end-nextjs
  1. Install the dependencies:
npm install
  1. Run the NextJS Server:
npm run dev
  1. Your Front-end Server should be running on http://localhost:3000

This project is inpired by

Rishab Kumar

Star 🌟 the project

If you like this project so far don't forget to star 🤩 the project for future reference.

License

MIT

Packages

No packages published

Languages

  • JavaScript 30.3%
  • HCL 23.8%
  • Python 22.2%
  • Dockerfile 18.1%
  • CSS 5.6%