Species catalogue
Each species has a common name, scientific name, description, and an optional image. The catalogue is managed via the admin dashboard and exposed through a public REST API.
Animal records
Individual animals are linked to a species, a habitat, and a conservation status. Records are ordered alphabetically by name.
Habitats
Habitats group animals by physical environment and park section. Each habitat tracks an animal count and belongs to a named section of the park.
Exhibitions
Exhibition entries are database-driven. Each exhibit has images, descriptive facts, and action buttons managed through the admin panel.
Data models
Species
Animals
Conservation status
The platform follows IUCN Red List codes:Habitats
Exhibitions
Exhibits page
TheExhibicion React component (frontend/src/components/home/exhibiciones-y-servicios/Exhibicion.jsx) fetches exhibit records from GET /api/exhibits/ on mount and renders them through the MarineExhibit sub-component. A WorldSpeciesMap and a VisitInfoSection are also rendered on the same page.
“El Parque Marino Central del Pacifico Sur cuenta con diversas exhibiciones que le permitirán conocer las riquezas de la biodiversidad marina de Costa Rica. Desde la fauna marina, pasando por tortugas marinas, tiburones y rayarios, nuestras exhibiciones te ofrecen una experiencia educativa y entretenida.”
Educational services page
TheServicios_Educativos component (frontend/src/components/home/exhibiciones-y-servicios/Servicios_Educativos.jsx) combines two data sources:
- Educational programmes — loaded from
getServiciosEducativos()and rendered viaMarineExhibit. - Live ticket prices — loaded from
getTickets()and displayed in a pricing card.
| Day | Hours |
|---|---|
| Tuesday – Sunday | 9:00 am – 4:30 pm |
| Monday | Closed |
/purchase-form/ticketera).
Species API
TheSpecies_ViewSet exposes full CRUD via the standard DRF ModelViewSet. The serialiser includes all fields:
GET, POST, PUT, DELETE.
Role-based permission (
IsAuthenticatedAndRole) is defined in the viewset but is currently commented out, making the species API publicly readable. Write operations should be restricted to admin accounts before deploying to production.Admin CRUD
Admins manage species, animals, habitats, sections, and exhibits through the admin dashboard. Each entity supports create, edit, and delete operations with Yup validation schemas applied before submission.| Entity | Admin tab key | Editable fields |
|---|---|---|
| Species | species | name, scientific_name, description, image |
| Animals | animals | name, age, species, conservation_status, habitat |
| Habitats | habitats | name, nums_animals, description, section |
| Sections | sections | name |
| Conservation status | conservation-status | name (IUCN code) |
| Exhibits | exhibits | value, label, title, images, facts, descriptions, buttons |
