// Configuration module for AI Recruitment Site Template // Centralizes all environment variable loading with sensible defaults const crypto = require('crypto'); // Helper function to generate secure random strings function generateSecret(length = 64) { return crypto.randomBytes(length).toString('hex'); } // Company Information const company = { name: process.env.COMPANY_NAME || 'Your Recruitment Firm', tagline: process.env.COMPANY_TAGLINE || 'Finding the Perfect Match for Your Career', description: process.env.COMPANY_DESCRIPTION || 'We specialize in connecting talented professionals with exceptional opportunities across various industries.' }; // Branding Colors const branding = { primaryColor: process.env.PRIMARY_COLOR || '#2563EB', accentColor: process.env.ACCENT_COLOR || '#059669', darkColor: process.env.DARK_COLOR || '#1E293B' }; // Contact Information const contact = { email: process.env.CONTACT_EMAIL || 'info@yourcompany.com', phone: process.env.CONTACT_PHONE || '+1 (555) 123-4567', address: process.env.CONTACT_ADDRESS || '123 Business St, Suite 100, City, State 12345', businessHours: process.env.BUSINESS_HOURS || 'Monday - Friday: 9:00 AM - 6:00 PM' }; // Social Media Links const social = { linkedin: process.env.SOCIAL_LINKEDIN || '', twitter: process.env.SOCIAL_TWITTER || '', facebook: process.env.SOCIAL_FACEBOOK || '' }; // Application Settings const app = { nodeEnv: process.env.NODE_ENV || 'development', port: parseInt(process.env.PORT || '3000', 10), sessionSecret: process.env.SESSION_SECRET || generateSecret() }; // Database Configuration const database = { host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT || '5432', 10), name: process.env.DB_NAME || 'recruitment', user: process.env.DB_USER || 'postgres', password: process.env.DB_PASSWORD || 'changeme123' }; // Feature Configuration const features = { maxCvSizeMB: parseInt(process.env.MAX_CV_SIZE_MB || '5', 10), allowedCvTypes: (process.env.ALLOWED_CV_TYPES || 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document').split(',') }; // About Page Content const about = { mission: process.env.ABOUT_MISSION || 'Our mission is to bridge the gap between exceptional talent and outstanding opportunities.', vision: process.env.ABOUT_VISION || 'We envision a world where every professional finds their perfect career match.', values: process.env.ABOUT_VALUES || 'Integrity, Excellence, Innovation, Partnership' }; // Services const services = { list: (process.env.SERVICES_LIST || 'Executive Search,Contract Staffing,Permanent Placement,Career Consulting,Talent Assessment,Industry Expertise').split(',') }; // Email Configuration const email = { smtpHost: process.env.SMTP_HOST || '', smtpPort: parseInt(process.env.SMTP_PORT || '587', 10), smtpUser: process.env.SMTP_USER || '', smtpPassword: process.env.SMTP_PASSWORD || '', smtpFrom: process.env.SMTP_FROM || 'noreply@yourcompany.com', contactFormRecipient: process.env.CONTACT_FORM_RECIPIENT || contact.email }; // Export configuration object module.exports = { company, branding, contact, social, app, database, features, about, services, email };