The Employee Management System is a lightweight, in-memory web application designed to simplify the handling of employee information. Developed using Spring Boot and Thymeleaf, this application enables users to effortlessly add, view, and delete employee records. The intuitive interface provides a smooth experience for managing your workforce without the need for external databases.
Seamlessly input new employee details through a user-friendly form.
Access a comprehensive list of all employees, each with a unique identifier.
Remove employees from the system with a simple click.
- Backend: Crafted using Spring Boot, providing a robust and scalable foundation.
- Frontend: Utilizes Thymeleaf for server-side rendering, ensuring dynamic and responsive user interfaces.
- Storage: In-memory storage eliminates the need for an external database, making it a lightweight solution.
@Gadagoju Shiva This Employee Management System was skillfully developed, and its efficiency was enhanced through the use of ChatGPT, a powerful language model developed by OpenAI. This collaboration enabled rapid development, contributing to the creation of a seamless and resource-efficient in-memory application.
- Launch EC2 Instance with t2.large and Ubuntu using a Keypair
- Install Java and Jenkins on EC2 Instance
- Install SonarQube on EC2 Instance
- Configure Jenkins for SonarQube Integration
- Install Docker on EC2 Instance
- Install Argo CD on Kubernetes
- Final Steps
SSH To the EC2 instance:
ssh -i <keypair.pem> ubuntu@<ec2ip>
sudo apt update
sudo apt install openjdk-11-jre
java -version
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
The initial admin password for Jenkins is stored in:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
sudo su -
adduser sonarqube
sudo su - sonarqube
apt install unzip
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
unzip *
chmod -R 755 /home/sonarqube/sonarqube-9.4.0.54424
chown -R sonarqube:sonarqube /home/sonarqube/sonarqube-9.4.0.54424
cd sonarqube-9.4.0.54424/bin/linux-x86-64/
./sonar.sh start
Access SonarQube in the browser and generate a token
password = admin
username = admin
sudo apt update
sudo apt install docker.io
sudo su -
usermod -aG docker jenkins
usermod -aG docker ubuntu
systemctl restart docker
For Windows:
minikube start --memory=3000 --driver=hyperv
For macOS:
minikube start --memory=3000 --driver=hyperkit
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.26.0/install.sh | bash -s v0.26.0
kubectl create -f https://operatorhub.io/install/argocd-operator.yaml
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: basic
spec: {}
kubectl apply -f argocd-cluster.yaml
kubectl get svc
kubectl edit svc <argocd-service-name>
# Change type: ClusterIP to type: NodePort
kubectl get secrets
kubectl get secret <argocd-secret-name> -o=jsonpath='{.data.admin\.password}' | base64 -d
kubectl get pods
kubectl get svc
vim employee-management-service.yml
Add the following to the YAML file:
apiVersion: v1
kind: Service
metadata:
name: employee-management-system
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 8080
protocol: TCP
selector:
app: employee-management-system
To Get the Services
kubectl get svc
minikube service list
kubectl get pods
Access the application at the provided URL.
minikube delete