Przejdź do treści
$northpage
░░░░░░░░░░░░░░░░░░░░░░░░░░░░
000%

kliknij lub naciśnij klawisz, aby pominąć

Wszystkie realizacje

case study · Strona dla siłowni z zapisami na zajęcia

IRONVOLT

Siłownia z grafikiem zajęć, zapisami online, listą rezerwową i panelem dla recepcji oraz właściciela.

Rok
2026
Typ
Strona + system zapisów
Zakres
Strona, konto klienta i panel
Rola
Projekt i kod, od początku do końca
W skrócie

Statyczna wizytówka siłowni rozbudowana do aplikacji z bazą danych. Klient zapisuje się na zajęcia i śledzi swoje rezerwacje, recepcja odhacza obecności i zapisuje ludzi ręcznie, a właściciel zarządza grafikiem, kontami i regułami rezerwacji.

Problem

Zajęcia grupowe mają twardy limit miejsc, a zapisy przez wiadomości na Instagramie kończą się dublami i ludźmi, którzy przychodzą na pełną salę. Do tego nikt nie wie, ilu zapisanych realnie dotarło na trening.

Rozwiązanie

Brak overbookingu gwarantuje schemat bazy, a nie kod aplikacji: każda potwierdzona rezerwacja zajmuje numer miejsca od 1 do limitu, chroniony unikalnym indeksem, więc nadmiarowy zapis jest fizycznie niemożliwy. Zapisy ponad limit trafiają na listę rezerwową, a po odwołaniu rezerwacji pierwsza osoba z kolejki wskakuje na zwolnione miejsce.

Zbudowane na
  • +Next.js
  • +PostgreSQL
  • +Drizzle
  • +Zod
  • +Playwright

// Projekt portfolio działający w całości lokalnie, bez usług zewnętrznych i płatności. Dane klubu, trenerów i klientów są fikcyjne. Zrzuty pochodzą z działającej aplikacji.

Co potrafi
01

Ochrona przed overbookingiem

Gdy dwie osoby klikną „Zapisz się” na ostatnie miejsce, dostaje je dokładnie jedna. Test 30 równoległych zapisów na 10 miejsc zawsze kończy się wynikiem 10 potwierdzonych i 20 na liście.

02

Lista rezerwowa

Klient widzi swoją pozycję w kolejce, a po odwołaniu czyjejś rezerwacji pierwsza osoba z listy dostaje miejsce automatycznie.

03

Trzy role

Klient, administrator i właściciel. Roli właściciela nie da się nadać z poziomu aplikacji, powstaje wyłącznie przy zakładaniu bazy.

04

Reguły rezerwacji

Właściciel ustawia okno zapisów i anulowania, limit aktywnych rezerwacji na osobę oraz włącza lub wyłącza listę rezerwową.

05

Bezpieczeństwo

Hasła hashowane scrypt z losową solą, sesja jako token w ciasteczku HttpOnly, nagłówki CSP i HSTS, ochrona CSRF i limit prób logowania.

06

84 testy

Rezerwacje, współbieżność, autoryzacja i walidacja sprawdzane na osobnej bazie, tworzonej od zera przed każdym przebiegiem.

Zrzuty ekranu
Overview całej strony
IRONVOLT
IRONVOLT: cała strona główna na komputerze
IRONVOLT: cała strona główna na telefonie
Strona główna od nagłówka do stopki, na komputerze i na telefonie
Publiczny grafik z wolnymi miejscami
Publiczny grafik z wolnymi miejscami
01Publiczny grafik z wolnymi miejscami
Grafik na telefonie
02Grafik na telefonie
Konto klienta
Konto klienta
03Konto klienta

Chcesz podobną stronę?

Napisz, co masz w głowie, a powiem Ci, jak bym to ugryzł.