Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// /config/config.js
|
||||
|
||||
const dotenv = require('dotenv');
|
||||
const path = require('path');
|
||||
|
||||
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
|
||||
|
||||
const config = {
|
||||
NODE_ENV: process.env.NODE_ENV || 'development',
|
||||
PORT: parseInt(process.env.PORT, 10) || 3000,
|
||||
MONGO_URI: process.env.MONGO_URI || 'mongodb://localhost:27017/teaching_institution_db',
|
||||
|
||||
JWT_ACCESS_SECRET: process.env.JWT_ACCESS_SECRET || 'default_super_secret_access_key_change_in_production',
|
||||
JWT_REFRESH_SECRET: process.env.JWT_REFRESH_SECRET || 'default_super_secret_refresh_key_change_in_production',
|
||||
JWT_ACCESS_EXPIRES_IN: process.env.JWT_ACCESS_EXPIRES_IN || '15m',
|
||||
JWT_REFRESH_EXPIRES_IN: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
|
||||
|
||||
CORS_ORIGIN: process.env.CORS_ORIGIN || '*',
|
||||
DEFAULT_LANG: process.env.DEFAULT_LANG || 'en',
|
||||
UPLOAD_PATH: process.env.UPLOAD_PATH || 'uploads',
|
||||
|
||||
// S3 / MinIO Object Storage Settings
|
||||
S3_ENDPOINT: process.env.S3_ENDPOINT || 'http://localhost:9000',
|
||||
S3_REGION: process.env.S3_REGION || 'us-east-1',
|
||||
S3_ACCESS_KEY: process.env.S3_ACCESS_KEY || 'minioadmin',
|
||||
S3_SECRET_KEY: process.env.S3_SECRET_KEY || 'minioadmin',
|
||||
S3_TEMP_BUCKET: process.env.S3_TEMP_BUCKET || 'gameno-temp',
|
||||
S3_STORAGE_BUCKET: process.env.S3_STORAGE_BUCKET || 'gameno-storage',
|
||||
S3_FORCE_PATH_STYLE: process.env.S3_FORCE_PATH_STYLE === 'false' ? false : true,
|
||||
SIGNED_URL_EXPIRES_IN: parseInt(process.env.SIGNED_URL_EXPIRES_IN, 10) || 900, // 15 minutes default
|
||||
|
||||
// SMTP Email Settings
|
||||
SMTP_HOST: process.env.SMTP_HOST || 'smtp.mailtrap.io',
|
||||
SMTP_PORT: parseInt(process.env.SMTP_PORT, 10) || 2525,
|
||||
SMTP_USER: process.env.SMTP_USER || '',
|
||||
SMTP_PASS: process.env.SMTP_PASS || '',
|
||||
EMAIL_FROM: process.env.EMAIL_FROM || 'no-reply@institution.com',
|
||||
|
||||
// SMS Provider Settings (sms.ir)
|
||||
SMS_ENABLED: process.env.SMS_ENABLED || 'false',
|
||||
SMS_PANEL_TOKEN: process.env.SMS_PANEL_TOKEN || process.env.SMS_API_KEY || '',
|
||||
SMS_API_KEY: process.env.SMS_PANEL_TOKEN || process.env.SMS_API_KEY || 'mock_sms_key',
|
||||
SMS_SENDER_NUMBER: process.env.SMS_SENDER_NUMBER || '10001000',
|
||||
// Template IDs configured in the sms.ir panel
|
||||
SMS_TEMPLATE_ACCOUNT_CREATED: process.env.SMS_TEMPLATE_ACCOUNT_CREATED || '',
|
||||
SMS_TEMPLATE_CLASS_REGISTERED: process.env.SMS_TEMPLATE_CLASS_REGISTERED || '',
|
||||
SMS_TEMPLATE_CLASS_REMINDER: process.env.SMS_TEMPLATE_CLASS_REMINDER || '',
|
||||
|
||||
// Bale Messenger Bot Settings
|
||||
BALE_BOT_TOKEN: process.env.BALE_BOT_TOKEN || 'mock_bale_bot_token',
|
||||
|
||||
// SuperAdmin Seed Settings
|
||||
SUPERADMIN_USERNAME: process.env.SUPERADMIN_USERNAME || 'superadmin',
|
||||
SUPERADMIN_PASSWORD: process.env.SUPERADMIN_PASSWORD || 'SuperAdminSecret123!',
|
||||
SUPERADMIN_EMAIL: process.env.SUPERADMIN_EMAIL || 'admin@institution.com',
|
||||
SUPERADMIN_NATIONAL_ID: process.env.SUPERADMIN_NATIONAL_ID || '0000000000',
|
||||
SUPERADMIN_PHONE: process.env.SUPERADMIN_PHONE || '09000000000'
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
Reference in New Issue
Block a user