🚀 This project demonstrates a cloud-enabled ☁️ microservices-based deployment using Spring Boot 🍃, React ⚛️, AWS 🟨, GCP 🔵, and Docker 🐳. It showcases how to build 🛠️, containerize 📦, and deploy 🚢 backend services and a frontend application with cloud-managed 🌐 and self-hosted 🖥️ databases.
This repository contains four projects:
- course-service (Spring Boot + MySQL)
- student-service (Spring Boot + MongoDB)
- media-service (Spring Boot + Local file storage, can be extended to S3/MinIO)
- frontend-app (React + TypeScript)
- Entity: Course(id, name, duration)
- Endpoints:
- GET /courses
- GET /courses/{id}
- POST /courses
- DELETE /courses/{id}
- Default port: 8081
- Configure MySQL settings
- Document: Student(registrationNumber, fullName, address, contact, email)
- Endpoints:
- GET /students
- GET /students/{id}
- POST /students
- DELETE /students/{id}
- Default port: 8082
- Configure MongoDB settings
- Resource: files
- Endpoints:
- POST /files (multipart/form-data: file)
- GET /files (list)
- GET /files/{id} (fetch)
- DELETE /files/{id} (delete)
- Default port: 8083
- Uses local disk storage at
./data/mediaby default (override with env varMEDIA_STORAGE_DIR).
- React + TypeScript + MUI + Axios + Vite app with 3 sections: Courses, Students, Media
- Scripts:
- npm run dev (Vite dev server)
- npm run build (TypeScript build + Vite build)
- npm run preview (Preview built app)
- Backend: run
mvn -q -e -DskipTests packageat repo root to build services. - Frontend: run
npm installthennpm run devinsidefrontend-app.
In development mode:
- MySQL and MongoDB run inside Docker containers with persistent volumes.
- Backend services are started using the
devprofile.
docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql -p 15000:3306 mysql:ltsdocker run --name mongo -v mongo-data:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=mongo -p 16000:27017 -d mongo:latestBoth containers will persist data in their respective Docker volumes (mysql-data, mongo-data).
https://github.com/sasmithx/Cloud-Deployment-In-Action.gitThis project is licensed under the MIT License - see the MIT License file for details.
- Name: Sasmith Manwadu
- Registration Number: 2301682042
- Email Address: [email protected]


