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.
| 🟢 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. |
Operational dashboard with zoo statistics, daily tasks, recent incidents, monthly costs, top-cost animals, and license alerts.
- 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
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.
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.
- 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
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
ZOOdatabase created fromDatabase_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"]
| 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 |
git clone https://github.com/matej04-dot/ZOO_app.git
cd ZOO_appRun Database_script/Baza.sql in SQL Server Management Studio, or use:
sqlcmd -S localhost\SQLEXPRESS -E -i Database_script/Baza.sqlThe script creates the ZOO database with schema, relationships, indexes, constraints, and seed data.
cd Backend
dotnet restore
dotnet runBackend:
http://localhost:5000
https://localhost:5001
Scalar API documentation:
http://localhost:5000/scalar/v1
cd frontend
npm install
npm run devOpen:
http://localhost:3000
Create frontend/.env.local if you need to override the default API URL:
NEXT_PUBLIC_API_URL=https://localhost:5001/apiBackend 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 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
Backend:
cd Backend
dotnet restore
dotnet buildFrontend:
cd frontend
npm install
npm run type-check
npm run build- 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
- Matej Kraljević
- Petar Krvavac
- Andro Buhač
- Filip Komlen
- Mateo Azinović
Computer Science Students @ FSRE Mostar
- Repository: matej04-dot/ZOO_app
- API Reference: Backend/API_ENDPOINTS.md
This project is licensed under the MIT License. See LICENSE for details.
