Overview This project is a full-stack To-Do List application developed with the following stack:
- Frontend: React.js, HTMl, CSS.
- Backend: Node.js/Express.js
- Database: MongoDB
- Deployment: Dockerized and deployed on Kubernetes
- CI/CD Pipeline: Automated testing and deployment using GitHub Actions.
- Add, edit, and delete tasks with a user-friendly interface.
- Real-time data updates with a connected backend and database.
- Scalable and containerized architecture using Docker and Kubernetes.
- Automated testing and deployment pipeline.
Prerequisites Ensure you have the following tools installed:
- Node.js
- Docker
- kubectl
- Terraform
- MongoDB.
- Clone the Repository
git clone https://github.com/your-username/react-todo-app.git
cd react-todo-app
- Frontend Setup
cd frontend
npm install
npm start
This starts the React development server at http://localhost:3000.
- Backend Setup
cd backend
npm install
node server.js
The backend server will start on http://localhost:5000.
Build Docker Images: From the root directory:
docker-compose build
Run Docker Containers
docker-compose up
- Deploying to Kubernetes Apply Kubernetes Manifests
kubectl apply -f manifests/
Verify Deployment
kubectl get pods
kubectl get services
-
Setup GitHub Secrets: Add the following secrets to your GitHub repository: DOCKER_USERNAME and DOCKER_PASSWORD for DockerHub.KUBE_CONFIG for your Kubernetes cluster configuration.
-
Pipeline Process:
- Runs tests automatically on pull requests.
- Builds Docker images and pushes them to DockerHub.
- Deploys to the Kubernetes cluster.
react-todo-app/
├── backend/
│ ├── server.js
│ ├── package.json
│ └── ...
├── frontend/
│ ├── src/
│ │ ├── App.js
│ │ └── ...
│ ├── package.json
│ └── ...
├── manifests/
│ ├── backend-deployment.yaml
│ ├── frontend-deployment.yaml
│ ├── mongo-deployment.yaml
│ └── services.yaml
├── Dockerfile
├── docker-compose.yaml
└── README.md
This project is licensed under the MIT License.