A Django application for managing home inventory with categorization and tracking features.
- Shared Item Definitions: Item definitions are global and can be reused across different users' catalogs
- Personal Catalog Entries: Each user maintains their own catalog entries with individual tracking (to-buy status, quantities)
- Catalog Grouping: Organize items into custom groups for better categorization
- Catalog Sharing: Invitation system allows users to share catalogs with others
- RESTful API: Full API support for programmatic access
- Google OAuth Authentication: Secure login via Google accounts
- Docker Deployment: Containerized application for easy deployment
- Ansible Automation: Automated deployment and management scripts
- Install uv:
pip install uv- Install dependencies:
uv sync --all-extras- Set up the database:
uv run manage.py migrate- Create a superuser:
uv run manage.py createsuperuseruv run manage.py devuv run manage.py formatTo automatically fix any fixable linting errors, run:
uv run manage.py format --fixuv run manage.py deployThe project includes comprehensive tests for models, views, and functionality.
Before running the tests, make sure your database schema is up-to-date and static files are collected:
uv run manage.py migrate
uv run manage.py collectstaticuv run manage.py testuv run pytest# Run tests with coverage report
uv run manage.py test_coverage
# Run tests with coverage report and generate HTML report
uv run manage.py test_coverage --htmluv run manage.py loaddata catalog/fixtures/test_data.jsonuv run manage.py builduv run manage.py dockercatalog/- Main application directorymodels.py- Database modelstests.py- Test suiteadmin.py- Admin interface configurationmanagement/commands/- Custom management commands
home_catalog/- Project settings and configurationfixtures/- Test dataDockerfile- Docker configurationansible/- Deployment automation
- Create a feature branch
- Make your changes
- Run tests to ensure everything works
- Submit a pull request