Go to file
2025-06-12 14:40:23 +05:30
docs v1.0.0-rc 2025-06-12 00:19:44 +05:30
public/images v1.0.0-rc 2025-06-12 00:19:44 +05:30
scripts v1.0.0-rc 2025-06-12 00:19:44 +05:30
src jenkins, automation tst1 2025-06-12 14:40:23 +05:30
tests v1.0.0-rc 2025-06-12 00:19:44 +05:30
.env.example jenkins, automation tst1 2025-06-12 14:40:23 +05:30
.gitignore deleted __pycache__, .DS_Store 2025-06-12 10:19:59 +05:30
CHANGES.md v1.0.0-rc 2025-06-12 00:19:44 +05:30
chat.py v1.0.0-rc 2025-06-12 00:19:44 +05:30
Jenkinsfile jenkins, automation tst1 2025-06-12 14:40:23 +05:30
model_manager.py v1.0.0-rc 2025-06-12 00:19:44 +05:30
nodemon.json v1.0.0-rc 2025-06-12 00:19:44 +05:30
package-lock.json v1.0.0-rc 2025-06-12 00:19:44 +05:30
package.json v1.0.0-rc 2025-06-12 00:19:44 +05:30
readme.md jenkins, automation tst1 2025-06-12 14:40:23 +05:30
requirements.txt v1.0.0-rc 2025-06-12 00:19:44 +05:30

SpurrinAI Backend

A Node.js backend application for SpurrinAI platform.

Project Structure

project-root/
├── src/                    # Source code
│   ├── app.js              # App entry point
│   ├── config/             # Configuration files
│   ├── controllers/        # Route controllers
│   ├── middleware/         # Custom middleware
│   ├── migrations/         # Database migrations
│   ├── routes/             # Route definitions
│   ├── services/           # Business logic
│   └── utils/              # Utility functions
├── docs/                   # Documentation
├── logs/                   # Application logs
├── scripts/                # Build and setup scripts
├── tests/                  # Test files
└── uploads/                # User uploads

Prerequisites

  • Node.js >= 14.0.0
  • MySQL >= 5.7
  • npm >= 6.0.0

Installation

  1. Clone the repository:
git clone https://git.tech4biz.wiki/rohit/spurrin-cleaned-backend-dev.git
cd spurrinai-backend
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your configuration
  1. Run the setup script:
npm run setup

Development Mode

  1. Start the development server with hot-reload:
npm run dev
  1. Run tests:
# Run all tests
npm test

# Run unit tests only
npm run test:unit

# Run integration tests only
npm run test:integration
  1. Code Quality:
# Lint code
npm run lint

# Fix linting issues
npm run lint:fix

# Format code
npm run format

Production Mode

  1. Build the application:
npm run build
  1. Start the production server:
npm start
  1. For production deployment, ensure:
    • Set NODE_ENV=production in .env
    • Configure proper database credentials
    • Set up SSL/TLS certificates
    • Configure proper logging
    • Set up process manager (PM2 recommended)
  1. Install PM2 globally:
npm install -g pm2
  1. Start the application with PM2:
pm2 start src/app.js --name spurrinai-backend
  1. Other useful PM2 commands:
# Monitor application
pm2 monit

# View logs
pm2 logs spurrinai-backend

# Restart application
pm2 restart spurrinai-backend

# Stop application
pm2 stop spurrinai-backend

# Flush logs
pm2 flush

# Delete all logs
pm2 flush spurrinai-backend

# Reload application with zero downtime
pm2 reload spurrinai-backend

Database Migrations

# Create new migration
npm run migrate:create

# Run all migrations
npm run migrate

# Run migrations up
npm run migrate:up

# Run migrations down
npm run migrate:down

API Documentation

Detailed API documentation can be found in the docs/API.md file.

Environment Variables

Required environment variables in .env:

# Server Configuration
PORT=3000
NODE_ENV=development

# Database Configuration
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=Admin@123
DB_NAME=spurrintest

# JWT Configuration
JWT_ACCESS_TOKEN_SECRET=jN4!pY9*d#T2@x$L7wq&Z8^gFc%X5@K#m
JWT_REFRESH_TOKEN_SECRET=Lx$Z7#T2^d&n9!Y4%K8@Fcg*m#qX5p@wL
JWT_ACCESS_TOKEN_EXPIRY=5h
JWT_REFRESH_TOKEN_EXPIRY=7d

# Email Configuration
EMAIL_HOST="smtp.zoho.com"
SENDER_PORT = 465 
SENDER_SECURITY = true
EMAIL_USER="kavya.j@tech4biz.io"
EMAIL_PASS="8pQfkBw8gbrz"

# File Upload Configuration
UPLOAD_DIR=uploads
MAX_FILE_SIZE=5242880 # 5MB

urls and certificates

BACK_URL = http://localhost:3000/ DOMAIN_url = http://localhost:3000/ FLASK_BASE_URL = http://localhost:5000/

SSL_CERT = "/home/ubuntu/spurrin-cleaned-node/certificates/fullchain.pem" SSL_KEY = "/home/ubuntu/spurrinai-backend-node/certificates/privkey.pem"

Support

For support, please contact:

License

UNLICENSED - All rights reserved by Tech4biz Solutions