Skip to content

Repository files navigation

Kinto

Kinto to platforma do obsługi obiektów sportowych (jak siłownie, kluby fitness, baseny) czy też szkółek lub wypożyczalni sprzętu. Aplikacja zapewnia zarówno panel administracyjny dla właścicieli i pracowników, jak i stronę członkowską dla klientów, obejmując kluczowe aspekty zarządzania oraz interakcji z klubem. Projekt stworzony w konwencji mobile-first, z możliwościa rozwoju do PWA lub pełnoprawnej aplikacji mobilnej w przyszłości.

Kinto mobile 3 Kinto desktop 1 Kinto desktop 2
Kinto mobile 1 Kinto mobile 2

Funkcjonalności

Zajęcia

Członkowie klubu mogą przeglądać dostępne zajęcia, zapisywać się na sesje i śledzić swój harmonogram w kalendarzu. Przy zapisach członek wybiera formę płatności - może skorzystać z aktywnego karnetu lub opłacić pojedyncze wejście ze swojego portfela. Dla każdego uczestnika rejestrowana jest obecność, co pozwala monitorować frekwencję i kontrolować wykorzystanie karnetów. Administratorzy mogą definiować limity uczestników, harmonogramy zajęć, powiązania z grupami oraz zasady anulowania zapisów.

Grupy

Grupy pozwalają zrzeszać członków wokół konkretnych dyscyplin, poziomów zaawansowania lub drużyn. Każda grupa posiada własną tablicę ogłoszeń, gdzie administratorzy i trenerzy mogą publikować posty widoczne dla wszystkich jej członków. Do grup można dołączać poprzez otwarte zapisy - z opcjonalnym formularzem aplikacyjnym i ręcznym zatwierdzaniem kandydatów przez administratora. Grupy mogą być również powiązane z konkretnymi zajęciami, dzięki czemu członkowie grupy są automatycznie zapisywani na sesje (np. drużyna pływacka na trening).

Rezerwacje

Członkowie mogą rezerwować dostęp do obiektów, takich jak korty tenisowe, sale treningowe, baseny lub sprzęt. Administratorzy mają możliwość definiowania limitów uczestników, godzin otwarcia obiektu oraz zasad anulowania rezerwacji.

Płatności

Platforma integruje się z zewnętrznym systemem płatności, zapewniając każdemu członkowi indywidualny portfel. Środki można doładowywać online, a następnie wykorzystywać do opłacania zajęć, karnetów i rezerwacji. W panelu płatności członek widzi pełną historię transakcji, saldo konta oraz wystawione faktury. System obsługuje również karnety - czasowe, ilościowe i bezterminowe - które można kupować, zamrażać na czas nieobecności i odnawiać. Administrator może z poziomu panelu przyznawać karnety ręcznie oraz monitorować ich wykorzystanie.

Karta członkowska

Każdy członek klubu posiada kartę członkowską funkcjonującą poprzez kod QR. Karta może być okazana przy wejściu na obiekt lub podczas uczestnictwa w zajęciach.

Konta opiekunów

Platforma pozwala połączyć pojedynczego członka z wieloma kontami użytkowników, umożliwiając opiekunom zarządzanie subkontami dzieci lub podopiecznych. Opiekunowie mogą przeglądać harmonogramy zajęć, dokonywać zapisów i opłacać usługi w imieniu swoich podopiecznych.

Zarządzanie

Administratorzy i pracownicy klubu mają dostęp do panelu administracyjnego, który umożliwia zarządzanie każdym z wymienionych powyżej obszarów.

Kontrola dostępu

Kontrola dostępu w panelu administracyjnym - RBAC i ograniczenie dostępu do obiektów nie powiązanych z danym pracownikiem.

Domyślnie zdefiniowane są dwie role:

  • Administrator - pełny dostęp do wszystkich funkcjonalności i obiektów
  • Pracownik - dostęp do obiektów przypisanych w panelu administracyjnym, z ograniczonymi uprawnieniami (brak możliwości zarządzania płatnościami lub członkami, zarządzanie swoimi zajęciami, grupami i innymi obiektami)

Powiadomienia

Członkowie klubu otrzymują powiadomienia o zapisach na zajęcia, zmianach w harmonogramie, nowych postach w grupach i innych istotnych wydarzeniach.

Powiadomienia są wysyłane poprzez:

  • email (domyślnie SendGrid)
  • SMS (domyślnie SMSAPI)
  • web push (VAPID)

Powiadomienia korzystają z templatów nunjucks (+ mjml dla email). Pliki szablonów znajdują się w resource/template.


Integracje

Powiadomienia

  • SendGrid
  • SMSAPI
  • Web Push

Płatności

  • tpay
  • P24
  • payu

Stack

next.js 15
tailwind
react-admin v5 + mui v7 (panel administracyjny)
postgresql + prisma (orm)
better-auth (magic link + hasło, weryfikacja email)
react-query
zustand
zod
react-hook-form
fullcalendar
lexical
motion
sendgrid (powiadomienia email)
smsapi (powiadomienia SMS)
nunjucks + mjml (szablony powiadomień)
jose
s3 (przechowywanie plików)
date-fns
cron
docker (container)
react-i18next (i18n, partial, admin panel)

About

Platforma do zarządzania i obsługi obiektów sportowych lub podobnych.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages