This document outlines security considerations for the SeatSeeker program.
.env- Contains your email credentialsdatabase.db- Contains user subscription data- Any files with hardcoded passwords or API keys
config.env- Template file (no real credentials)course.json- Public course data onlyavailable_CRNS.txt- Public course numbers only
- Location:
.envfile (created fromconfig.envtemplate) - Contains: Email address, app password, SMTP settings
- Protection: Listed in
.gitignore, never committed to repository
- Location:
database.db(SQLite database) - Contains: User emails, course subscriptions, timestamps
- Protection: Listed in
.gitignore, never committed to repository
- Location:
.envfile - Contains: All user-specific settings
- Protection: Listed in
.gitignore, created locally during installation
- β Removed hardcoded email/password from code
- β All credentials now use environment variables
- β
Template file (
config.env) contains no real data
- β
Protects
.envfiles - β Protects database files
- β Protects Python cache files
- β Protects virtual environments
- β Protects temporary files
- β All sensitive data loaded from environment
- β Clear error messages if configuration missing
- β Secure credential handling
Before pushing code to any repository, ensure:
- No
.envfiles exist in the repository - No
database.dbfiles exist in the repository - No hardcoded passwords in any code files
-
.gitignorefile is present and up-to-date -
config.envtemplate contains no real credentials
grep -r "password\|secret\|key\|token" . --exclude-dir=venv --exclude-dir=__pycache__find . -name ".env*" -type ffind . -name "*.db" -o -name "*.sqlite*"When distributing the program:
- Include: All source code, templates, documentation
- Exclude: Any
.envfiles, database files, virtual environments - Template: Provide
config.envas a template only - Instructions: Guide users to create their own
.envfile
- Enable 2-factor authentication
- Generate App Password (not regular password)
- Use App Password in
.envfile - Never commit the
.envfile
- Check provider's SMTP settings
- Use appropriate authentication method
- Test email sending before deployment
- Regularly update dependencies
- Monitor for security vulnerabilities
- Review access logs if applicable
- Keep email credentials secure
- Rotate passwords periodically
If you discover a security vulnerability:
- DO NOT create a public issue
- DO contact the maintainer privately
- DO provide detailed information about the issue
- DO wait for acknowledgment before public disclosure
Remember: Security is everyone's responsibility! π