Re_Backend/QUICK_START.md

5.4 KiB
Raw Permalink Blame History

Royal Enfield Workflow - Quick Start Guide

🚀 One-Command Setup (New!)

Everything is now automated! Just run:

cd Re_Backend
npm run dev

That's it! The setup script will automatically:

  • Check if PostgreSQL database exists
  • Create database if missing
  • Install required extensions (uuid-ossp)
  • Run all migrations (18 total: create tables, enums, indexes)
  • Auto-seed 30 admin configurations
  • Start the development server

📋 Prerequisites

Before running npm run dev, ensure:

  1. PostgreSQL is installed and running

    # Windows
    # PostgreSQL should be running as a service
    
    # Verify it's running
    psql -U postgres -c "SELECT version();"
    
  2. Dependencies are installed

    npm install
    
  3. Environment variables are configured

    • Copy .env.example to .env
    • Update database credentials:
      DB_HOST=localhost
      DB_PORT=5432
      DB_USER=postgres
      DB_PASSWORD=your_password
      DB_NAME=royal_enfield_workflow
      

🎯 First Time Setup

Step 1: Install & Configure

cd Re_Backend
npm install
cp .env.example .env
# Edit .env with your database credentials

Step 2: Run Development Server

npm run dev

Output:

========================================
🚀 Royal Enfield Workflow - Auto Setup
========================================

🔍 Checking if database exists...
📦 Database 'royal_enfield_workflow' not found. Creating...
✅ Database 'royal_enfield_workflow' created successfully!
📦 Installing uuid-ossp extension...
✅ Extension installed!
🔌 Testing database connection...
✅ Database connection established!
🔄 Running migrations...

📋 Creating users table with RBAC and extended SSO fields...
✅ 2025103000-create-users
✅ 2025103001-create-workflow-requests
✅ 2025103002-create-approval-levels
... (18 migrations total)

✅ Migrations completed successfully!

========================================
✅ Setup completed successfully!
========================================

📝 Note: Admin configurations will be auto-seeded on server start.

💡 Next steps:
   1. Server will start automatically
   2. Log in via SSO
   3. Run this SQL to make yourself admin:
      UPDATE users SET role = 'ADMIN' WHERE email = 'your-email@royalenfield.com';

[Config Seed] ✅ Default configurations seeded successfully (30 settings)
info: ✅ Server started successfully on port 5000

Step 3: Make Yourself Admin

After logging in via SSO:

psql -d royal_enfield_workflow

UPDATE users 
SET role = 'ADMIN'
WHERE email = 'your-email@royalenfield.com';

\q

🔄 Subsequent Runs

After initial setup, npm run dev will:

  • Skip database creation (already exists)
  • Run any pending migrations (if you pulled new code)
  • Skip config seeding (already has data)
  • Start server immediately

Typical Output:

========================================
🚀 Royal Enfield Workflow - Auto Setup
========================================

🔍 Checking if database exists...
✅ Database 'royal_enfield_workflow' already exists.
🔌 Testing database connection...
✅ Database connection established!
🔄 Running migrations...
  No pending migrations
✅ Migrations completed successfully!

========================================
✅ Setup completed successfully!
========================================

info: ✅ Server started successfully on port 5000

🛠️ Manual Commands (If Needed)

Run Setup Only (Without Starting Server)

npm run setup

Start Server Without Setup

npm run dev:no-setup

Run Migrations Only

npm run migrate

Seed Admin Configs Manually

npm run seed:config

🔥 Fresh Database Reset

If you want to completely reset and start fresh:

# Drop database
psql -U postgres -c "DROP DATABASE IF EXISTS royal_enfield_workflow;"

# Then just run dev (it will recreate everything)
npm run dev

📊 Database Structure

After setup, you'll have:

  • 18 migrations run successfully
  • 30 admin configurations seeded
  • 12+ tables created:
    • users (with RBAC roles)
    • workflow_requests
    • approval_levels
    • participants
    • documents
    • work_notes
    • tat_alerts
    • admin_configurations
    • holidays
    • notifications
    • conclusion_remarks
    • And more...

🎉 That's It!

Now you can:

  • Access API at: http://localhost:5000
  • View health check: http://localhost:5000/health
  • Access API docs: http://localhost:5000/api/v1

Troubleshooting

Database Connection Failed

Error: Unable to connect to database

Fix:

  • Ensure PostgreSQL is running
  • Check credentials in .env
  • Verify database user has CREATEDB permission

Setup Script Permission Error

Error: permission denied to create database

Fix:

-- Grant CREATEDB permission to your user
ALTER USER postgres CREATEDB;

Port Already in Use

Error: Port 5000 is already in use

Fix:

  • Change PORT in .env
  • Or kill process using port 5000

🚀 Production Deployment

For production:

  1. Set NODE_ENV=production in .env
  2. Use npm run build to compile TypeScript
  3. Use npm start (no auto-setup in production)
  4. Run migrations separately: npm run migrate

Happy Coding! 🎉