Enterprise Ready

The Future of Fitness Management

TeraFit is a high-performance, AI-powered multi-tenant SaaS platform built with Laravel 12. Streamline your gym operations, manage memberships, and scale your fitness empire with ease.

Designed for gyms, fitness clubs, and multi-branch fitness businesses looking for a premium, all-in-one management solution.

TeraFit Dashboard Preview

Key Highlights

Core Capabilities

  • Automatic Tenant Onboarding
  • Real-time Attendance Scanning
  • Dynamic Subscription Plans
  • Role-Based Access Control (RBAC)
  • Multi-Currency Support
  • AI-Powered Fitness Features
  • QR Code Attendance
  • Complete Business Analytics
  • Member Management
  • Trainer Management
  • Workout Management
  • Diet & Nutrition Management
  • Subscription & Billing
  • Notification & Alerts

Technical Excellence

  • Laravel 12 & Vite Integration
  • Zero-Downtime Data Isolation
  • Responsive Blade UI Components
  • Scalable Database Architecture
  • Automated Testing Suite

Installation Guide

Follow these steps to set up TeraFit on your local machine or server.

1. Download Via Themeforest

Extract .zip file
Go to folder Code

2. Dependencies

composer install
npm install
npm run dev

3. Build Assets

npm run build

4. Environment & Database Configuration

Rename .env.example to .env and configure your database settings. TeraFit supports MySQL and SQLite.

# Database Configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=terafit_db
DB_USERNAME=root
DB_PASSWORD=your_password

# For SQLite
# DB_CONNECTION=sqlite
# DB_DATABASE=/absolute/path/to/database.sqlite

5. Mail Configuration

Set up your mail server to handle member registrations and automated notifications.

# Mail Configuration
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="no-reply@terafit.com"
MAIL_FROM_NAME="${APP_NAME}"

6. Key Generate

php artisan key:generate

7. Run Migrations & Seeders

Execute the following command to create the database tables and seed initial demo data:

php artisan migrate --seed

Technical Requirements

Ensure your server environment meets the following specifications to run TeraFit smoothly.

Server Environment

  • PHP 8.2 or higher
  • Laravel 12.x Core
  • MySQL 8.0+ / MariaDB 10.4+
  • Apache / Nginx Support

Development Tools

  • Composer 2.x
  • Node.js 18.x + & NPM
  • Git for Version Control

PHP Extensions

BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, cURL, GD.

Comprehensive Main Features

Subdomain Multi-Tenancy

True SaaS architecture with dedicated subdomains for each gym, ensuring 100% data isolation and brand identity.

Member Lifecycle Management

Complete control over member onboarding, biometric tracking (Height, Weight, BMI), and digital profiles.

Smart QR Attendance

Zero-contact attendance system. Members scan their unique QR codes at the terminal for instant check-in/out.

Trainer & Staff Module

Manage trainers, assign them to members, and track their schedules and performance metrics.

Workout & Diet Planning

AI-ready modules to create personalized workout routines and nutrition plans tailored to member goals.

Financial Intelligence

Real-time analytics dashboard for revenue tracking, subscription health, and member growth trends.

Automated Billing

Automatic invoice generation, expiry alerts via email/SMS, and integrated payment gateway skeletons.

Instant Notifications

Real-time alerts for system updates, membership expirations, and trainer communications directly in the dashboard.

Notifications Guide

The notification system keeps users updated on important events. Here's how to use it properly.

Checking Alerts

Look for the Bell Icon in the top header. A red numeric badge indicates unread notifications.

  • Click the bell icon to open the quick-view dropdown.
  • Most recent notifications are displayed at the top.

Managing Alerts

You can manage your notifications directly from the dropdown or the full list page.

  • Mark as Read: Click the checkmark on an individual alert.
  • Clear All: Use the "Mark all as read" button to clear the badge instantly.
  • Full History: Click "View All" to see your complete notification history.

Automated Tasks & Maintenance

TeraFit uses Laravel's scheduling system to automate recurring business logic.

Subscription Expiration Check

This command automatically identifies expiring plans and sends notifications to keep your revenue flowing.

Run Manually:

php artisan subscriptions:check-expiration

Automated Scheduling:

To ensure this runs daily, set up a cron job on your server:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Pro Tip: This command notifies Gym Owners 30 days before expiration and Members 7, 3, and 1 day before their membership ends.

Project Folder Structure

TeraFit is built with a clean, modular architecture. Below is the primary folder structure and the purpose of each directory.

TeraFit/
├── app/
├── Http/
├── Controllers/
└── Middleware/
├── Models/
└── Traits/
├── config/
├── database/
├── migrations/
└── seeders/
├── public/
├── resources/
└── views/
├── admin/
└── gym/
└── routes/

Logic & Data

app/Models: Contains models with BelongsToTenant trait for isolation.

app/Traits: Shared logic like multi-tenant scoping and image processing.

UI & Resources

resources/views/admin: Super Admin global management views.

resources/views/gym: High-fidelity tenant-specific dashboards.

Routing

routes/web.php: Defines tenant-aware and super admin routes.

app/Middleware: Handles subdomain identification and RBAC.

Persistence

database/migrations: Schema definitions for SaaS infrastructure.

database/seeders: Initial data for quick setup and demoing.

Technical Implementation

Tenant Identification

We use a custom middleware to identify tenants via subdomains:

// IdentifyTenant.php
public function handle($request, Closure $next)
{
    $host = $request->getHost();
    $subdomain = explode('.', $host)[0];
    $tenant = Tenant::where('subdomain', $subdomain)->first();
    // ... logic
}

Global Scoping

Data isolation is handled via a trait applied to models:

// BelongsToTenant Trait
protected static function booted()
{
    static::addGlobalScope(new TenantScope);
}

Demo Credentials

Super Admin

URL: localhost/admin

Email: admin@picode.in

Password: 00000000

Gym Owner

Subdomain: powerhouse.localhost

Email: owner@powerhouse.com

Password: password

Support & Community

Need help? Reach out to us or check out the community resources.

Created with TeraFit SaaS - Ready for CodeCanyon submission.

© 2026 TeraFit Team. All rights reserved.