5.4 KiB
5.4 KiB
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:
-
PostgreSQL is installed and running
# Windows # PostgreSQL should be running as a service # Verify it's running psql -U postgres -c "SELECT version();" -
Dependencies are installed
npm install -
Environment variables are configured
- Copy
.env.exampleto.env - Update database credentials:
DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=your_password DB_NAME=royal_enfield_workflow
- Copy
🎯 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_requestsapproval_levelsparticipantsdocumentswork_notestat_alertsadmin_configurationsholidaysnotificationsconclusion_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
CREATEDBpermission
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
PORTin.env - Or kill process using port 5000
🚀 Production Deployment
For production:
- Set
NODE_ENV=productionin.env - Use
npm run buildto compile TypeScript - Use
npm start(no auto-setup in production) - Run migrations separately:
npm run migrate
Happy Coding! 🎉