Directory Overview
Key Directories
config/
Contains Django project settings and configuration.config/settings/
config/settings/
Environment-specific settings modules:
base.py- Shared settings for all environmentslocal.py- Development settingsproduction.py- Production settingstest.py- Test environment settings
config/celery_app.py
config/celery_app.py
Celery application initialization and configuration. Autodiscovers tasks from all registered Django apps.
config/checks.py
config/checks.py
Production readiness validation checks. Run with
python manage.py check --deploy.footycollect/
The main application package containing all Django apps.footycollect/collection/
The core collection app managing items and photos:The collection app follows a service layer pattern - business logic lives in
services/, not in views or models. See the Service Layer documentation.footycollect/api/
External API integration (FKAPI client) for the Football Kit Archive:- API client implementation
- Request/response handling
- Integration with collection services
footycollect/core/
Shared core models and utilities:- Club, Season, Competition models
- Shared utilities and helpers
- Common base classes
footycollect/users/
User management and authentication:- User model
- Profile management
- Authentication views
deploy/
Production deployment configuration:env.example- Environment variable template- Deployment scripts and configurations
- Server setup documentation
compose/
Docker Compose service definitions:Test Organization
Tests are organized by app within each app’stests/ directory:
Multi-Table Inheritance Structure
FootyCollect uses Django’s Multi-Table Inheritance (MTI) for item types:- Inherits common fields from
BaseItem - Has a one-to-one relationship with
BaseItem - Adds type-specific fields and behavior