# SpurrinAI Backend A Node.js backend application for SpurrinAI platform. ## Project Structure ``` project-root/ ├── src/ │ ├── app.js # App entry point │ ├── config/ # Configuration files │ ├── controllers/ # Route controllers with business logic │ ├── 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: ```bash git clone git_repository_url cd spurrinai-backend (or respected folder ) ``` 2. Install dependencies: ```bash npm install ``` 3. Set up environment variables: ```bash cp .env.example .env # Edit .env with your configuration ``` 4. Run the setup script: ```bash npm run setup ``` ## Development Mode 1. Start the development server with hot-reload: ```bash npm run dev ``` # Run migrations up ```bash npm run migrate:up ``` ## Production Mode 1. Build the application: ```bash npm run build ``` 2. Start the production server: ```bash npm start ``` 3. 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) ### Using PM2 (Recommended for Production) 1. Install PM2 globally: ```bash npm install -g pm2 ``` 2. Start the application with PM2: ```bash pm2 start src/app.js --name spurrinai-backend ``` 3. Other useful PM2 commands: ```bash # 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 ```bash # 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 ``` ## Support For support, please contact: - Email: contact@tech4biz.io - Issue Tracker: GitHub Issues ## License UNLICENSED - All rights reserved by Tech4biz Solutions