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

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.



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).

By pressing that button, an address is captured and displayed to the user, which then can just save it to the database.
Sales
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.
/vide

Roadmap:
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.