My main purpose for this application is to utilize it primarily for DevOps purposes to practice Containerization, CICD and monitoring. Because of this, it makes the most practical sense to build a simple app that represents real world applications.
Therefore, I'll have two directories, ui and api , both which will be containerized separately eventually. I'll update this README.md as I progress. If the full stack application itself becomes interesting, I can always make it more complex.
βοΈ NextJS 15 TypeScript app with TailwindCSS & Axios for simple interaction with the API.
https://nextjs.org/docs/app/getting-started/installation
Eventually I'd like to use https://qr.io/api-documentation and create a better UX.
cd uinpm inpm run devwhich opens the ui via Turbopack athttp://localhost:3000
π Python using FastAPI to receive URL and generate QR codes then store the QR code in cloud storage (AWS S3 Bucket or Azure Blob Storage).
python3 -m venv .venvto create a virtualenvsource .venv/bin/activateto activate itpip install -r requirements.txtto install the required packagestouch .envadd AWS (or Azure) Access key, Secret key, & bucket name for S3 bucket,
AWS_ACCESS_KEY=""
AWS_SECRET_KEY=""
BUCKET_NAME="franks-bucket-name"
uvicorn main:app --reloadto run the API server on porthttp://localhost:8000curl -X POST "http://localhost:8000/generate-qr/?url=https://frankcarv.com"should yield a response .png
-
Containerization: Containerize bothui&apiwithDockerfiles. - CI/CD: Write a CI/CD pipeline to
automate the deploymentof the containers when source code is changed. - Kubernetes YAML files: Create deployment and service YAML files for both ui & api.
- Kubernetes Setup: Set up a
Kubernetes servicewithin my cloud provider (Azure AKS or AWS EKS. TBD). - Container Deployment:
Deploythe ui, api, & storage containers to the Kubernetes cluster. - Interconnectivity: Ensure the containers are
interconnectedfor seamless data flow. - CI/CD Implementation: Set up
CI/CD pipelineto deploy the containers and app after source changes (GitHub Actions or Azure Pipelines). - Monitoring: Set up
monitoringfor containers to track key metrics and insights (Azure monitor for AKS, AWS Cloudwatch container insights for EKS, or Grafana).

