The DinoBase

Tylon Sohnle

A four-person PHP/MySQL project: a searchable catalogue of dinosaur records, with a public gallery and a protected administration area.

The schema is normalized around what the catalogue actually contains — dinosaurs, administrators, favourites and profile images — so each record is stored once and read wherever it is needed. Search and filtering run across genus, species, era, size, weight and location, and the gallery paginates the results. Every query that takes user input goes through prepared statements, and the admin forms validate their fields before a record is written.

The public gallery and the administration area read the same data through different paths: one is open, the other sits behind a session and hashed passwords. Docker packages MySQL, PHP and Apache, so the whole application starts locally with a single command.