Skip to content

AndreiHirlav/Zoo-Management

Repository files navigation

Zoo Management Application

Overview

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.


Architecture

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.

Features by User Type

Visitor (No Authentication Required)

  • 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.

Employee (Authentication Required)

  • 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.

Manager (Authentication Required)

  • All Employee operations.
  • Generate and view statistical reports using charts (radial, ring, column) and export to Word.

Administrator (Authentication Required)

  • 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.


Tools and Technologies

  • IntelliJ IDEA – coding environment.
  • MySQL Workbench – database management.
  • Spring Boot & Spring Initializr – microservice development.
  • REST APIs – service communication.
  • Notification Services: Email (SMTP), SMS (Vonage).

Microservice Modules

1. User Management (user-service)

  • List, search, create, edit, delete users.
  • Sends notifications on CRUD actions.
  • Handles authentication and role-based authorization.

2. Animals and Specimens (animal-service & exemplar-service)

  • Full CRUD operations on animals and specimens.
  • Filter, paginate, and maintain audit logs.

3. Notifications (notification-service)

  • Centralized messaging system via Email or SMS.
  • Automatically triggered by user or specimen CRUD actions.

4. Reports (report-service)

  • Export data in CSV, PDF, DOC, XML.
  • Dashboard for visual statistics like specimen count per species.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published