QuickBill is a cross-platform, terminal-based billing application written in C.
It supports admin and user logins, product management, bill generation, and maintains a history of transactions in the data/ folder.
-
Admin Login
- Review bills
- Change admin password
- Edit billers
-
User Login
- Process customer bills
- Automatically save bill details with date
-
Billing
- Prints professional receipt layout
- Auto-increments bill/customer ID
- Saves bills in
data/asMM_DD_YYYY.txt
-
Product Management
- Products loaded from
data/products.csv - Supports discounts, GST, and net cost calculation
- Products loaded from
-
Cross-Platform
- Works on macOS, Linux, and Windows
- Uses platform-specific
getch()for hidden password entry
QuickBill/
├── build/ # Compiled object files (created locally, not in GitHub)
├── data/ # Data and runtime files
│ ├── products.csv # Product list
│ ├── password.txt # Login credentials
│ ├── cidupdate.txt # Auto-generated bill counter
│ ├── MM_DD_YYYY.txt # Auto-generated daily bills
├── src/ # Source code
│ ├── main.c
│ ├── admin.c
│ ├── biller.c
│ ├── utils.c
│ └── quickbill.h
├── Makefile
├── README.md
└── .gitignore
- macOS / Linux:
gcc(or any C compiler),make - Windows: MinGW or MSVC
makeThis will compile the source files and generate the executable:
./quickbill # macOS / Linux
quickbill.exe # Windowsmake cleanThis removes all compiled object files and the executable, keeping the workspace clean.
We use a Makefile to:
- Automate the compilation process.
- Ensure consistent build commands across platforms.
- Avoid manually typing long
gcccommands. - Allow easy rebuilds and cleanup (
make,make clean).
data/password.txt- Stores credentials inusername,passwordformat.data/products.csv- Stores product list in CSV format.data/cidupdate.txt- Tracks the last bill/customer ID (auto-generated).data/MM_DD_YYYY.txt- Stores each day's bills (auto-generated).
| Role | Username | Password |
|---|---|---|
| Admin | admin | admin@123 |
| User | 1001 | pass1 |
| User | 1002 | pass2 |
Originally started as a simple C-based billing system for learning purposes, QuickBill was first developed and completed by Chandu Venkata Naga Sai Saran Kumar Velpuri around 2022, with initial input from Wineel Wilson Dasari.
In 2025, Wineel revived, cleaned, and updated the project to make it:
- Cross-platform (macOS, Linux, Windows)
- Easier to build using a Makefile
- More organized with separate modules for admin, billing, and utilities
- Equipped with cleaner file handling and modern C practices
It now serves as both a learning project for beginners in C and a functional terminal-based billing system that can be adapted for small shops or educational use.
Planned features and enhancements
-
Security Enhancements
- SHA-256 hashing for storing passwords instead of plain text
- Role-based access control for different levels of users
- Input validation to prevent malformed data entries
-
Data Export & Reporting
- Export bills to PDF
- Export transactions to CSV
- Summarized monthly/weekly reports
-
Search & Filtering
- Search bills by date, customer ID, or biller
- Product filtering by name or category
-
UI/UX Improvements
- Colored and formatted console output
- Menu navigation improvements
- Optional graphical interface in the future
-
Performance & Scalability
- Use SQLite or MySQL as backend for large-scale deployments
- Optimize file I/O for faster access
-
Roadmap Ideas
- Multi-language support
- Cloud sync option for backup
- Integration with barcode scanners
- Configurable tax rates and currency formatting
This project is open-source and licensed under the MIT License.
See the LICENSE file for details.
Feel free to modify and improve upon it!
Initial Development (2022):
- Wineel Wilson Dasari and Chandu Venkata Naga Sai Saran Kumar Velpuri - Started the project together.
- Chandu completed the original working version.
Recent Updates (2025):
- Wineel updated and enhanced the project with improvements to code quality, cross-platform compatibility, Makefile integration, and file handling.