SmartDuke TechnologiesTalk to us
All work
DCamp Fitness·Fitness CRM · Marketing site·

DCamp Fitness — CRM platform + marketing site.

Rebuilt a 10-year-old gym’s business systems as a modern, multi-branch platform with FastAPI, React, and PostgreSQL, and shipped a brand-aligned Astro marketing site alongside. A two-part project combining operational depth with a polished public presence.

Visit dcamp.co.in/
2,400+
Active members
21k+
Leads in CRM
₹53L
Payments · reported quarter
10
Marketing pages
Overview

DCamp Fitness needed a modern platform for running its fitness centres and a website that reflected its brand. The engagement covered both: a full-stack CRM for members and staff, and a public marketing site for programmes, transformations, events, and franchise enquiries.

Challenge

Replace a legacy MySQL CRM while supporting the complexity of a live fitness chain: multi-branch memberships, EMI installments, GST invoicing, personal training, assessments, attendance, HR, and reporting. Alongside the rebuild, turn 761 MB of source media into a lightweight, video-rich marketing experience.

Approach

Built a FastAPI and PostgreSQL backend with a React 19 interface, JWT authentication, and role-scoped access for administrators, trainers, telecallers, and members. Delivered the marketing site as static Astro pages with optimized images and video, preserving DCamp’s lime-green brand identity. Both applications run on the same VPS, with the CRM on its own subdomain.

Result

Both experiences are live. The CRM serves 2,400+ active members and holds 21,000+ leads, with ₹53L in payments recorded in the quarter reported for this case study. The marketing site delivers 10 pages with approximately 6.6 MB of optimized assets, reduced from 761 MB of source media.

01 / DCamp Fitness CRM

A full-stack gym CRM replacing a legacy MySQL system: memberships, personal training, diet, assessments, invoicing, reporting, and member/staff portals for a live fitness chain.

Visit app.dcamp.co.in

Project highlights

  • Multi-branch membership management with EMI installments and GST-aware invoicing.
  • Personal training as a complete billing module, including renewals, EMI, and PDF invoices.
  • Diet and fitness assessments covering posture, functional fitness, and comprehensive fitness, with computed VO₂max, Epley 1RM, Sleep Index, Body-Metrics Index, and ACSM indices.
  • Admin, trainer, telecaller, and member portals with permission-scoped navigation.
  • QR-based attendance, HR, and reporting, plus a leave-aware class calendar merging recurring schedules and ad-hoc events.
  • A single deployment script handles rsync, Alembic migrations, systemd restarts, and nginx reloads.

Technology

FastAPISQLAlchemy 2AlembicPostgreSQL 16React 19 + ViteTypeScriptTanStack QueryTailwind CSSJWT authRole-based accessfpdf2 PDF invoicessystemd + nginxContabo VPS

02 / DCamp Fitness Marketing Site

A brand-aligned, static Astro marketing site for an integrated fitness centre. Ten pages bring together a video hero, expandable media gallery, transformation showcase, event pages, and franchise enquiry calls to action.

Visit dcamp.co.in

Project highlights

  • Lime-green identity sampled directly from the client’s logo (#B0D030), paired with Inter and Bebas Neue typography.
  • Automated Sharp and ffmpeg asset pipeline producing WebP images and compressed H.264/WebM video.
  • Approximately 6.6 MB of total optimized assets, down from 761 MB of source media.
  • Custom vanilla-JavaScript lightbox with keyboard navigation and mixed image/video support.
  • Static output served with gzip compression, immutable asset caching, and security headers.
  • Apex-domain deployment with Let’s Encrypt HTTPS and Certbot auto-renewal; the CRM remains on a separate subdomain.

Technology

Astro 4Tailwind CSSInter + Bebas NeueSharpffmpegVanilla JavaScript lightboxnginxLet’s Encrypt + Certbot
Stack
FastAPIPostgreSQL 16React 19TypeScriptAstro 4Tailwind CSSnginx
Next case study
GenRasi · 2026

GenRasi — a brand-native generative AI product, end to end.

Good things start with a conversation

What if we built
something that matters?

A new idea. An unsolved problem. A next chapter.
We’d love to hear what you have in mind.

Let’s start a conversation