coursework — web programming

Artsy

A platform for booking art workshops, built from an empty database up. No framework, no ORM, no shortcuts, which is exactly why it taught me the most.

roleDesign & development
stackPHP, PostgreSQL
typeAcademic project

the brief

Build a working full-stack product without a framework catching you.

The assignment was a CRUD app. I turned it into a real product: Artsy lets people find and book hands-on art workshops, and lets instructors publish and manage them.

Doing it in plain PHP against PostgreSQL meant writing the parts a framework usually hides: session handling, password hashing, prepared statements, the relational schema, the validation layer. I stopped treating the database as a black box after this project.

what I built

Auth, CRUD, and a schema that holds up.

Authentication

Sessions and hashed passwords, with role separation between instructor and student.

Workshop CRUD

Instructors create, edit and retire workshops; bookings stay consistent with the seats available.

Relational schema

Normalised tables for users, workshops and bookings, with foreign keys doing the integrity work.

Server-rendered UI

A designed interface. Coursework rarely looks considered, and I wanted this one to.

tech

PHPPostgreSQLHTML + CSSPrepared statementsSession auth