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
Finding Your Way Around
Next Steps
Running Tests
Learn how to run the test suite
Code Quality
Code quality tools and standards
Celery Tasks
Background task processing
Architecture
Learn about the architecture