ActuaryPOS Hybrid Solution Docs
Login
# Gym Module — Complete User Guide The Gym module turns your POS into a full-featured gym management system. Manage members, sell membership packages, track attendance with biometric terminals, record body measurements, assign diet plans, schedule classes, and freeze/unfreeze memberships — all from one dashboard. --- ## What You'll Learn - How to configure gym settings and biometric terminal integration - How to create and manage gym members - How to set up membership packages and classes - How to create, edit, and manage subscriptions - How to freeze and unfreeze memberships - How to track daily attendance (manual and biometric) - How to record health measurements and body metrics - How to assign personalized diet plans - How to use the gym dashboard for real-time insights - How to generate and scan member ID cards with QR codes --- ## Part 1: Gym Settings Before using the Gym module, configure your gym's contact details and (optionally) your biometric attendance terminal. ### How to Configure General Settings 1. Go to **Gym → Settings** from the left sidebar. 2. On the **General** tab, fill in: - **Phone** — Your gym's contact number - **Email** — Your gym's email address - **Website** — Your gym's website URL - **Address** — Full street address of the gym 3. Click **Save**. 📸 *[Screenshot: General settings tab with phone, email, website, and address fields]* ### How to Set Up a Biometric Attendance Terminal If you use a ZKTeco biometric terminal for automated attendance, configure it here: 1. Go to **Gym → Settings**. 2. Switch to the **Attendance Terminal** tab. 3. Enter the **API Key** and **API Secret** from your terminal device. 4. Click **Save**. Once credentials are saved, you will see action buttons: - **Sync Attendance** — Imports attendance data from the biometric terminal - **Clear Attendance Data** — Clears stored data on the terminal - **Show Enrolled Members** — Displays members registered on the terminal - **Download ZKTeco API** — Downloads the connector software needed for terminal integration 📸 *[Screenshot: Attendance terminal tab with API key fields and action buttons]* > 💡 **Tip:** The biometric terminal connects through a local software running on the same computer as the terminal. Make sure the ZKTeco connector software is running before syncing attendance. --- ## Part 2: Managing Gym Members Members are the core of your gym. Each member is a customer contact with additional gym-specific information. ### How to Add a New Member 1. Go to **Gym → Members** from the left sidebar. 2. Click the **Add** button at the top right. 3. Fill in the member form: - **Prefix** — Title (Mr., Mrs., Ms., etc.) — optional - **First Name** — Required - **Middle Name** — Optional - **Last Name** — Optional - **Mobile** — Required — the primary contact number - **Alternate Number** — Optional secondary number - **Landline** — Optional - **Email** — Optional - **Date of Birth** — Optional — date picker (cannot be a future date) - **Gender** — Male / Female / Other - **Address Line 1** — Required - **Address Line 2** — Optional - **City, State, Country, Zip Code** — Optional - **Profile Photo** — Optional — upload a member photo 4. Choose a save option: - **Save** — Creates the member and returns to the member list - **Save and Add Health** — Creates the member and immediately opens the health tracking form 📸 *[Screenshot: The Add Member form showing personal details, contact info, and address fields]* > 💡 **Tip:** Use "Save and Add Health" for new members so you can record their initial body measurements right away during onboarding. ### How to Edit a Member 1. Go to **Gym → Members**. 2. Find the member in the list. 3. Click the **Actions** dropdown and select **Edit**. 4. Update the fields as needed. 5. Click **Update**. ### Member Actions From the member list, each member has an **Actions** dropdown with: | Action | What It Does | |---|---| | **Health** | Opens the health tracking page to record body measurements | | **Profile** | Views the member's full profile page | | **Edit** | Opens the edit form | | **Subscription** | Creates a new subscription for this member | | **Diets** | Opens the diet plan form for this member | ### Member Profile The profile page shows a comprehensive view of a member, including: - Personal information and photo - Current subscription and package details - Attendance history - Health tracking records - Diet plan 📸 *[Screenshot: Member profile page showing personal info, subscription status, and attendance]* ### Printing a Member ID Card 1. Go to **Gym → Members**. 2. Click the **Actions** dropdown on any member. 3. Select **Profile**. 4. On the profile page, find and click the **Print ID Card** option. The ID card includes: - Member photo - Member name and contact ID - Gym branding - A **QR code** for quick scanning 📸 *[Screenshot: A printed member ID card with QR code]* --- ## Part 3: QR Code Scanner The Gym module includes a built-in QR code scanner for quick member lookups at the front desk. ### How to Use the QR Scanner 1. Navigate to the QR scanner page (accessible from the gym menu). 2. Point your device camera at a member's ID card QR code. 3. The system reads the code and opens the member's details page. The member details page shows: - Personal information - Current package and subscription status - Recent attendance records - Latest health measurements - Upcoming classes - Current diet plan > 💡 **Tip:** The QR scanner works on mobile devices too — perfect for front-desk tablets at your gym entrance. --- ## Part 4: Membership Packages Packages define what you sell — the membership type, price, duration, and included classes. ### How to Create a Package 1. Go to **Gym → Packages** from the left sidebar. 2. Click **Add** to open the package form. 3. Fill in: - **Name** — Package name (e.g., "Monthly Basic", "Annual Premium") - **Amount** — The price of the package - **Duration** — Choose from: - **Monthly** — 1 month from start date - **Quarterly** — 3 months from start date - **Half-Yearly** — 6 months from start date - **Yearly** — 1 year from start date - **Lifetime** — No expiry date - **Custom** — You set the end date manually when creating a subscription - **Classes** — Select which gym classes are included in this package (checkboxes) - **Notes** — Optional description or terms - **Enable** — Check to make the package available for sale - **Freeze Allowed** — Check to allow members on this package to freeze their membership - **Freeze Max Days** — Maximum total days a member can freeze (leave empty for unlimited) 4. Click **Save**. 📸 *[Screenshot: The Add Package form with name, amount, duration, classes, and freeze settings]* ### How to Edit a Package 1. Go to **Gym → Packages**. 2. Click the **Edit** button (pencil icon) on the package row. 3. Update the fields. 4. Click **Update**. ### How to Delete a Package 1. Go to **Gym → Packages**. 2. Click **Delete** on the package row. > ⚠️ **Important:** You can only delete a package if it has **no subscriptions** linked to it. If members have subscribed to this package, the delete button will be hidden. --- ## Part 5: Gym Classes Classes are scheduled activities (yoga, spinning, CrossFit, etc.) that can be included in packages. ### How to Create a Class 1. Go to **Gym → Classes** from the left sidebar. 2. Click **Add** to open the class form. 3. Fill in: - **Name** — Class name (e.g., "Morning Yoga", "Evening CrossFit") - **Description** — Optional details about the class - **Instructor** — Name of the instructor - **Start Time** — When the class begins - **End Time** — When the class ends - **Days of Week** — Which days this class runs (multi-select) - **Capacity** — Maximum number of members per session - **Status** — Active or Inactive 4. Click **Save**. 📸 *[Screenshot: The Add Class form with time, days, instructor, and capacity fields]* ### How to Edit or Delete a Class - **Edit**: Click the edit button on the class row, update fields, click **Update**. - **Delete**: Click the delete button on the class row and confirm. > 💡 **Tip:** After creating classes, go to **Packages** and link them by checking the class checkboxes. Members on that package can then see their included classes. --- ## Part 6: Subscriptions Subscriptions connect members to packages, creating a financial transaction with payment tracking. ### How to Create a Subscription **Method 1: From the Subscriptions Page** 1. Go to **Gym → Subscriptions** from the left sidebar. 2. Click **Add** at the top right. 3. Fill in the subscription form: - **Business Location** — Select the gym location - **Customer** — Search for a member by name or phone. You can also add a new customer from here. - **Package** — Select the membership package. The price and duration auto-fill based on the package. - **Start Date** — When the membership begins - **End Date** — Auto-calculated from the package duration (read-only for non-custom packages) - **Is Recurring** — Enable for auto-recurring invoices (optional) - **Discount %** — Percentage discount on the package price (optional) - **Payment Method** — Cash, card, cheque, bank transfer, etc. - **Payment Amount** — How much the member is paying now 4. Review the **Summary Panel** on the right: - Package Name and Price - Discount amount - Total after discount - Change return - Balance due 5. Choose a save option: - **Save** — Creates the subscription - **Save and Print** — Creates the subscription and prints the invoice **Method 2: From the Member List** 1. Go to **Gym → Members**. 2. Click the **Actions** dropdown on a member. 3. Select **Subscription**. 4. The form opens with the member pre-selected and any outstanding dues shown. 📸 *[Screenshot: The subscription creation form with customer, package, dates, and payment fields]* ### How to View a Subscription 1. Go to **Gym → Subscriptions**. 2. Click the **Actions** dropdown on a subscription. 3. Select **View**. The view modal shows: - Customer name and reference number - Package name, start date, end date, and days remaining - Included classes with their scheduled times - Payment status and invoice number - Total amount, amount paid, and balance due ### How to Edit a Subscription 1. Go to **Gym → Subscriptions**. 2. Click the **Actions** dropdown and select **Edit**. 3. Update the package, dates, payment, or other fields. 4. Click **Update**. ### How to Add a Payment to a Subscription 1. Go to **Gym → Subscriptions**. 2. Find a subscription with a **Due** or **Partial** payment status. 3. Click the **Actions** dropdown and select **Add Payment**. 4. Enter the payment amount and method in the modal. 5. Click **Save**. ### How to Print an Invoice 1. Go to **Gym → Subscriptions**. 2. Click the **Actions** dropdown and select **Print Invoice**. 3. The invoice opens in a new tab ready for printing. ### Subscription List Filters The subscription list can be filtered by: - **Customer** — Search for a specific member - **Package** — Filter by membership package - **Payment Status** — Paid, Due, Partial, or Overdue - **Date Range** — Filter by subscription creation date The footer row shows totals for **Total Amount**, **Total Paid**, and **Total Due** across all displayed subscriptions. 📸 *[Screenshot: Subscription list with filters, status badges, and action buttons]* ### Understanding Subscription Status Badges Each subscription shows status badges in the Package column: | Badge | Meaning | |---|---| | **X days remaining** | Active subscription with days until expiry | | **Expired** (red) | Subscription has passed its end date | | **Starts in X days** | Subscription hasn't started yet | | **Lifetime** | No expiry date | | **Frozen** (blue snowflake) | Membership is currently frozen/paused | | **Cancelled** (red) | Subscription has been cancelled | --- ## Part 7: Freezing and Unfreezing Memberships The freeze feature lets members temporarily pause their membership (e.g., for travel, injury, or vacation). The end date is automatically extended by the freeze period so members don't lose time. ### Prerequisites - The member's package must have **Freeze Allowed** enabled - The subscription must be **active** (not expired, not already frozen) - If the package has a **Freeze Max Days** limit, the member must have remaining freeze days ### How to Freeze a Membership 1. Go to **Gym → Subscriptions**. 2. Find the active subscription you want to freeze. 3. Click the **Actions** dropdown. 4. Click **Freeze Membership** (snowflake icon). 5. A modal opens showing: - Package name - Maximum freeze days allowed - Total freeze days already used - Remaining freeze days available 6. Fill in: - **Freeze Start Date** — When the freeze begins - **Freeze End Date** — When the freeze ends - **Freeze Reason** — Optional reason for the freeze 7. Click **Freeze Membership**. 📸 *[Screenshot: The freeze membership modal with date pickers and package info]* **What happens when you freeze:** - The subscription status changes to **Frozen** - The subscription end date is **extended** by the number of freeze days - The freeze start date, end date, and total freeze days are recorded > **Example:** A member has a subscription ending on March 31. They freeze for 10 days (March 1–10). Their new end date becomes April 10. ### How to Unfreeze a Membership 1. Go to **Gym → Subscriptions**. 2. Find the frozen subscription (shown with a blue **Frozen** badge). 3. Click the **Actions** dropdown. 4. Click **Unfreeze Membership** (play icon). 5. Confirm the action in the popup. **What happens when you unfreeze early:** - If the original freeze end date hasn't arrived yet, unused days are **reclaimed** - The subscription end date is **shrunk back** by the unused days - The total freeze days counter is reduced by the unused days - The subscription status returns to **Active** > **Example:** A member froze for 10 days (March 1–10) but unfreezes on March 6. Only 5 days were used, so 5 days are reclaimed and the end date is adjusted back by 5 days. > 💡 **Tip:** The freeze feature requires the `gym.manage_freeze` permission. Make sure your staff roles have this permission if they need to manage freezes. --- ## Part 8: Attendance Tracking Track when members arrive and leave the gym — manually or with biometric terminals. ### Manual Attendance (Daily View) 1. Go to **Gym → Attendance** from the left sidebar. 2. You'll see a list of all members with today's date. 3. For each member: - Click the **In Time** button to record their check-in time - Click the **Out Time** button to record their check-out time 4. A modal opens with a time picker. Select the time and click **Save**. 📸 *[Screenshot: Daily attendance view with In Time and Out Time buttons for each member]* > 💡 **Tip:** If a member's time is already recorded, the button shows the recorded time. Click it again to edit. ### Biometric Attendance (Automatic) If you have a ZKTeco biometric terminal configured: 1. Go to **Gym → Settings → Attendance Terminal** tab. 2. Click **Sync Attendance**. 3. The system contacts your biometric terminal, downloads all attendance events, and creates records automatically. The sync process: - **Check-in events** from the terminal create a new attendance record with the arrival time - **Check-out events** from the terminal update the record with the departure time - Duplicate records for the same member on the same day are prevented ### Attendance Report 1. Go to **Gym → Attendance Report** from the left sidebar. 2. Filter by: - **Member** — Select a specific member - **Date Range** — Choose a date range 3. The report shows: - Date - Member name - Contact ID - Email and Mobile - In-time and Out-time 📸 *[Screenshot: Attendance report with date range filter and member details]* --- ## Part 9: Health Tracking Record body measurements and health metrics over time to help members track their fitness progress. ### How to Record Health Measurements 1. Go to **Gym → Members**. 2. Click the **Actions** dropdown on a member. 3. Select **Health**. 4. Fill in the measurement form: | Field | Description | |---|---| | **Date** | Date of measurement | | **Weight** | Body weight in kg | | **Height** | Height in cm | | **BMI** | Body Mass Index | | **Body Fat %** | Body fat percentage | | **Visceral Fat** | Visceral fat level | | **Subcutaneous Fat** | Subcutaneous fat level | | **Muscle Mass %** | Muscle mass percentage | | **Neck** | Neck circumference | | **Left Arm / Right Arm** | Arm circumference | | **Chest** | Chest circumference | | **Shoulders** | Shoulder width | | **Upper Waist / Lower Waist** | Waist measurements | | **Hips** | Hip circumference | | **Left Thigh / Right Thigh** | Thigh circumference | | **Calf** | Calf circumference | | **Remarks** | Free-form notes | 5. Click **Save**. 📸 *[Screenshot: Health tracking form with body measurement fields]* ### Viewing Health History Below the measurement form, you'll see a table of all previous health records for the member, sorted by date. This lets you: - Track weight changes over time - Monitor body composition improvements - Compare measurements between sessions > 💡 **Tip:** The system automatically calculates **BMI** from weight and height, classifies it (Underweight / Normal / Overweight / Obese), and calculates **BMR** (how many calories your body burns at rest). Weight change compared to the previous record is also tracked automatically. --- ## Part 10: Diet Plans Assign personalized daily nutrition plans to help members reach their fitness goals. ### How to Create or Update a Diet Plan 1. Go to **Gym → Members**. 2. Click the **Actions** dropdown on a member. 3. Select **Diets**. 4. Fill in the 10 meal slots: | Meal Slot | Example | |---|---| | **Morning** | Warm lemon water, 5 soaked almonds | | **Breakfast** | Oatmeal with fruits, 2 boiled eggs | | **Before Lunch** | Green tea, mixed nuts | | **Lunch** | Grilled chicken breast, brown rice, salad | | **Afternoon** | Protein shake, apple | | **Evening** | Vegetable soup, whole wheat toast | | **Dinner** | Grilled fish, steamed vegetables | | **Before Sleep** | Warm milk with turmeric | | **Before Workout** | Banana, peanut butter toast | | **After Workout** | Whey protein, banana | | **Remarks** | Drink 3–4 liters of water daily | 5. Click **Save**. 📸 *[Screenshot: Diet plan form with 10 meal slots and remarks]* > 💡 **Tip:** Each member has exactly one diet plan. If a plan already exists, the form loads the existing plan for editing. Saving always updates the existing plan. --- ## Part 11: Gym Dashboard The dashboard provides a real-time overview of your gym operations at a glance. ### Dashboard Metrics **Row 1 — Membership Overview:** | Metric | Description | |---|---| | Total Members | Total registered gym members | | Active Members | Members with a current (non-expired) subscription | | New This Month | Members registered in the current month | | Expired Members | Members whose subscriptions have expired | **Row 2 — Revenue & Attendance:** | Metric | Description | |---|---| | Total Revenue | Sum of all subscription payments received | | Monthly Revenue | Revenue collected in the current month | | Total Due | Outstanding balance across all subscriptions | | Today's Attendance | Number of members currently inside the gym | **Row 3 — Quick Counts:** | Metric | Description | |---|---| | Total Packages | Number of packages available | | Total Classes | Number of classes defined | | Today's Check-ins | Total check-ins recorded today | | Avg Daily Attendance | Average daily attendance over the last 30 days | **Row 4 — Analytics:** - **Package Popularity** — Top 5 most subscribed packages with subscriber count - **Gender Distribution** — Breakdown of members by gender (Male / Female / Other) **Row 5 — Growth:** - **Monthly Membership Growth** — New member registrations over the last 6 months **Row 6 — Today's Activity:** - **Today's Attendance List** — Members checked in today with in/out times - **Expiring Soon** — Subscriptions expiring within the next 7 days with member name, package, and end date 📸 *[Screenshot: Gym dashboard showing all metric cards, tables, and charts]* --- ## Part 12: Permissions The Gym module uses role-based permissions to control access. Assign these permissions to user roles as needed: | Permission | Controls | |---|---| | **Manage Members** | Create, edit, view members; profile and ID card | | **Manage Health** | Record and view health measurements | | **Manage Attendance** | Check-in/out, sync terminal, view attendance report | | **Manage Packages** | Create, edit, delete packages | | **Manage Classes** | Create, edit, delete classes | | **Manage Diets** | Create and edit diet plans | | **Manage Freezes** | Freeze and unfreeze memberships | | **Manage Settings** | Configure gym settings | | **View Sales** | View subscription details | | **Edit Sales** | Edit subscriptions | | **Delete Sales** | Delete subscriptions | | **Manage Payments** | Add, view, and edit payments on subscriptions | | **Print Invoice** | Print subscription invoices | > 💡 **Tip:** Go to **User Management → Roles** to assign Gym permissions to your staff roles. --- ## Frequently Asked Questions ### Can a member have multiple active subscriptions? Yes. A member can have multiple subscriptions to different packages at the same time. Each subscription is tracked independently. ### What happens when a subscription expires? The subscription status shows as **Expired** with a red badge. The member can still be seen in the member list, but they will need a new subscription to continue. ### Can I offer a discount on a subscription? Yes. When creating or editing a subscription, enter a **Discount %** value. The discount is applied to the package price, and the total is recalculated. ### Can I track partial payments? Yes. When creating a subscription, you can enter a partial payment amount. The subscription will show as **Partial** payment status. You can add more payments later from the subscription list. ### How does the biometric terminal sync work? The system connects to a ZKTeco device running a local connector software on the same computer. Check-in events create attendance records, and check-out events update them. Duplicate entries are prevented automatically. ### Can I freeze a Lifetime membership? Yes, as long as the package has **Freeze Allowed** enabled. Since lifetime memberships have no end date, the freeze is recorded but the end date extension doesn't apply. ### How do I see which classes are included in a package? View any subscription linked to that package — the subscription detail modal shows all included classes with their names and scheduled times. ### Can I print reports? The attendance report and subscription list pages support browser printing. Use your browser's print function (Ctrl+P) to print any page with data tables. --- ## Quick Reference: Navigation | Menu Item | Where It Goes | |---|---| | Gym → Dashboard | Overview of all gym metrics | | Gym → Members | Member list and management | | Gym → Subscriptions | Subscription list and management | | Gym → Packages | Package configuration | | Gym → Classes | Class scheduling | | Gym → Attendance | Daily attendance tracking | | Gym → Attendance Report | Historical attendance report | | Gym → Settings | Gym settings and terminal config |
Need Help?

If something on your Dashboard doesn't look right, use the Contact Superadmin tab in the Documentation section to get help from your system administrator.