Skip to content

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦁 ZOO Management System

A full-stack zoo operations management platform for animals, enclosures, workers, tasks, tours, incidents, expenses, and reports.

ZOO Management System is an internal admin dashboard built with a modern full-stack architecture. It combines a Next.js frontend, an ASP.NET Core Web API, EF Core data access, and a seeded SQL Server database into one operational workspace for zoo administration.

.NET 10 ASP.NET Core Next.js React TypeScript SQL Server Material UI License: MIT

🟢 Tech Next.js • React • TypeScript • Material UI • ASP.NET Core • EF Core • SQL Server
📍 Local App http://localhost:3000
📘 API Docs http://localhost:5000/scalar/v1
🔐 Current Status Login and role-based access control are not implemented yet.

📸 Preview

ZOO Management System Dashboard

Operational dashboard with zoo statistics, daily tasks, recent incidents, monthly costs, top-cost animals, and license alerts.

🚀 Highlights

  • Full-stack admin system for real zoo operations and data workflows
  • 16 ASP.NET Core controllers with 144 HTTP endpoint attributes
  • Worker availability checks for task scheduling and tour conflicts
  • Recurring task generation for repeated operational duties
  • Automatic worker status reset after absences expire
  • Seeded SQL Server database with realistic zoo data
  • Dashboard analytics and PDF report generation
  • Clean Material UI admin interface with typed frontend service modules

🧩 Problem

Zoo operations involve many connected records: animals, habitats, workers, qualifications, daily duties, guided tours, incidents, remediation work, and costs. When these records are spread across separate tools, it becomes difficult to track operational status and make reliable scheduling decisions.

💡 Solution

ZOO Management System centralizes those workflows into one admin platform. The frontend gives staff focused views for each operational area, the backend exposes structured REST endpoints, and the SQL Server database stores the complete zoo domain model with relationships, constraints, indexes, and seed data.

⚙️ Features

  • Animal registry for individual and group animals
  • Species and acquisition type management
  • Active/inactive animal tracking with soft-deactivation details
  • Primary and additional enclosure assignment
  • Enclosure management with locations, statuses, characteristics, and amenities
  • Worker profiles, education, licenses, absences, schedules, and history
  • Task creation, assignment, reassignment, statuses, priorities, and recurring tasks
  • Worker availability and scheduling conflict checks
  • Group tour reservations with guide assignment and visitor counts
  • Incident reporting with affected animals, affected enclosures, remediation work, labor hours, and repair costs
  • Dashboard reports for costs, tasks, incidents, licenses, and top-cost animals
  • PDF export for dashboard reports

🏗 Architecture

The system follows a layered full-stack architecture:

  • Next.js admin UI calls typed frontend service modules
  • A shared API client handles requests, retries, timeouts, and errors
  • ASP.NET Core controllers expose REST endpoints under /api
  • Domain services handle scheduling conflicts, recurring tasks, and worker status updates
  • EF Core maps the domain model through ZooDbContext
  • SQL Server stores the ZOO database created from Database_script/Baza.sql
  • Scalar provides OpenAPI documentation during development
flowchart LR
  A["Next.js Admin UI"] --> B["Frontend services"]
  B --> C["API client"]
  C --> D["ASP.NET Core controllers"]
  D --> E["Domain services"]
  D --> F["EF Core ZooDbContext"]
  E --> F
  F --> G["SQL Server ZOO database"]
  D --> H["Scalar OpenAPI docs"]
Loading

🛠 Tech Stack

Area Stack
Frontend Next.js 15, React 19, TypeScript, Material UI, Emotion
Backend ASP.NET Core Web API, .NET 10, Entity Framework Core 10
Database SQL Server, T-SQL schema and seed script
Documentation Scalar OpenAPI, Markdown
Reporting jsPDF, jspdf-autotable

🚀 Getting Started

1. Clone Repository

git clone https://github.com/matej04-dot/ZOO_app.git
cd ZOO_app

2. Create And Seed Database

Run Database_script/Baza.sql in SQL Server Management Studio, or use:

sqlcmd -S localhost\SQLEXPRESS -E -i Database_script/Baza.sql

The script creates the ZOO database with schema, relationships, indexes, constraints, and seed data.

3. Run Backend

cd Backend
dotnet restore
dotnet run

Backend:

http://localhost:5000
https://localhost:5001

Scalar API documentation:

http://localhost:5000/scalar/v1

4. Run Frontend

cd frontend
npm install
npm run dev

Open:

http://localhost:3000

🔐 Environment Variables

Create frontend/.env.local if you need to override the default API URL:

NEXT_PUBLIC_API_URL=https://localhost:5001/api

Backend connection string is configured in Backend/appsettings.json and Backend/appsettings.Development.json:

"DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=ZOO;Integrated Security=true;TrustServerCertificate=True;MultipleActiveResultSets=true"

🗄 Database Setup

Database schema and seed data are provided in:

Database_script/Baza.sql

The script includes:

  • 25 seeded tables/entities
  • 28 animal records
  • 17 enclosures
  • 22 workers
  • 65 planned duties
  • 20 guided tours
  • 19 incidents
  • Foreign keys, default values, and nonclustered indexes

✅ Quality Checks

Backend:

cd Backend
dotnet restore
dotnet build

Frontend:

cd frontend
npm install
npm run type-check
npm run build

🔮 Future Improvements

  • Add login and session management
  • Add role-aware access control for administrators, managers, workers, guides, and reporting-only users
  • Add automated backend and frontend tests
  • Add CI checks for backend build, frontend type-checking, and frontend build
  • Add production deployment documentation
  • Generate and publish API documentation directly from OpenAPI output
  • Add CSV/PDF import and export workflows for operational reports
  • Expand dashboard analytics and filtering

👤 Authors

  • Matej Kraljević
  • Petar Krvavac
  • Andro Buhač
  • Filip Komlen
  • Mateo Azinović

Computer Science Students @ FSRE Mostar

📄 License

This project is licensed under the MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages