Re_Backend/QUICK_START.md

264 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Royal Enfield Workflow - Quick Start Guide
## 🚀 **One-Command Setup (New!)**
Everything is now automated! Just run:
```bash
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**
```bash
# Windows
# PostgreSQL should be running as a service
# Verify it's running
psql -U postgres -c "SELECT version();"
```
2. **Dependencies are installed**
```bash
npm install
```
3. **Environment variables are configured**
- Copy `.env.example` to `.env`
- Update database credentials:
```env
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
```bash
cd Re_Backend
npm install
cp .env.example .env
# Edit .env with your database credentials
```
### Step 2: Run Development Server
```bash
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:
```bash
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)
```bash
npm run setup
```
### Start Server Without Setup
```bash
npm run dev:no-setup
```
### Run Migrations Only
```bash
npm run migrate
```
### Seed Admin Configs Manually
```bash
npm run seed:config
```
---
## 🔥 **Fresh Database Reset**
If you want to completely reset and start fresh:
```bash
# 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:**
```sql
-- 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!** 🎉