// DEMO / KLUB SPORTOWY • KARNETY • SKANER QR

PrideMMA — system obsługi klubu sportów walki

Aplikacja webowa dla klubu sportów walki PrideMMA Gliwice. Klub prowadził ewidencję członków i karnetów w prostym systemie na gotowym szablonie — obecności, płatności i przedłużenia żyły w osobnych miejscach, skaner wejść był dostępny bez logowania, a aplikacja miała poważne luki bezpieczeństwa. System został przebudowany w spójną całość z trzema rodzajami użytkowników: członkowie mają panel z kodem QR i historią treningów, trenerzy rejestrują wejścia skanerem w telefonie, a administrator obsługuje karnety, płatności i raporty w jednym panelu. W demo jest 12 członków w różnych stanach karnetu, 57 płatności i 478 wejść.

// Konta testowe
// Jak to zostało zrobione
  • Przebudowa istniejącego systemu: analiza kodu i audyt bezpieczeństwa, nowy projekt bazy danych oraz skrypt migrujący działającą bazę produkcyjną bez utraty danych.
  • Backend w PHP 8 z bazą MySQL, panel administratora na AdminLTE 3 / Bootstrap 4 z tabelami DataTables, czysty JavaScript bez frameworka.
  • Mobilny skaner wejść jako Progressive Web App (manifest + service worker) — trener instaluje go na telefonie jak aplikację, kody QR czyta biblioteka html5-qrcode.
  • Zabezpieczenia: zapytania przygotowane (SQL injection), escapowanie wyjścia (XSS), tokeny CSRF w formularzach i API skanera, limit prób logowania, bezpieczne sesje, ponowne kodowanie przesyłanych zdjęć i ochrona eksportu CSV przed wstrzykiwaniem formuł.
  • Generator realistycznych danych testowych, testy oraz dokumentacja techniczna i instrukcja obsługi dla klubu.
01

Panel członka z kodem QR

Członek rejestruje się online i od razu dostaje osobisty kod QR do pokazania na wejściu (można go zapisać w telefonie). Na górze panelu widzi, do kiedy ważny jest karnet i ile dni zostało, a niżej statystyki i wykres treningów, historię wejść pogrupowaną po miesiącach oraz historię płatności.

02

Mobilny skaner wejść dla trenera

Po zeskanowaniu kodu skaner od razu pokazuje kolorem wynik: zielony — karnet aktywny, pomarańczowy — karnet wygasł (wejście i tak jest zapisane), niebieski — osoba była już skanowana w ciągu 30 minut, czerwony — kod nierozpoznany. Trener może też dopisać członka ręcznie po nazwisku albo dodać gościa na trening próbny.

03

Płatności z automatycznym przedłużaniem karnetu

Zaksięgowanie płatności w jednej transakcji zapisuje wpłatę i przelicza datę ważności karnetu — od końca obecnego okresu, więc członek nie traci opłaconych dni. Kwota uzupełnia się sama (cena × liczba miesięcy), a okres to 1, 3, 6, 12 miesięcy lub własna data.

04

Pulpit administratora

Na start administrator widzi liczbę członków, aktywne, wygasające i wygasłe karnety, wejścia dziś, przychód w miesiącu oraz nowych członków. Lista karnetów wygasających w ciągu 7 dni ma przycisk szybkiego przedłużenia.

05

Obecność i raporty

Lista obecności z wybranego dnia z możliwością dopisania zapomnianego wejścia, raport frekwencji członków w wybranym okresie oraz raport przychodów z podziałem na rodzaje karnetów i metody płatności. Listę członków można wyeksportować do Excela (CSV).

06

Role i konta personelu

Trzy role: administrator, trener i członek. Trener ma dostęp wyłącznie do skanera. Konto odchodzącego trenera wyłącza się zamiast usuwać, więc historia wejść zachowuje jego nazwisko, a system nie pozwala odebrać sobie uprawnień ani usunąć ostatniego administratora.

07

Odświeżona strona klubu

Publiczna strona klubu z sekcjami zajęć, grafikiem i cennikiem, aktualnościami dodawanymi z panelu, postami z Facebooka oraz kontaktem z mapą. Rodzaje karnetów, godziny otwarcia i dane klubu zmienia się w ustawieniach bez programisty.

// NASTĘPNY KROK

Potrzebujesz podobnego systemu?

Dopasujemy aplikację do Twojej firmy — napisz, czego potrzebujesz, a przygotujemy wycenę.

NAPISZ DO NAS  →