Welcome to my portfolio project! This project demonstrates my skills in deploying a full-fledged application consisting of multiple microservices. Using Next.js for the frontend, Go for backend microservices, and MongoDB as the database, this project showcases my proficiency in orchestrating the deployment process using cloud-native technologies and best practices.
This project aims to showcase my DevOps skills by orchestrating the deployment process of a full-fledged application with multiple microservices. The frontend, backend microservices, and database components are seamlessly integrated and deployed using cloud-native technologies.
- Responsive Design: The frontend is designed to be responsive, providing an optimal viewing experience across various devices and screen sizes.
- Dynamic Data Rendering: The backend API fetches data from MongoDB and serves it to the frontend, enabling dynamic rendering of portfolio content such as projects, skills, and contact information.
- Authentication and Authorization (optional): Secure authentication and authorization mechanisms can be implemented to restrict access to certain parts of the portfolio.
- Scalable Architecture: The project architecture is designed to be scalable, allowing for easy expansion and addition of new features in the future.
To run this project locally, follow these steps:
- Clone this repository to your local machine.
- Navigate to the project directory.
- Install dependencies for both the frontend and backend:
cd frontend npm install cd ../backend go mod tidy
- Set up the MongoDB database and create a .env file in backend folder.
echo "MONGOURI=<MONGODB_CONNECTION_STRING>" >> .env
- Start the frontend and backend servers:
cd frontend npm run dev cd ../backend go run main.go
- Access the application in your web browser at
http://localhost:3000
.
Once the application is running, you can navigate through the various pages of the portfolio to view different sections such as projects, skills, and contact information. The frontend communicates with the backend API to fetch and display dynamic data from the MongoDB database.
- Frontend: Next.js
- Backend: Go (Golang)
- Database: MongoDB
- Deployment: Google Cloud Run, Terraform, GitHub Actions
This project is deployed using Google Cloud Run. Deployment is automated using Terraform for infrastructure provisioning and GitHub Actions for continuous integration and deployment.
- Configure your Google Cloud credentials and project.
- Set up a MongoDB instance on Google Cloud or use an existing one.
- Create a Terraform configuration to define the Cloud Run service, networking, and IAM policies.
- Set up GitHub Actions workflows to build and deploy the application automatically on every push to the main branch.
Contributions are welcome! If you have any suggestions, bug fixes, or feature implementations, feel free to open an issue or create a pull request.
This project is licensed under the MIT License. Feel free to use and modify the code as per your requirements.