Simple Point Of Sale software information requested
-
04-06-2021 - |
Question
I hope this is okay to post here. A family friend of mine owns a pizza store, and asked me if I could develop him touch-screen point of sale software for his store. He says he wants something really simple, with no integration to a cash register. Basically, it just needs to calculate his order and print out his receipt.
I am currently in 3rd year of CS at University of Waterloo. All of the work I have done for school has been under a command line interface and I was hoping to maybe tackle this project as a way to further my development experience. When I was first told of the project, I assumed that it was too far over my head, but after a little bit of research, I felt like I wanted to see if I could do it.
I was thinking of using Microsoft Visual Studio for the GUI builder, and use a C++ backend since it is the language I am most versed in. I haven't really done anything like this, so I know I will have to do a lot more reading/learning/etc. From you guys, I guess I have a few questions:
Is this project doable for someone thats really only worked/developed small little CUI scripts?
Do you have any tips/ideas/tools/websites or anything that could perhaps help me along this project?
I hope this post is okay, as it is not really technical (yet), but I would love to hear some thoughts and ideas from you guys. I feel like getting this done is something that will be invaluable to my experience.
Thanks guys!
Solution
Yes, it's definitely possible, but GUIs are very different from CUIs.
If you're a 3rd year student, you can probably learn how to drive the interface code somewhat easily, so I'll give you some generic tips:
- GUIs are event-driven, which means you should wait to see what the user does and react accordingly, instead of prompting for input.
- You should only prompt the user for specific input when absolutely necessary, and have a backup plan in case the user doesn't have the requested information.
- Design the interface to work like your client expects it to, not how you think it should work.
- Value ease-of-use above all else.
- Don't make your program do anything the user doesn't expect it to, such as modifying files unnecessarily or modifying the user's input unnecessarily.
- Since the goal is a touch-screen interface, use larger-than-normal buttons and try to avoid complex menus.
And some tips for actual code:
- Keep your event handling in a central location, and branch out from there.
- You can get a ton of info directly from the environment, so you usually don't need to store things such as which tab is currently active or how big the window is.
- Most interface code can be easily relocated, so don't be afraid to "hack in" a new button or something and then move it later (although make sure you don't forget about it!).
OTHER TIPS
I recommend you to use C#, it is similar to C++ (i.e syntax) , and easy to connect to (sql server , MS Access) databases and (Crystal) reports .