This document explains the configuration options for the JobConnect application.
SECRET_KEY: Flask secret key for session securityDATABASE_URL: Database connection URL
FLASK_ENV: Environment (development/production/testing)APP_NAME: Application name (default: JobConnect)BABEL_DEFAULT_LOCALE: Default language (default: es)LOG_LEVEL: Logging level (default: INFO)
DATABASE_URL: Database connection URLSQLALCHEMY_TRACK_MODIFICATIONS: Track modifications (default: false)
MAIL_SERVER: SMTP server (default: smtp.gmail.com)MAIL_PORT: SMTP port (default: 587)MAIL_USE_TLS: Use TLS (default: true)MAIL_USERNAME: Email usernameMAIL_PASSWORD: Email passwordMAIL_DEFAULT_SENDER: Default sender email
UPLOAD_FOLDER: Upload directory (default: uploads)MAX_CONTENT_LENGTH: Maximum file size (default: 16MB)
JOBSPY_COUNTRY: Country code (default: USA)JOBSPY_RESULTS_WANTED: Number of results (default: 25)JOBSPY_HOURS_OLD: Hours old (default: 168)
INDEED_API_KEY: Indeed API keyLINKEDIN_CLIENT_ID: LinkedIn client IDLINKEDIN_CLIENT_SECRET: LinkedIn client secretGOOGLE_JOBS_API_KEY: Google Jobs API key
SCRAPING_TIMEOUT: Timeout in seconds (default: 30)MAX_RETRIES: Maximum retries (default: 3)
CACHE_TYPE: Cache type (default: SimpleCache)CACHE_DEFAULT_TIMEOUT: Cache timeout in seconds (default: 300)
RATELIMIT_STORAGE_URL: Rate limit storage URL (default: memory://)RATELIMIT_DEFAULT: Default rate limit (default: 200 per day;50 per hour;10 per minute)RATELIMIT_STRATEGY: Rate limit strategy (default: fixed-window)
Main configuration class with all settings defined.
Utility functions for loading and validating configuration.
Validation functions for configuration settings.
Example configuration in JSON format.
Example environment variables file.
For production, use PostgreSQL:
DATABASE_URL=postgresql://user:password@host:5432/jobconnect
For development, SQLite is used by default:
DATABASE_URL=sqlite:///instance/jobconnect.db
For Gmail, use:
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USE_TLS=true
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
Note: Use an app-specific password for Gmail.
Get API key from Indeed Developer Portal.
Get client ID and secret from LinkedIn Developer Portal.
Get API key from Google Cloud Console.
Run configuration validation:
python config_validation.pyThis will check all configuration settings and report any issues.
- Never commit real API keys or secrets to version control
- Use environment variables for sensitive information
- Change default secret keys in production
- Use HTTPS in production
- Set proper file permissions for upload directory
For deployment, ensure:
- All required environment variables are set
- Database is properly configured
- Upload directory exists and has proper permissions
- SSL/TLS is configured for production
- Rate limiting is appropriate for your usage
Common issues and solutions:
- Check DATABASE_URL format
- Ensure database server is accessible
- Verify credentials
- Verify SMTP settings
- Check firewall rules
- Use app-specific passwords for Gmail
- Check upload directory permissions
- Verify MAX_CONTENT_LENGTH setting
- Check disk space