Zoo Arcadia β¨
Overview
Zoo Arcadia is a complex interactive platform that represents a true full-stack challenge. The site offers a dual experience: a public interface for visitors and an administrative section for zoo management. It's an ambitious project that allowed me to explore NoSQL and SQL databases in parallel.
Visitor Features
- π¦ Habitat exploration : Visualize different zoo habitats with descriptions
- π Animal gallery : Discover animals, their characteristics and habitat
- πͺ Zoo services : Hours, rates, offered services
- β Review system : Visitors can leave reviews and ratings
- π± Responsive design : Perfect on all devices
Admin Features
- π Secure login : Authentication for zoo employees
- π¦ Animal management : Add, modify, delete animal records
- π Enclosure management : Manage habitats and their capacities
- ποΈ Service management : Rates, hours, special services
- π Veterinary reports : Access to veterinary observations of animals
Backend Architecture
Backend Explanations
πΎ MySQL - Structured data
Stores relational data: users, animals, enclosures, services. Main tables:
animals : id, nom, espece, enclos_id
enclosures : id, nom, habitat_type, capacite
services : id, nom, prix, horaires
users : id, email, password_hash, role
π MongoDB - Flexible data
Stores semi-structured data: visitor reviews, veterinary reports. Main collections:
reviews : avis avec ratings, commentaires, dates
vet_reports : rapports dΓ©taillΓ©s avec observations flexibles
This NoSQL approach allows storing variable veterinary reports without fixed schema.
π MVC Architecture
Clear separation between:
- Models: Classes for Animal, Enclosure, Service, Review
- Controllers: AnimalController, AdminController, ReviewController
- Views: PHP templates for public and admin
π π Security:
- Password hashing with bcrypt
- Secure sessions with role verification
- Prepared statements to prevent SQL injection
- Strict server-side data validation
Frontend-Backend Integration
- AJAX : Dynamic content loading without reload
- π Internal API: Endpoints to create, modify, delete admin data
- π Smart filtering: Search animals by habitat or species
- β Rating system: Dynamic review display with average calculation
Technical Challenges Addressed
1. Multi-database management : Coordinating MySQL and MongoDB required careful planning. I learned to choose the right database for the right type of data.
2. Authentication and authorization : Verifying that admins can only access their specific sections strengthened my understanding of web security.
3. Performance : With potentially many animals and reviews, I had to implement pagination and database indexes.