Nahuel Cabral
ES
← All projects

/ Case study · Internal tools

Stock control system

A full-stack application to manage inventory for purchasing and withdrawals: items by category, recorded movements, low-stock threshold alerts and dashboards that differ by role (employee, purchasing manager, administrator). Designed for field and desktop use, with clear flows and data persisted in a relational database. It has its own visual identity: a logo and icon set drawn from scratch, built on the idea of a grid of slots where one is empty. The public demo shows the same kind of flow with sample data.

Visit live site (opens in a new tab)

Role
Full-stack development and modelling of permissions and inventory flows.
Duration
Personal project / portfolio demo
Client
Ministerio de Comunicación Pública
Year
2026
  • Sign in
    Sign in
  • Dashboard: units in stock, low-stock strip and quick actions
    Dashboard: units in stock, low-stock strip and quick actions
  • Item list: a filled slot when stock is fine, an amber ring when it is low
    Item list: a filled slot when stock is fine, an amber ring when it is low
  • Withdraw items
    Withdraw items
  • Low-stock alerts
    Low-stock alerts
  • Movement history (manager and admin)
    Movement history (manager and admin)
  • User administration (admin only, sample data)
    User administration (admin only, sample data)
  • Bulk import from Excel
    Bulk import from Excel
  • Dashboard on desktop
    Dashboard on desktop
  • Item list on desktop
    Item list on desktop
  • Purchasing metrics with Excel export (sample data)
    Purchasing metrics with Excel export (sample data)

The problem

Controlling stock takes more than a loose spreadsheet: you need to record inbound and outbound movements, see what is below the minimum, audit who moved what and limit sensitive views by role, without complicating the team's day-to-day.

The solution

A web app with a dashboard (totals and alerts), item list and detail, purchases, withdrawals with notes, categories, history and metrics for authorised profiles, plus bulk import from Excel and user administration (including a link flow to create or reset passwords). Session and JWT authentication and roles (for example ADMIN, JEFE_COMPRAS, EMPLEADO) that condition history, metrics, exports and user management.

Technical details

Front end

  • Next.js (App Router)
  • React
  • TypeScript
  • Material UI (MUI)
  • Tailwind CSS

Back end

  • Next.js (Route Handlers and server actions)
  • Internal API for login and administration

Data

  • MySQL
  • Prisma ORM

Features

  • Dashboard with total items and a low-stock counter
  • Stock by category, item detail and soft delete where applicable
  • Purchases (inbound) and withdrawals (outbound) with user traceability
  • Alerts by configurable low-stock threshold
  • History and metrics with role-based permissions
  • Excel export (metrics) and import from .xlsx / .xls
  • Login and user management for administrators

Deploy

  • Netlify

Result

  • Working inventory demo with roles
  • Less friction when loading data in bulk
  • A base ready to extend to a real environment

Demo access

Test accounts to explore the demo.

  • Employee — user: testEmpleado, password: test123
  • Purchasing manager — user: testJefe, password: test123
Next projectTelegram bot + admin panel →