This project implements a microservice-based software application designed for a zoo management system.
The application is divided into multiple independent services, each handling a specific domain, allowing scalability, maintainability, and ease of deployment.
The client application supports four types of users: Visitor, Employee, Manager, and Administrator.
The application follows a microservices architecture, with separate services for user management, animals/specimens management, notifications, and reports. Each service exposes REST APIs and communicates with others as needed.
Key features of the microservice design:
- Independent Services: Each module (user-service, animal-service, exemplar-service, notification-service, report-service) runs separately.
- API Communication: Services interact via REST APIs for CRUD operations and notifications.
- Scalability: Individual services can scale independently based on demand.
- Audit & Logging: Each service maintains its own audit logs for tracking user actions.
- View all animals in the zoo (sorted by species and diet) with 1–3 images per animal.
- Filter animals by category (bird, reptile, insect, fish, etc.), species, diet, and habitat.
- Search for animals by category or species.
- All Visitor operations.
- CRUD operations for animals and specimens:
- Animal: category, species, diet, habitat, average weight, average age.
- Specimen: ID, images, location in the zoo, age, weight.
- Export animal lists in multiple formats: CSV, JSON, XML, DOC.
- All Employee operations.
- Generate and view statistical reports using charts (radial, ring, column) and export to Word.
- All Visitor operations.
- CRUD operations for authenticated users.
- View/filter user lists by role, export CSV.
- Notify users about authentication changes through Email and SMS.
Multilingual Interface: The client is available in English, French and German.
- IntelliJ IDEA – coding environment.
- MySQL Workbench – database management.
- Spring Boot & Spring Initializr – microservice development.
- REST APIs – service communication.
- Notification Services: Email (SMTP), SMS (Vonage).
- List, search, create, edit, delete users.
- Sends notifications on CRUD actions.
- Handles authentication and role-based authorization.
- Full CRUD operations on animals and specimens.
- Filter, paginate, and maintain audit logs.
- Centralized messaging system via Email or SMS.
- Automatically triggered by user or specimen CRUD actions.
- Export data in CSV, PDF, DOC, XML.
- Dashboard for visual statistics like specimen count per species.