All projects

Dry-Fruit E-Commerce Platform — Django Maintenance & Fixes

Inherited Django e-commerce app — stabilized, re-documented, editable-install fixes, DB backup fixture for fast onboarding.

The goal

Hiren inherited a multi-developer Django dry-fruit e-commerce app with local-vs-prod drift, a customized editable django-notifications-hq, broken macOS notifications and misleading pinning. The goal was a runnable local dev loop, documented prod gotchas, and handover-ready fixes.

The solution

Inherited-code stabilization + documentation. Switched requirements.txt to an editable git install of the customized django-notifications-hq with a macOS path fallback, wrote a bold !!dev_NOTES!!.txt for local-vs-prod gotchas, kept requirements_old.txt for reference, shipped a backup.json fixture for DB baseline.

Highlights

  • Inherited prod-critical Django app stabilized for the next developer
  • Editable install strategy replaces pinning mismatch between dev and prod
  • !!dev_NOTES!!.txt + backup.json fixture = fast onboarding

The challenge

requirements.txt pinned django-notifications-hq==1.8.0 but prod was an editable install with local modifications.

Switched to `-e /absolute/path/to/django-notifications-hq` with commented prod and macOS paths; kept pins in requirements_old.txt for reference.

Notifications signals worked on Ubuntu prod but crashed on macOS dev.

Documented a three-step disable workaround (settings.py / urls.py / templates) as an 'OUTDATED fallback' in !!dev_NOTES!!.txt so the next dev has a path through even if the editable install fails.

Some prod changes are gitignored — blind deploys would clobber the live server.

Loud warning at the top of !!dev_NOTES!!.txt designed to catch the next dev before breaking prod.

Fresh local setup with an empty DB means nothing demoable works.

backup.json is a full Django dumpdata snapshot; loaddata restores a working state.

What was delivered

  • requirements.txt with editable django-notifications-hq install
  • requirements_old.txt reference of prior pinned state
  • backup.json Django fixture for working DB baseline
  • !!dev_NOTES!!.txt documenting local-vs-prod gotchas
  • data/shipping_rates.json externalized rules
  • Stabilized working dev environment

Results

Maintenance + fixes

Scope

notes + reqs + fixture

Handover artifacts

What it taught me

  • Inherited projects deserve a brutally honest !!dev_NOTES!! at the top of the repo
  • requirements_old.txt alongside requirements.txt is cheap insurance when switching strategies
  • A full backup.json fixture beats any seed script for onboarding a stranger into an old Django codebase