Enterprise-Grade Full-Stack Application
A production-ready full-stack application demonstrating the seamless integration of cutting-edge frontend technologies with robust backend architecture, comprehensive DevOps practices, and enterprise-grade deployment strategies.
Demonstrate the seamless integration of modern React frontend with robust Spring Boot backend, showcasing best practices in full-stack development, testing, and deployment.
Complete CRUD operations, real-time dashboards, authentication & authorization, data visualization, responsive UI, and comprehensive API documentation with Swagger.
Docker containerization, Kubernetes orchestration with blue-green & canary deployments, Jenkins CI/CD pipeline, and Terraform infrastructure as code for AWS.
Modern three-tier architecture with React SPA, Spring Boot REST API, and MySQL database, supporting multiple deployment strategies and cloud-native practices.
Production-ready deployment with support for three advanced strategies: Rolling, Blue-Green, and Canary deployments.
Use Case: Regular updates, incremental rollouts
kubectl set image deployment/backend backend=new-image:v2.0
Use Case: Major releases, database migrations
./scripts/deploy-blue-green.sh green v2.0
Use Case: High-risk changes, A/B testing
./scripts/deploy-canary.sh v2.0 --weight=10
Real-time metrics with Chart.js visualizations showing employee growth, age distribution, department statistics, and performance indicators.
Complete CRUD operations for employee records with advanced search, filtering, pagination, and bulk operations support.
Hierarchical department structure with employee assignment, department metrics, and organizational charts.
JWT-based authentication, BCrypt password hashing, role-based access control, and secure API endpoints.
Mobile-first approach with Material UI and Tailwind CSS, ensuring seamless experience across all devices and screen sizes.
Interactive Swagger UI with comprehensive API documentation, request/response examples, and live testing capabilities.
Unit tests with Jest and JUnit, integration tests, E2E testing, and 90%+ code coverage for reliability.
Lazy loading, code splitting, database query optimization, caching strategies, and CDN integration.
RESTful API with comprehensive CRUD operations, following OpenAPI 3.0 specification
/api/employees
Get all employees with departments
/api/employees/{id}
Get employee by ID
/api/employees
Create new employee
/api/employees/{id}
Update employee by ID
/api/employees/{id}
Delete employee by ID
/api/departments
Get all departments
/api/departments/{id}
Get department by ID
/api/departments
Create new department
/api/departments/{id}
Update department by ID
/api/departments/{id}
Delete department by ID
/api/auth/register
Register new user
/api/auth/login
Authenticate user and get JWT token
/api/auth/verify-username
Verify username availability
/api/auth/reset-password
Reset user password
# Clone repository
git clone https://github.com/hoangsonww/Employee-Management-Fullstack-App.git
cd Employee-Management-Fullstack-App/backend
# Install dependencies
mvn clean install
# Configure application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/employee_management
spring.datasource.username=root
spring.datasource.password=your_password
# Run backend
mvn spring-boot:run
# Backend runs on http://localhost:8080
# Navigate to frontend
cd ../frontend
# Install dependencies
npm install
# Configure .env
REACT_APP_API_URL=http://localhost:8080/api
# Run frontend
npm start
# Frontend runs on http://localhost:3000
# Start all services
docker-compose up --build
# Services:
# - MySQL: localhost:3306
# - MongoDB: localhost:27017
# - Backend: localhost:8080
# - Frontend: localhost:3000
# Stop all services
docker-compose down
# Remove volumes
docker-compose down -v
# Build backend
cd backend
docker build -t employee-backend:latest .
# Build frontend
cd frontend
docker build -t employee-frontend:latest .
# Run backend
docker run -p 8080:8080 employee-backend:latest
# Run frontend
docker run -p 3000:3000 employee-frontend:latest
# Create secrets
kubectl create secret generic backend-secrets \
--from-literal=db-host=mysql-host \
--from-literal=db-password=your-password
# Apply manifests
kubectl apply -f kubernetes/
# Check deployments
kubectl get deployments
kubectl get pods
kubectl get services
# Access application
kubectl port-forward service/frontend-service 3000:80
# Deploy green version
./scripts/deploy-blue-green.sh green v2.0
# Switch traffic to green
./scripts/switch-blue-green.sh green
# Rollback if needed
./scripts/switch-blue-green.sh blue
Landing Page
Interactive Dashboard
Employee Management
Department Management
User Profile
Swagger API Documentation
Automated Jenkins pipeline with comprehensive testing, security scanning, and multi-strategy deployments
Workspace cleanup and Git checkout
Parallel Maven and npm installation
Linting and security scans
JUnit and Jest test suites
Compile and package applications
Create container images
Trivy vulnerability scanning
Strategy-specific deployment
Health checks and smoke tests
frontend/
βββ public/
β βββ index.html
βββ src/
β βββ components/ # React components
β β βββ Dashboard.js
β β βββ EmployeeList.js
β β βββ EmployeeForm.js
β β βββ DepartmentList.js
β β βββ DepartmentForm.js
β βββ services/ # API services
β β βββ employeeService.js
β β βββ departmentService.js
β βββ App.js # Main app component
β βββ index.js # Entry point
βββ __tests__/ # Jest tests
βββ package.json
βββ Dockerfile
backend/
βββ src/
β βββ main/
β β βββ java/com/example/employeemanagement/
β β β βββ controller/ # REST controllers
β β β βββ service/ # Business logic
β β β βββ repository/ # Data access
β β β βββ model/ # JPA entities
β β β βββ security/ # Security config
β β β βββ config/ # Application config
β β βββ resources/
β β βββ application.properties
β βββ test/ # JUnit tests
βββ pom.xml
βββ Dockerfile
infrastructure/
βββ kubernetes/ # K8s manifests
β βββ backend-deployment.yaml
β βββ frontend-deployment.yaml
β βββ hpa.yaml
β βββ pdb.yaml
β βββ network-policy.yaml
βββ terraform/ # IaC for AWS
β βββ main.tf
β βββ modules/
β β βββ eks/
β β βββ rds/
β β βββ ecr/
β βββ variables.tf
βββ scripts/ # Automation
β βββ deploy-blue-green.sh
β βββ deploy-canary.sh
β βββ build-images.sh
βββ Jenkinsfile # CI/CD pipeline
βββ docker-compose.yml
βββ Makefile
We welcome contributions! Please follow these guidelines to contribute to the project.
Create your own fork of the project on GitHub
Create a feature branch: git checkout -b feature/amazing-feature
Follow the coding standards and write tests for your changes
Commit with descriptive messages: git commit -m 'Add amazing feature'
Push to your fork and create a Pull Request with detailed description
Follows Airbnb JavaScript Style Guide
npm run format
Follows Google Java Style Guide
mvn formatter:format