Get started
Quickstart
Install FootyCollect and create your first collection item
Live demo
Try FootyCollect without installing anything
API reference
Explore the complete RESTful API documentation
Deployment
Deploy FootyCollect to production
Key features
Multi-item type support
Manage various types of football memorabilia including jerseys, shorts, outerwear, tracksuits, and more. Each item type has specific fields tailored to its characteristics.FKAPI integration
Search and add kits from the Football Kit Archive via FKAPI. Optional but core to the intended workflow—you can search by club, season, and competition, then create items with pre-filled data including colors, design patterns, competitions, and logos.Without FKAPI running, you can still use FootyCollect for manual entry and photo management. Deploy or run FKAPI alongside FootyCollect to enable the search-and-add workflow.
Photo management
Upload and organize multiple photos for each item. Photos are automatically optimized and converted to AVIF format for better performance. The first photo becomes the main display image.Advanced search and filtering
Filter your collection by club, season, brand, competition, item type, condition, and more. Tag items for custom organization and use the search functionality to quickly find specific pieces.User profiles and privacy
Create personal collections with privacy controls. Mark items as private to keep them visible only to you, or share them publicly with the community.RESTful API
Complete API for programmatic access to your collection. All endpoints are documented with OpenAPI/Swagger specification via drf-spectacular.Technology stack
FootyCollect is built with modern, production-ready technologies:- Backend: Django 5.0+ with Django REST Framework
- Database: PostgreSQL
- Cache: Redis
- Task Queue: Celery with Celery Beat for scheduled tasks
- Frontend: Django Templates with Cotton Components, Bootstrap 5, Alpine.js, HTMX
- API Documentation: drf-spectacular (OpenAPI/Swagger)
Architecture highlights
Service layer pattern
The application uses a service layer to encapsulate business logic, keeping views thin and models focused on data representation. Services handle item creation, photo processing, external API integration, and collection operations.Multi-table inheritance
Item types (Jersey, Shorts, Outerwear, Tracksuit) use Django’s Multi-Table Inheritance pattern with aBaseItem model containing common fields and specific models for item-type-specific fields.