Skip to content

hirentimbadiya/notes-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

INoteBook

Application Deployment:

  • INoteBook
  • DevOps Resources (DevOps Resources Such As Jenkins Groovy Scripts, Helm Chart Templates and Prometheus Configurations)

Description

  • Developed a robust note-taking application from scratch utilizing Express.js for the backend server and React.js for the frontend, ensuring a seamless user experience.
  • Containerized the application using Docker and orchestrated deployment on Google Kubernetes Engine (GKE) leveraging Helm charts, ensuring scalability and reliability.
  • Automated the entire CI/CD process using Jenkins, Groovy script, and Jenkins shared libraries, streamlining development workflows and reducing manual errors.
  • Implemented SonarQube code scanning within the Jenkins pipeline to enforce code quality standards and enhance overall project integrity.
  • Utilized Prometheus as a metrics collector to monitor Kubernetes pods and deployments, enhancing observability and facilitating proactive issue resolution.
  • Visualized Kubernetes metrics through Grafana public dashboard, providing comprehensive insights into system performance and resource utilization.
  • Configured Kubernetes ingress for external access to the application, ensuring seamless user interaction, and integrated HTTPS load balancer with a managed certificate for enhanced security.
  • Implemented horizontal pod autoscaling to dynamically adjust resources based on demand, optimizing application performance and resource utilization.

Technologies Used

  • React.js
  • Express.js
  • Docker
  • Kubernetes
  • Helm
  • Jenkins
  • Groovy
  • SonarQube
  • Prometheus
  • Grafana
  • HTTPS Load Balancer
  • Horizontal Pod Autoscaling
  • Google Kubernetes Engine (GKE)
  • MongoDB
  • Google Managed SSL Certificate

Features

  • User Authentication
  • Note Creation
  • Note Deletion
  • Note Update
  • Secure HTTPS Connection
  • Horizontal Pod Autoscaling
  • Metrics Monitoring
  • Code Quality Scanning
  • CI/CD Pipeline
  • Containerization

Installation

  1. Clone the repository
git clone https://github.com/hirentimbadiya/notes-app.git
  1. Navigate to server directory and install dependencies
cd server
npm install
  1. Navigate to client directory and install dependencies
cd client
npm install
  1. Modify the .env file in the server directory with your MongoDB connection string and JWT secret key
MONGO_URI=YOUR_MONGODB_CONNECTION_STRING
JWT_SECRET=YOUR_JWT_SECRET_KEY
  1. Modify the .env file in the client directory with the server URL
REACT_APP_BACKEND_HOST=YOUR_SERVER_URL
# Example: 
# REACT_APP_BACKEND_HOST=http://localhost:3001
  1. Start the server
cd server
npm run dev
  1. Start the client
cd client
npm run start
  1. Access the application at http://localhost:3000

Author

Hiren Timbadiya

License

This project is open source and available under the MIT License.