Getting Started Guide

Set up your own Personal Trainer Planner instance in 30 minutes

30-45 minutes
Free with Vercel
Beginner friendly

Before You Start

Make sure you have these free accounts ready:

Fork the Repository

Get your own copy of the project on GitHub:

  1. Go to github.com/james-langridge/personal-trainer-planner
  2. Click the Fork button in the top-right corner
  3. Select your GitHub account as the destination
  4. Wait about 10 seconds for GitHub to create your copy

You now own a copy at github.com/YOUR-USERNAME/personal-trainer-planner

Set Up Vercel & Database

Create Vercel Account

  1. Visit vercel.com
  2. Click Sign Up
  3. Choose Continue with GitHub
  4. Authorize Vercel to access your GitHub

Create PostgreSQL Database

  1. In Vercel Dashboard, click Storage
  2. Click Create Database
  3. Select Postgres
  4. Name it (e.g., "trainer-planner-db")
  5. Choose your region (pick one close to you)
  6. Click Create

Save your database URL!

After creation, go to the Quickstart tab and copy the connection string. You'll need it in Step 4.

Configure Gmail

Set up Gmail to send password reset emails:

Enable 2-Factor Authentication

Required for app passwords. Skip if already enabled.

  1. Go to myaccount.google.com/security
  2. Click 2-Step Verification
  3. Follow the setup wizard

Generate App Password

  1. Visit myaccount.google.com/apppasswords
  2. Name it "Personal Trainer Planner"
  3. Click Create
  4. Copy the 16-character password immediately!
  5. Remove any spaces from the password

Important: You won't see this password again. Save it somewhere safe!

Deploy to Vercel

Import Your Project

  1. Go to your Vercel Dashboard
  2. Click Add New Project
  3. Select Import Git Repository
  4. Find and select personal-trainer-planner
  5. Click Import

Configure Environment Variables

Add these variables one by one:

Database
DATABASE_URL
postgres://...

Your PostgreSQL URL from Step 2

Authentication
NEXTAUTH_SECRET
[generate at generate-secret.vercel.app/32]

Random string for JWT signing

NEXTAUTH_URL
(leave empty)

Vercel sets this automatically

Email Configuration
SMTP_HOST
smtp.gmail.com
SMTP_PORT
587
SMTP_USER
your-email@gmail.com

Your Gmail address

SMTP_PASSWORD
xxxx xxxx xxxx xxxx

16-character app password from Step 3

EMAIL_FROM
your-email@gmail.com

Same as SMTP_USER

Branding
PT_BRAND_NAME
Your Business Name

e.g., John's Fitness Training

NEXT_PUBLIC_PT_FIRST_NAME
YourName

Your first name

Optional: Contentful CMS
CONTENTFUL_SPACE_IDOptional
(skip for now)
CONTENTFUL_ACCESS_TOKENOptional
(skip for now)
CONTENTFUL_MANAGEMENT_API_ACCESS_TOKENOptional
(skip for now)

After adding all variables, click Deploy and wait 3-5 minutes.

Create Admin Account

Choose one of these methods to create your admin account:

Option A: Test Seed (Quick Start)

Best for testing. Creates a demo admin account.

npx prisma db seed

Email: admin@example.com

Password: test123

Option B: Manual Creation (Production)

Best for real use. Create a secure admin account.

  1. Install Prisma globally: npm install -g prisma
  2. Connect to your database:
    DATABASE_URL="your-database-url" npx prisma studio
  3. Click on User model
  4. Click Add record
  5. Fill in these fields:
    • email: Your email
    • name: Your name
    • role: admin
    • password: Hash at bcrypt-generator.com
    • type: INDIVIDUAL
    • emailVerified: Current date
  6. Click Save

Test Your Setup

Verify everything works correctly:

1. Access Your App

Go to your Vercel URL (shown after deployment)

2. Sign In

Use the admin credentials you created

3. Test Core Features

  • Create a test client in Users → Add User
  • Schedule an appointment in Calendar
  • Test password reset (optional)

Congratulations!

Your Personal Trainer Planner is now live. Start adding clients and managing your business!

Troubleshooting

Common issues and solutions

Security Checklist

Complete before going live with real data:

  • Changed default admin password
  • Set strong, unique passwords
  • Verified email sending works
  • Tested password reset flow
  • Reviewed admin access
  • Set up database backups
  • Added custom domain (optional)

Next Steps

Essential Setup

  • • Add your real clients
  • • Configure service types
  • • Set standard fees
  • • Import existing data

Optional Enhancements

  • • Add custom domain
  • • Enable Sentry monitoring
  • • Set up Contentful CMS
  • • Configure backups