---
title: "Revive Pilates Studio"
kind: student-project
location: "Holy Angel University"
tags: [students, student-work, apsi]
summary: "Class booking for a two-branch Pilates studio: pick your spot, book in seconds."
---

*A final project from Full-stack JavaScript, 2026 first semester. Part of [Fifteen full-stack apps from a semester I almost did not survive](/calendar/2026-s1-apsi-students).*

<figure data-lightbox-group style="max-width: 22rem; margin: 0 0 var(--space-6, 2rem)"><a class="gallery__link" data-lightbox href="/media/projects/2026-1st-sem/revive-pilates-studio/square.webp"><img src="/media/projects/2026-1st-sem/revive-pilates-studio/square.webp" width="1080" height="1080" alt="Revive Pilates Studio, the project's square image" loading="eager" decoding="async" style="aspect-ratio:auto;height:auto;object-fit:contain"></a></figure>

## What it is

Clients browse classes, choose a reformer, buy packages and manage their bookings. The studio runs the schedule, coaches and payments from an admin dashboard.

Built with React, Express and PostgreSQL.

## Why it is here

It looks like a real business site, photography and all, and it has the admin side that real businesses actually need. Most booking apps stop at the booking.

## Find it

- Project: [github.com/ciellamher/revive-pilates-studio](https://github.com/ciellamher/revive-pilates-studio)
- Live: [revive-pilates-studio-6b8h.vercel.app](https://revive-pilates-studio-6b8h.vercel.app/)
- GitHub: [@ciellamher](https://github.com/ciellamher)
- LinkedIn: [profile](https://www.linkedin.com/in/graciellajimenez/)

## Screenshots

<div class="gallery" data-lightbox-group style="--gallery-min: 14rem; align-items: start">
<figure class="gallery__item" style="grid-column: 1 / -1"><a class="gallery__link" data-lightbox href="/media/projects/2026-1st-sem/revive-pilates-studio/shot-1.webp"><img src="/media/projects/2026-1st-sem/revive-pilates-studio/shot-1.webp" width="1440" height="900" alt="Revive Pilates Studio, screenshot 1 of 3" loading="lazy" decoding="async" style="aspect-ratio:auto;height:auto;object-fit:contain"></a></figure>
<figure class="gallery__item"><a class="gallery__link" data-lightbox href="/media/projects/2026-1st-sem/revive-pilates-studio/shot-2.webp"><img src="/media/projects/2026-1st-sem/revive-pilates-studio/shot-2.webp" width="1440" height="1634" alt="Revive Pilates Studio, screenshot 2 of 3" loading="lazy" decoding="async" style="aspect-ratio:auto;height:auto;object-fit:contain"></a></figure>
<figure class="gallery__item"><a class="gallery__link" data-lightbox href="/media/projects/2026-1st-sem/revive-pilates-studio/shot-3.webp"><img src="/media/projects/2026-1st-sem/revive-pilates-studio/shot-3.webp" width="1440" height="900" alt="Revive Pilates Studio, screenshot 3 of 3" loading="lazy" decoding="async" style="aspect-ratio:auto;height:auto;object-fit:contain"></a></figure>
</div>
