DanialSoft POS


Jade Danial


10 28, 2020 9:36 PM


0 feedbacks



An inventory system for small to mid-size businesses to handle sales, purchasing, and inventory management and control. It can help track available stocks, add and purchase from vendors, add and take customers' orders, reorder stocks, add products, and generate reports.





User Interfaces



1. Create Database


For the first-time setup, the system will ask the user to fill the text fields required to create a database. The host has the default value "localhost"; the database name default value is "DanialSoftPOS"; the user is set to the default value "postgres"; and the password should be the same password from the PostgreSQL database.



2. User Log In


The user will access the system using his username and password. At the bottom, there is a checkbox option named "Remember Me" that will allow the system to save the username and password of the user for future login.



3. User Registration


The user will be registered first to gain access to the system. In the registration, it will require a username, email, and password.



4. Home


The home interface will show all the shortcut modules that a user can click and will direct to the module. It contains a combo box at the upper right corner with the options to go to the dashboard, logout, large view, hide, close, and help.



5. Dashboard


It provides a real-time view of the inventory, quantity and costs of purchase orders from current and past month and year, product details of total numbers of all items and how many are in low stock items, quantity received, quantity in-hand, product categories, and sales profit from the current month and past month and year.



6. Vendors


Add a new vendor to buy from. The name field is required and the data in this field must be unique. The address field is for the address of the business. The phone and email fields are required for the contact details of the vendor. A user can choose to specify pay term, discount, currency, taxing, payment, and carrier depending on the vendor. The remarks field is optional. It is required to add at least one product of the vendor before saving the details of the new vendor.


Manage existing vendors from the list to change or update the details and add or remove a product.



7. Purchases


Select a vendor and buy more stocks. Add a product to buy, select which date to ship, add remarks, and add the total cost to be paid.


View or update past purchase orders from the Purchases list.



8. Inventory


Products are the different types of things to buy, sell, and track in inventory. A product must have a name and category. The price of the product will be generated automatically by the system depending on the average purchased price plus a mark-up percentage. It is required to add a reorder point for the product to determine when to restock the product to avoid zero availability. The user can specify the location of the product in the location field, and choose the unit of measurement.


Receive purchased products by selecting the purchase order and define the quantity to receive.


See what you have in stock and where and change or update the details of the product from the Product list.



9. Sales


Sales orders in DanialSoftPOS let you track items that you sell to your customers. DanialSoftPOS will automatically assign an order number the first time you save the order. Even if you don’t need to track sales or sell any product, completed sales orders deduct inventory and can be used to record outgoing stock.

To create a sales order, begin by selecting the customer from the combo box, then select the product ID number and define the quantity to be ordered, then click the "Add To Cart" button. After adding the product to the cart, define how much total to be paid and click "Charge". 



10. Customers


The customer name field is required and the data in this field must be unique. The address will be the address of the customer. The phone and email fields are required for the contact details of the customer. A user can choose to specify pay term, discount, currency, taxing, payment, and carrier depending on the customer. The remarks field is optional.



11. Notifications


A product with low stock availability will appear in notification to inform the user to reorder stock. This will help to avoid the zero stock availability of the product.



12. Settings


There are two tabs present in the settings. The first tab is for the preferences settings that will enable the user to define data for the carrier, location, discount, measurement, payment, payment term, category, and taxes.


The second tab is account settings where a user can add a new account or modify existing accounts.



13. Reports


Inventory Summary Report

The total quantities of product inventory levels.


Inventory Details Report

List of Inventory by Location, Category, or Product.


Inventory By Location Report

Shows the total amount of each product in a location.


Product Price List Report

List of products along with their prices.


Ordered By Customer Report

Shows all customers that have ordered a product.


Vendor Payment Details Report

A breakdown of all payments to vendors and refunds.


Vendor Product List Report

List of products with related information from vendors.


Vendor List Report

A list of your vendors and their contact information.


Sales Order Summary Report

Summary of financial information for a number of sales orders.


Sales Order Profit Report

List of Sales Orders with the profit of each sales order.


Customer Payment Summary Report

List of customers with a summary of their accounts receivable information.


Customer Pay Details Report

Breakdown of all payments from customers and refunds.


Customer List Report

A list of customers and their contact information.


Purchase Order Summary Report

Shows a summary of a number of Purchase Orders.


Purchase Order Details Report

Shows the items purchased from vendors.


Purchase Order Status Report

Shows Purchase Orders from vendor's different products.






DanialSoft POS uses the Qt widget toolkit for the graphical user interface. Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android, or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.


For the programming language, I used Python 3.6.3 because it is highly productive as compared to other programming languages like C++ and Java and it has simplified syntax and not complicated, which gives more emphasis on natural language. Due to its ease of learning and usage, python codes can be easily written and executed much faster than other programming languages.


List of the Python modules I used:



DanialSoft POS is a cross-platform software that can run in Windows, macOS, or Linux operating systems.


It requires the PostgreSQL 12 database to store a large number of records.






Code Hub blog source code is available in my Github account in this link and anyone can make a pull request, download, or clone.




That is all about my project DanialSoft POS. Please feel free to submit the feedback below. I appreciate it.


Thank You and Happy Coding.

0 Feedbacks


Jade Danial is a passionate programmer and creator of Code Hub blog. He is fueled by his passion for learning. He is fascinated by the idea of discovering the world of programming.

Meanwhile, he is developing desktop and web applications using his skills in programming.

Get In Touch With Me