# 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: ```bash git clone -b dev https://git.tech4biz.wiki/Tech4Biz-Services/spurrin-cleaned-node.git cd spurrinai-backend ``` 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 ``` 2. Run tests: ```bash # Run all tests npm test # Run unit tests only npm run test:unit # Run integration tests only npm run test:integration ``` 3. Code Quality: ```bash # Lint code npm run lint # Fix linting issues npm run lint:fix # Format code npm run format ``` ## 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 ``` ## API Documentation Detailed API documentation can be found in the [docs/API.md](docs/API.md) file. ## Environment Variables Required environment variables in `.env`: ```env # Server Configuration PORT=3000 NODE_ENV=development # Database Configuration DB_HOST=localhost DB_PORT=5432 DB_NAME=spurrinai DB_USER=postgres DB_PASSWORD=your_password # JWT Configuration JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=24h # Email Configuration SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your_email@gmail.com SMTP_PASS=your_app_password # File Upload Configuration UPLOAD_DIR=uploads MAX_FILE_SIZE=5242880 # 5MB ``` ## Support For support, please contact: - Email: contact@tech4biz.io - Issue Tracker: GitHub Issues ## License UNLICENSED - All rights reserved by Tech4biz Solutions