Mineral tracker
A Django system for mineral stock and transport, built around four roles that each see a different slice of the same data.
- Role
- Engineering
- Built with
- Django, Python, PostgreSQL, django-allauth
A management system for mineral stock and its movement, what is held, what is moving, and who signed for it.

The records in these screenshots are sample data, entered to exercise the dashboards. They are not real trading figures.
Roles are the design
The system defines four roles, administrator, operations manager, financial manager and store keeper, and they are the organising idea rather than a permissions afterthought. Each role opens onto a different part of the same records, which is what separates a tool that a warehouse actually uses from a CRUD interface with everything visible to everyone.
Login is required everywhere: there is no page that shows a record to someone who has not signed in, and no route that quietly leaks one.
What that separation looks like in practice: the financial manager opens onto money, and the store keeper opens onto stock. Neither screen is a filtered version of the other.


Tax is computed rather than typed: the rate is a setting, and the dashboard derives government tax and net profit from the inflows and outflows already recorded, so the figure cannot drift from the payments it is drawn from.