Kannur Vision

Distribution Management System

Period Apr 2026 – Aug 2026
Location Kerala, India
Resume
System

A place for every device. A record of every handover.

  • Role-based access
  • Distribution & returns
  • Inventory & audit logs

Outcomes

  • 8 roles Audit-ready workflows
  • 21 tables Seven entity domains
  • 55+ Permission entries
  • Real time Distribution and returns

Measured against the resume record

Role
Freelance Full-Stack Developer
Freelance engagement
Scope
Device distribution, defects, returns and inventory across a hierarchical organization.
Full-stack design and architecture
Constraints
Untracked inventory caused device loss; workflows had to stay audit-ready across eight hierarchical roles.
Eight hierarchical roles
Decisions
Real-time distribution and returns tracking, complete audit logging, an RBAC matrix of 55+ entries and an idempotent migration system.
Audit logging and RBAC

Stack

11 tools

  • React
  • FastAPI
  • Python
  • MySQL
  • Docker
  • JWT
  • RBAC
  • Prometheus
  • Grafana
  • Nginx
  • Linux

Full-stack build

What I built

I built the system end to end: the data model, the approval workflows and the role-scoped interface that keeps every handover accountable.

  • Device registry and history

    Every device is registered with a serial number and tracks its status, location and current holder. Each movement is written to a device history, so the full chain from registration to return stays auditable. Devices and users can also be bulk-imported from CSV, XLSX or XLS.

  • Distribution lifecycle

    Distribution requests move through a structured approval chain of pending, approved, delivered or rejected, with approver notes attached at each decision. The same lifecycle view shows where a request stands from any role-scoped dashboard.

  • Defects and returns

    Defects are reported by type and severity and resolved through a history-tracked workflow. Returns are raised with reason categories and approved through the same chain and both sit beside distributions in a single approval queue.

  • Hierarchical roles

    Access is governed by a hierarchy of eight roles, from system administration through field operations. Each role gets its own dashboard and route access and a permission matrix of more than 55 entries keeps those boundaries explicit rather than implied.

  • Operational visibility

    Role-specific dashboards show live statistics, activity feeds, charts and system alerts. Notifications carry an unread badge and mark-as-read state and reports cover inventory, distribution, defects, returns, user activity and device utilisation.

  • Data model and migrations

    The schema spans seven entity domains across 21 MySQL tables. An idempotent migration system keeps environments in sync without manual steps, so the data model can move forward safely as the system grows.

  • Monitoring

    Prometheus scrapes the backend metrics endpoint every ten seconds while SQLAlchemy engine events record query volume, latency, failures and active connections. Grafana provisions Backend API and Database dashboards on startup.