Dokumentimi

Çdo ekran, i shpjeguar.

Si vendoset një klub dhe si e përdor recepsioni përditë. Çdo pamje këtu është aplikacioni në punë, dhe të njëjtat ekrane mund t'i hapni vetë në demon live.

Kyçuni me skenda@gymflow.local / Gymflow2026! për anën e stafit, ose me olsa@example.com / Member2026! për aplikacionin e anëtarit.

1. Dita e parë

GYMFLOW është një aplikacion i vetëm me dy fytyra: hapësira e stafit për pronarët, recepsionin, trajnerët dhe kontabilistët, dhe aplikacioni i anëtarit për anëtarët. Të dyja shërbehen nga e njëjta adresë. Faqja publike është ajo që sheh një vizitor para se të kyçet.

Overview with today's revenue, check-ins, renewals due and recent activity
Përmbledhja është ekrani i parë pas kyçjes: paratë e marra sot, kush është në klub, rinovimet që po vijnë dhe çdo gjë që kërkon vëmendje.
  1. Kyçuni si pronar me kredencialet e krijuara gjatë instalimit. Kyçja e stafit është në fund të faqes publike; anëtarët përdorin butonin lart.
  2. Cilësimet → Klubi: emri, email-i i kontaktit, kapaciteti, zona kohore dhe gjuha parazgjedhur. Ngarkoni logon dhe zgjidhni ngjyrat te Pamja.
  3. Cilësimet → Anëtarësitë: krijoni planet tuaja. Çmimi, kohëzgjatja në ditë, tarifa e regjistrimit, përfitimet në të dyja gjuhët, dhe rregullat e qasjes që bart secili plan: mënyrat e hyrjes, zonat, ditët, orari, kufiri i vizitave, ditët e lejuara të ngrirjes.
  4. Cilësimet → Tatimi: norma e TVSH-së, nëse çmimet e përfshijnë, dhe numri juaj i regjistrimit. Çdo kupon dhe faturë e përdor këtë që nga ai moment.
  5. Cilësimet → Ekipi dhe Rolet: shtoni llogaritë e stafit. Rolet janë lista aftësish; Pronari i ka gjithmonë të gjitha.
  6. Cilësimet → Të dhënat: importoni anëtarët ekzistues nga shablloni Excel.
  7. Cilësimet → Email: lidhni kutinë postare të klubit që mesazhet të dalin edhe me email.
Anëtarët futen gjithmonë si emër dhe mbiemër, kurrë si një fushë e vetme. Emri i plotë krijohet vetë për kërkim dhe shfaqje.

2. Anëtarët & anëtarësitë

Ekrani i Anëtarëve është aty ku recepsioni e kalon pjesën më të madhe të ditës. Çdo anëtar bart statusin, planin, bilancin dhe foton, dhe filtrat lart u përgjigjen pyetjeve që stafi bën vërtet: kush është aktiv, kujt i ka skaduar, kush ka borxh, kush e ka të ngrirë.

Members list showing status, plan, valid-through date and balance
Lista: kërkoni me emër, email, telefon ose numër kartele, filtroni sipas statusit ose planit, dhe eksportoni rezultatin. Numri pranë çdo filtri ndryshon ndërsa shkruani.

Profili i anëtarit

Hapja e një anëtari ju jep gjithçka për të në një panel të vetëm, dhe çdo veprim që mund t'ju duhet pa dalë prej tij.

Member profile with membership card, credit and actions
Anëtarësia, data e vlefshmërisë, kredia e llogarisë dhe faturat e papaguara lart. Rinovoni ose ndryshoni planin, mbushni llogarinë, rregulloni bilancin, ndryshoni të dhënat, ngrini anëtarësinë, caktoni një kartelë RFID, aktivizoni aplikacionin e anëtarit, ose anuloni.

Regjistrimi

Anëtarët → Shto anëtar hap një udhëzues me katër hapa: të dhënat, fotoja, anëtarësia dhe kartela, pagesa.

  1. Të dhënat. Emri, mbiemri, kontakti, datëlindja, kontakti i urgjencës, numri personal dhe si mësuan për klubin.
  2. Fotoja. Me kamerë ose e ngarkuar. Fotot ruhen në bazën e të dhënave të vetë klubit dhe u shërbehen vetëm anëtarëve të stafit të kyçur, kurrë publikisht.
  3. Anëtarësia dhe kartela. Zgjidhni planin dhe datën e fillimit. Vendosni një kartelë RFID te një lexues USB dhe ajo e shkruan vetë numrin në fushë.
  4. Pagesa. Para në arkën e hapur, kartelë, bankë, llogaria e anëtarit, ose lëreni si faturë të papaguar. Kuponi është gati menjëherë.

Rinovimet, ngrirjet dhe historiku

Një rinovim i bërë para se të mbarojë termi aktual radhitet pas tij në vend që ta mbishkruajë, kështu nuk humbet asgjë e paguar. Skeda Historiku i anëtarësisë tregon çdo term me faturën e vet. Ngrirja e ndalon qasjen dhe e shtyn datën e mbarimit për aq ditë sa u ngri, brenda kufirit të planit.

Llogaritë e anëtarëve

Çdo anëtar ka një libër të vetëm llogarie. Mbushjet janë pagesa të vërteta përmes arkës, shitjet dhe rinovimet mund t'i ngarkohen llogarisë, dhe rimbursimet mund të kthehen si kredi. Cilësimet → Pagesat cakton borxhin maksimal të lejuar dhe shumën mbi të cilën bllokohet hyrja.

Të interesuarit

Kërkesat nga formulari publik i regjistrimit dhe nga kiosku vijnë te Anëtarët → Të interesuarit. Një klikim mbi Regjistro e mbush udhëzuesin paraprakisht dhe e shënon kërkesën si të konvertuar.

3. Pika e shitjes & arka

Point of sale with product categories, a cart and payment methods
Produktet sipas kategorisë, një shportë që mund t'i caktohet një anëtari, tatimi i shfaqur për çdo rresht dhe si ndarje neto me TVSH, e paguar me para, kartelë, bankë ose llogari anëtari.
Inventory with stock levels, cost, reorder levels and the movement log
Inventari mban gjendjen, koston dhe nivelet e rimbushjes. Pranimi i mallit, rregullimet me arsye, inventarizimet që regjistrojnë vetëm dallimet, dhe një regjistër lëvizjesh që shpjegon çdo ndryshim.
Till and cash screen with the open shift and reconciliation
Arka punon me ndërrime të numëruara. Hapeni me fondin fillestar të bartur nga raporti i fundit Z, regjistroni lëvizjet e parave me arsye, printoni një raport X kur të doni, dhe mbylleni me numërimin e kartëmonedhave.

Në mbyllje zgjidhni nëse paratë e numëruara mbeten si fond për ndërrimin tjetër apo sa prej tyre kalojnë në kasafortë. Raporti Z e ngrin barazimin: shitjet sipas mënyrës dhe qëllimit, lëvizjet, shpenzimet dhe çdo transaksion i ndërrimit, të ruajtura që të lexohen muaj më vonë saktësisht ashtu si ishin.

4. Kalendari & rezervimet

Klasa, stërvitje personale dhe evente, secila me trajner, kapacitet dhe vendndodhje, të përsëritura javore nëse doni. Kalendari është ajo që shohin anëtarët kur hapin orarin në aplikacionin e tyre, prandaj çka vendosni këtu është çka mund të rezervojnë.

Class calendar with sessions across the week and booking counts
Seancat gjatë javës me sa e mbushur është secila. Një seancë që mbushet merr listë pritjeje dhe e promovon vetë të parin në radhë kur dikush anulon.

Stafi shënon pjesëmarrjen dhe mosparaqitjet nga vetë seanca, e cila ushqen numërimin e vizitave dhe automatizimet e arritjeve. Rezervimet e ndjekura dhe ato pa paraqitje llogariten prapë në kapacitet, kështu që listat e kaluara mbeten të vërteta.

Rregullat e rezervimit janë te Cilësimet → Rezervimet: sa vonë mund të anulojë një anëtar, sa rezervime të ardhshme mund të mbajë, dhe nëse listat e pritjes janë të ndezura.

5. Mesazhet & automatizimet

Mesazhet mban çdo bisedë me anëtarët. Shkruajini një anëtari ose një grupi të tërë, si të gjithë në një plan ose të gjithë që u skadon këtë muaj. Mesazhet mbërrijnë gjithmonë në aplikacionin e anëtarit, dhe me email kur e shënoni kutinë.

Messages with the conversation list and an open thread with a member reply
Një bisedë, jo një njoftim: përgjigjja e anëtarit vjen në të njëjtin fill. Çdo mesazh tregon nëse u dërgua me email dhe nëse është lexuar.

Mesazhe që dërgohen vetë

Automatic message editor with template text in both languages and a live preview
Çdo mesazh automatik mund të fiket, t'i ndryshohet koha, dhe të rishkruhet në të dyja gjuhët, me paraparje live të rezultatit.

Vendmbajtësit si {first_name}, {club}, {plan}, {end_date} dhe {amount} mbushen vetë. Çdo dërgim regjistrohet një herë për çdo rast, kështu askush nuk bezdiset dy herë.

AutomatizimiKur dërgohet
MirëseardhjaNë momentin që krijohet një anëtar
Kujtesa e rinovimitNjë numër ditësh para datës së mbarimit, një herë për term
Borxhi i papaguarJavore sa kohë faturat janë të papaguara ose llogaria është negative
Anëtarësia e mbaruarNjë numër ditësh pas skadimit pa rinovim
Nuk ju kemi parëPas një periudhe pa hyrje, një herë për çdo mungesë
DitëlindjaNë ditën e saj, sipas zonës kohore të klubit
Arritja e vizitaveNë vizitën e 10-të, 50-të, 100-të e kështu me radhë, e ndryshueshme
Kujtesa e klasësNjë numër orësh para një seance të rezervuar
Pagesa e pranuarPas çdo pagese për një anëtar, e fikur si parazgjedhje

Muri i klubit

Staff view of the member feed with moderation tools
Stafi e sheh gjithë murin, heq një postim ose përgjigje, dhe e bllokon një anëtar nga postimi me një arsye. Anëtarët pranojnë rregulla të shkurtra, të cilat i shkruani ju, para postimit të parë.

Anëtarët gjithashtu mund të ftojnë njëri-tjetrin për të biseduar, dhe pala tjetër duhet të pranojë para se ndonjëri të shkruajë. Askush nuk mund t'i shkruajë një të panjohuri pa u ftuar.

6. Aplikacioni i anëtarit

Aplikacioni i anëtarit është web. Dërgojuni anëtarëve lidhjen dhe janë brenda; nuk ka listim në app store, dhe asnjë përditësim që dikush duhet ta instalojë.

Member app with the QR entry pass
Kartelë hyrjeje me kod QR që ndryshon
Member app feed with the visit leaderboard
Muri i klubit dhe renditja e vizitave

Anëtarët shohin kartelën e anëtarësisë, vizitat, pagesat dhe faturat, rezervojnë dhe anulojnë seanca, i shkruajnë klubit, lidhen me partnerë stërvitjeje, dhe ndërrojnë mes shqipes dhe anglishtes. Qasja aktivizohet për çdo anëtar nga profili me Aktivizo portalin, ose gjatë regjistrimit.

7. Kontrolli i qasjes

Çdo vendim për hyrje kalon nëpër rregullat e anëtarësisë: statusi aktiv, datat, faturat e papaguara mbi shumën e lejuar, mënyrat dhe zonat e lejuara, orari dhe ditët, anti-passback, dhe kufiri i vizitave.

The five-step access control setup wizard
Udhëzuesi e regjistron pajisjen, e tregon çelësin një herë, ju jep komanda të gatshme, dhe bëhet i gjelbër kur mbërrin kërkesa e parë.

Ka tri mënyra për të lidhur pajisjet:

curl -X POST https://club.example.com/api/gates/check \
  -H "Content-Type: application/json" -H "X-Gate-Key: gfg_…" \
  -d '{"credential":"<card UID>","method":"RFID","direction":"in"}'

Përgjigjja bart result, reason, member dhe unlock. Një skadim kohe, një gabim, ose çdo gjë përveç një unlock: true të qartë e mban derën të mbyllur. Një urë referencë për lexuesit e tipit tastierë vjen me aplikacionin; pjesa specifike për prodhuesin është një funksion i vetëm.

Access and visitors with live occupancy and denied attempts
Kush është brenda tani, statistikat e hyrjeve për çdo periudhë, tentativat e refuzuara me arsyen, dhe një simulator për t'i testuar rregullat me një anëtar të vërtetë pa e prekur derën.

8. Financat & raportet

Finances with receipts against expenses and tax collected
Të hyrat kundrejt shpenzimeve për çdo periudhë, pagesat të ndara sipas mënyrës dhe qëllimit, TVSH-ja e mbledhur, faturat e papaguara dhe llogaritë e anëtarëve.
Reports with attendance, membership mix and downloads
Frekuentimi, përbërja e anëtarësive dhe shkarkime për çdo grup të dhënash në CSV dhe Excel.
Mbushjet numërohen një herë, si para të pranuara, dhe jo përsëri kur anëtari e shpenzon kredinë. Raportimi është mbi bazë arke dhe operativ. Është pamje menaxheriale, jo deklaratë tatimore.

9. Cilësimet & gjuhët

Appearance settings with brand colours and typeface
Logoja, ngjyrat dhe shkronjat tuaja zbatohen njëherësh në hapësirën e stafit, aplikacionin e anëtarit, faqen publike dhe ekranet e kyçjes.
Membership plans with prices, durations and access rules
Planet bartin edhe kushtet komerciale edhe rregullat e qasjes, kështu që ajo për të cilën ka paguar anëtari është ajo që i lejon dera.

Cilësimet përfshijnë Klubin, Pamjen, Anëtarësitë, Ekipin, Rolet, Pagesat, Tatimin, Orarin, Email-in, Njoftimet, Kontrollin e qasjes, Rezervimet dhe Të dhënat. Skedat shfaqen vetëm për rolet që kanë aftësinë përkatëse.

Secili ndërron mes shqipes dhe anglishtes me butonin EN / SQ, dhe zgjedhja ruhet në llogari. Përmbajtja e klubit që e lexojnë anëtarët, si teksti i faqes publike, emrat e planeve, përfitimet dhe mesazhet automatike, ka fusha shqip dhe anglisht krah për krah.

10. Hostimi & kopjet rezervë

GYMFLOW është një aplikacion Node.js me bazë të dhënash PostgreSQL. Punon në dy mënyra: në një server të vogël Linux që e kontrolloni ju, pas Caddy-t për HTTPS, ose i hostuar nga ne në infrastrukturë në BE. Fotot dhe logoja e klubit rrinë në bazën e të dhënave, kështu nuk ka skedarë veç për t'i ruajtur ose humbur.

DATABASE_URL=postgres://… SESSION_SECRET=… \
SEED_MODE=starter CLUB_NAME="My Club" \
ADMIN_EMAIL=owner@myclub.com ADMIN_PASSWORD=… \
npm start

Të dhënat fillestare. Nisja e parë me SEED_MODE=starter krijon pronarin, katër plane dygjuhëshe, katër produkte dhe tre anëtarë shembull qartësisht të shënuar, që asnjë ekran të mos jetë bosh derisa e mësoni. Fshijini shembujt sapo të hyjnë anëtarët e vërtetë. SEED_MODE=none fillon krejt bosh, dhe demo ndërton një klub të plotë shembull për prova.

Kopjet rezervë. Cilësimet → Të dhënat shkruan një kopje të çdo tabele, dhe mund ta shkarkoni nga i njëjti ekran. Mbani një kopje jashtë serverit. Në planin e hostuar baza ka edhe rikthim në pikë kohe, kështu një gabim mund të zhbëhet deri në minutë.

Çdo klub ka bazën e vet të të dhënave dhe vendosjen e vet. Asgjë nuk ndahet mes klubeve, ngarkesa e një klubi nuk mund të prekë një tjetër, dhe një klub mund t'i dorëzohet dikujt ose të hiqet veçmas.

11. Zgjidhja e problemeve

Një anëtar nuk mund të hyjë

Arsyeja shfaqet në kartelën live të hyrjes dhe te Qasja & vizitorët: anëtarësi e skaduar ose e ngrirë, faturë e papaguar mbi shumën e lejuar, zonë ose mënyrë e gabuar për planin, jashtë orarit të qasjes, tashmë brenda (anti-passback), ose kufiri i vizitave i shterur. Rregulloni shkakun te profili, ose regjistrojeni hyrjen me dorë nga Qasja.

Email-at thonë "u anashkalua"

Ende nuk është lidhur asnjë kuti postare. Shkoni te Cilësimet → Email, ruani lidhjen SMTP dhe dërgoni mesazhin provë. Anëtarët prapë e marrin gjithçka në aplikacionin e tyre; mungon vetëm kopja me email.

Turnikja nuk reagon

Ekzekutoni komandën ping nga kompjuteri i urës. Një 401 do të thotë se çelësi është gabim ose pajisja është çaktivizuar. Asnjë përgjigje fare do të thotë adresa ose një mur zjarri. Rreshti i pajisjes te Cilësimet → Kontrolli i qasjes tregon kontaktin e fundit dhe vendimin e fundit.

Cili shfletues?

Çdo Chrome, Edge, Safari ose Firefox i tanishëm, në kompjuter ose telefon. Hapi me kamerë gjatë regjistrimit kërkon HTTPS, përveç kur punoni në localhost.

Provojeni në vend se ta lexoni

Klubi demo është i hapur, me anëtarë, kalendar dhe një muaj transaksione. Asgjë që bëni atje nuk prek një palestër të vërtetë.

Hap demon live →