My First Real Client Project (even though it was for a friend hehehe)
When a friend on mine, wanted to take on life and start a restaurant in a remote place with not a lot of people to help him. He didn’t want to spend a lot of money (10k per year), other than the amount (around 15L) he already had invested in the restaurant. He decided to contact me with an idea to create a POS system for the restaurant for free. Seeing as how I like to create stuff and just was interested to know if I take on this project, will I be able to complete and deliver it at all?
I took on the challenge to create this system, in a 3 months time period.
The idea was that eventually he would want a desktop and a Android setup as well for the workers to use, thinking of this we initially decided to create a node based web server which would have all the necessary APIs, work with the database and communicate with the applications on different platforms. Since the cost of buying a domain, hosting server and maintenance was much too high for him, we decided to go with a simple desktop based application.
The POS system in designed in using .NET 8.0, MAUI and SQLite for a lightweight database for this on premise system.
The initial phase of this system was to:
- Store and edit menu
- Collect and store orders
- print the bills – which was the hardest part. I will talk about that later
Later we added more features like:
- Reporting for sales which will show a statistical analysis on which product was sold the most, based on dates and time like festivals or breakfast, lunch etc.
- Inventory management
- Integration of RazorPay APIs for getting the QR code for the exact amount of the bill
Printing:
We searched and got a 80 mm thermal printer (Shreyans Thermal Printer) for the bills and I must tell you, it was a headache to print that bill with the right format, length and images. Setting up the printer was easy, they give you the application for integration and through their code examples you can send a test to the printer easily.
The difficult part was, printing the bills with the image of the restaurant, all the formatting of the bills with dividers and printing a long bill with upto 10-20 items. Eventually, with a lot of testing an wasting a lot of roles of paper we completed it.
Payment Gateway Integration:
I always thought that integrating a payment gateway into any application must be quite difficult, turns out…. it’s not.
Most of the work if on the client side, the need a current account and to create a account with the payment gateway we are going to use, in our case RazorPay. The merchant id and tokens which any payment gateway provides to the user are important for the integration and after that easy peasy.
We used the RazorPay APIs, to generate QR codes for specific amounts and whatever the API returned we extracted the QR info from the response, created our own QR code and put it on the bill. But it does not end there…
We had to setup a webhook, from which we will keep receiving events from RazorPay about the payment done on each of the QR codes. In this way, the customer and cashier does not even need to interact, if the customer pays through scanning the QR on bill, the order is cleared from the application too, which saves time and makes the process lot cleaner.
When my friend started using it daily, I realized something powerful — good software isn’t just about solving problems; it’s about making someone’s day a little easier.
🖥 Tech Stack: C#, .NET 8.0, MAUI, SQLite
🎯 Role: Design and Development
🌱 Outcome:
- What I learned wasn’t just technical — it was human. I discovered how to talk to non-technical users, translate their needs into designs, and balance feature requests with realistic timelines.
- Learned how much you have to be patient when talking to a client and also how to handle their requests promptly.
- I learned whatever seems difficult at first, is really isn’t.
🔗 GitHub Repository for Web System
