Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‡³πŸ‡¬ Trackam β€” Nigeria's Business CRM Platform

Trackam Banner Next.js TypeScript License

The most complete business management CRM built specifically for Nigerian businesses.

🌐 Live Demo Β· πŸ“© Contact Β· πŸ› Report a Bug


πŸ“Œ What is Trackam?

Trackam is a multi-tenant SaaS CRM designed from the ground up for Nigerian enterprises β€” from solo founders in Aba to large sales teams in Lagos. It replaces the chaos of WhatsApp groups, scattered spreadsheets, and multiple disconnected tools with one unified, powerful platform.

One flat fee. Unlimited everything. No per-seat pricing.


✨ Core Features

Module What it does
πŸ§‘β€πŸ’Ό Client Management Store full client profiles, contact history, notes, status, and linked deals/invoices
🎯 Lead Pipeline Capture prospects, log WhatsApp/phone call updates, track stages, set follow-up reminders
πŸ’Ό Deal Tracking Kanban pipeline, deal values in ₦, conversion rates, win/loss reporting
βœ… Task Management Kanban boards, Gantt charts, team assignment, priority levels, progress tracking
🧾 Naira Invoicing Generate branded invoices in ₦, send via email, track paid/unpaid status
πŸ“Š Analytics Dashboard Live revenue trends, win rates, team performance, 6-month forecasts
πŸ‘₯ Team Management Invite team members by email, assign roles (Owner / Admin / User)
πŸ”” Activity Audit Log Real-time log of every action taken across your workspace
🧩 Module Store Unlock POS, HR, Accounting, Projects, and more as your business grows

πŸ—οΈ Tech Stack

Frontend:   Next.js 16 (App Router) + React 19 + TypeScript 5
Styling:    Tailwind CSS v4
State:      Zustand (with persistence)
Database:   SQLite (better-sqlite3) in dev β†’ PostgreSQL in production
Auth:       JWT (jsonwebtoken) β€” multi-tenant via subdomain routing
Email:      Nodemailer (SMTP) + Resend
Payments:   Paystack (Nigerian payment gateway)
PDF:        PDFKit (invoice generation)
Deploy:     Railway (primary) | Vercel/Netlify (frontend)

πŸš€ Getting Started (Local Dev)

Prerequisites

  • Node.js 18+
  • npm or yarn

1. Clone the repo

git clone https://github.com/DEV-RAPHAEL/trackam.git
cd trackam

2. Install dependencies

npm install

3. Set up environment variables

Create a .env file in the root:

# App
NEXT_PUBLIC_API_URL=http://localhost:3000
NEXT_PUBLIC_BASE_DOMAIN=localhost
JWT_SECRET=your-super-secret-jwt-key-change-in-production

# Database (leave empty for local SQLite, set for PostgreSQL in prod)
DATABASE_URL=

# SQLite path (optional - defaults to ./trackam-dev.db)
SQLITE_DB_PATH=./trackam-dev.db

# Paystack (Nigerian payment gateway)
NEXT_PUBLIC_PAYSTACK_PUBLIC_KEY=pk_test_your_key_here
PAYSTACK_SECRET_KEY=sk_test_your_key_here

# Email (SMTP or Resend)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your@email.com
SMTP_PASS=your-app-password

# Optional: Resend
RESEND_API_KEY=re_your_key_here

4. Run the development server

npm run dev

Open http://localhost:3000 and you'll see the landing page.

Multi-tenant routing: Each company gets a subdomain (e.g., mycompany.localhost:3000). After registering, you'll be redirected automatically.

5. Default Superadmin

A platform superadmin is seeded on first run. Access the control panel at /superadmin. Credentials are set securely via database seeds or environment variables.


πŸ—„οΈ Database

Local Development

Uses better-sqlite3 β€” a simple .db file. No setup required. The database and all tables are auto-created on first API call.

Production

Set DATABASE_URL in your environment to a PostgreSQL connection string. The app automatically switches to pg and provisions all tables on first boot.

DATABASE_URL=postgresql://user:password@host:5432/dbname

🌍 Deployment (Railway)

Option A: PostgreSQL (Recommended)

  1. Push your code to GitHub
  2. Create a new project on Railway.app
  3. Connect your GitHub repo
  4. Add a PostgreSQL service to your project
  5. Link DATABASE_URL from Postgres to your Next.js service
  6. Add your other env variables (JWT_SECRET, PAYSTACK keys, etc.)
  7. Deploy! πŸš€

Option B: SQLite with Persistent Volume

  1. In Railway, go to your service β†’ Volumes β†’ Add Volume
  2. Mount path: /app/data
  3. Set env var: SQLITE_DB_PATH=/app/data/trackam.db
  4. Deploy!

Custom Domain on Railway βœ…

Yes, Railway supports custom domains! Go to:

Your Service β†’ Settings β†’ Networking β†’ Custom Domain

Add your domain (e.g., trackam.ng) and point your DNS records as instructed. Railway provides a free TLS/SSL certificate automatically.


🏒 Multi-Tenancy Architecture

Each company gets:

  • An isolated subdomain (e.g., nova-labs.trackam.ng)
  • All data scoped by company_id β€” no cross-company data leakage
  • Middleware routing handles subdomain detection on every request
trackam.ng              β†’ Marketing landing page
app.trackam.ng          β†’ (Optional: main app redirect)
nova-labs.trackam.ng    β†’ Nova Labs Workspace
techbridge.trackam.ng   β†’ TechBridge Solutions Workspace

πŸ“ Project Structure

trackam-next/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ (dashboard)/        # Authenticated app routes
β”‚   β”‚   β”œβ”€β”€ dashboard/      # Main analytics dashboard
β”‚   β”‚   β”œβ”€β”€ clients/        # Client management
β”‚   β”‚   β”œβ”€β”€ leads/          # Lead pipeline + detail pages
β”‚   β”‚   β”œβ”€β”€ deals/          # Deal tracking
β”‚   β”‚   β”œβ”€β”€ tasks/          # Task management
β”‚   β”‚   β”œβ”€β”€ invoices/       # Invoice generation
β”‚   β”‚   β”œβ”€β”€ settings/       # Company & team settings
β”‚   β”‚   └── modules/        # Module store
β”‚   β”œβ”€β”€ api/                # Next.js Route Handlers (REST API)
β”‚   β”œβ”€β”€ login/              # Auth pages
β”‚   β”œβ”€β”€ register/
β”‚   β”œβ”€β”€ onboarding/         # Guided setup flow
β”‚   └── superadmin/         # Platform admin panel
β”œβ”€β”€ components/             # Shared UI components
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ db.ts               # Database abstraction (SQLite ↔ PostgreSQL)
β”‚   β”œβ”€β”€ store.ts            # Zustand global state
β”‚   β”œβ”€β”€ auth.ts             # JWT auth helpers
β”‚   β”œβ”€β”€ mailer.ts           # Email sending
β”‚   └── pdf-generator.ts    # Invoice PDF generation
└── types/
    └── index.ts            # Shared TypeScript types

🧩 Module System

Trackam ships with a modular architecture. The core CRM is always available. Additional business modules can be unlocked from the Module Store:

Module Status Price
POS System Available ₦49,000
HR Management Coming Soon ₦99,000
Accounting Coming Soon ₦79,000
Project Tracker Available ₦39,000
Support Tickets Coming Soon ₦29,000

🀝 Contributing

This is a proprietary project. For bug reports or feature requests, please open an issue.


πŸ“„ License

Proprietary β€” All rights reserved. Β© 2025 Trackam. Unauthorized copying, modification, or distribution is prohibited.


Built with ❀️ in Nigeria πŸ‡³πŸ‡¬

trackam.ng Β· hello@trackam.ng

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages