This project is a microservices-based Employee Management system built using Spring Boot. The system provides a robust and scalable solution for managing employee information, including CRUD operations, authentication, and authorization.
- Employee CRUD operations (Create, Read, Update, Delete)
- Authentication and Authorization
- Service Discovery and Load Balancing
- API Gateway
- Centralized Configuration Management
- Distributed Tracing and Monitoring
- Kotlin: The primary programming language
- Spring Boot: Framework for building microservices
- Spring Cloud: Tools for microservice architecture
- Spring Data JPA: For database access
- Spring Security: For authentication and authorization
- Eureka: Service discovery
- Zuul: API Gateway
- Hystrix: Circuit Breaker
- Zipkin: Distributed tracing
- Docker: Containerization
The application is structured into several microservices, each responsible for a specific domain of the Employee Management system. The main components are:
- Employee Service: Manages employee data.
- Auth Service: Handles authentication and authorization.
- Config Service: Centralized configuration management.
- Eureka Server: Service registry for service discovery.
- API Gateway: Routing and load balancing.
- Kotlin 1.9 or higher
- Java 17 or higher (required by Spring Boot 3.x)
- Maven
- Docker
- Clone the repository:
git clone https://github.com/emmanuelwangila/employee-mgnt.git cd employee-mgnt