Skip to content

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •