Dystro is a web application that allows companies to easily manage their distribution as well as sales.
notion image

How it works

As an Admin I would be able to:
  • Create an Admin profile as well as a company profile.
  • Through the dashboard, create accounts for employees.
  • See a list of employees as well as disable or enable their accounts.
  • See a list of clients as well as add new clients.
  • See a list of products and add new products
  • See a list of previous sales.
As an employee I will be able to:
  • See a list of clients and add new clients
  • See a list of products and add new products
  • See sales and issue a new sale

Tech Stack:

NextJS: a web application framework, used in order to create a powerful web application for users.
PWA: the web application was turned into a PWA in order to allow users to install it directly into their devices instead of accessing the app through a browser.
This allows for the application to be installed on Mobile Phones, Laptops , or just used on a normal browsers.
NestJS: a powerful backend framework, used in order to handle the business logic and interact with the database amongst other things.
Prisma: an ORM used with NestJS, to handle the transactions between the backend and the database.
PlanetScale: a service for hosting powerful and scalable databases, used with Prisma.
TailwindCSS: a CSS framework to make development faster and easier.

The web application

The web application was developed to be fully responsive to make it easier to use in any setting.
Mobile View
Mobile View
Tablet View
Tablet View
Desktop View
Desktop View

Adding a client

One of the most critical pieces of information about a client is their location. Knowing their exact location can save a lot of time and trouble during delivery.
That’s why during the creation of a client profile, one click of a button will allow the user to pick up the current duration (Assuming they are at the client’s location).
Add Client modal
Add Client modal
By pressing that button, an address is captured and displayed to the user, which then can just save it to the database.


When it comes to sales, most of the time a receipt would need to be printed and given to the client.
The app allows users to directly press a button and as long as they are connected to a thermal printer they will have a receipt ready, fully dynamic according to the sale.
A receipt is printed directly from the app.
A receipt is printed directly from the app.


Statistics page where admins can view the number of their sales and revenue and filter by day or week or employee.
Ability to assign clients to employees, and generate optimized delivery routes.
Ability to assign an employee a predefined load of products.
Ability to view the live location of employees.