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:

  1. Is this project doable for someone thats really only worked/developed small little CUI scripts?

  2. 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!

Was it helpful?

Solution

  1. Yes, it's definitely possible, but GUIs are very different from CUIs.

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

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top