I am looking for some advice on where to start with building my guy. I will mostly be coding on my mac, but have the option of windows or linux. I am going to be building an application that will be based around a database for my business and want to make it easy for me or my partner to input data and look up data, as my partner is not computer savy. Any help would be nice, thank you

Ok, so did some looking on there, thinking of using qt. Does that sound like it will be able to do what i am looking for or do you maybe have a list of what you would reccommend. Thank you for the help.

I want to be able to use the application mainly on my server and then access it from other devices that with have different os systems. Server will be linux or windows based. Also, I am using eclipse currently for my development.

You're talking about two different things there.

One of them is a server-client interaction over a network. That's information flow; it's not particularly anything to do with GUIs.

How you enable the user to manipulate data to communicate with the server over the network, and how the returned information is displayed to the user, is what you can use the GUI for.

Some widget toolkits do come with handy networking functions, but I would strongly recommend that you keep the networking part and the GUI part separate in your code. I would suggest you start with a simple, command line interaction of server and client to get that working, and then build the GUI separately.

Yes, I understand that. I will be building my connection and database seperate from my GUI and then I will integrate my GUI into my code. I have not coded a GUI in c++ so wanted help on that line.

The database part is almost definitely better handled with a database engine. A reasonably good and cross-platform, and free one is MySQL. All database engines are setup in a server-client arrangement over a network (or loopback). And most GUI toolkits (I recommend Qt) have a number of pre-existing widgets to deal with databases (query data, display, insert entries, etc.), and for the rest, you just some database-client library (like libmysql). In other words, you could solve your problem simply with this arrangement:

  - Run a MySQL database server (or some other database server)
  - Use a mix of pre-existing database widgets and of custom code to communicate with the server
  - Create the rest of the eye-candy GUI

This means you only really need to code one application, and you don't need to worry about complicated server-client coding. It's going to be a walk in the park.

Sounds like a perfect opportunity for a web based app, php + html + jQuery.

In my opinion everything is gearing towards web based apps anyway, OK it might not be as fast as native GUI, but HTML + jquery has got great portability.

I was trying to stay off the internet with this application. I could set up a mysql that is offline and uses it through a wan connection?

If your buddy is going to access the db from a different computer you would need to serve the data. Unless you put the same db on your buddy's machine and your machine.

Personally, this lends itself well to a php+html+jquery solution.

But it is up to you. What language are you most comfortable with? Java is an option for macs, wxWidgets or QT ( both have a steep learning curve ).

IMO HTML is a great solution, if you use a responsive web layout (bootstrap) you can potentially access data off your iphones etc where it is actually functional and useable

I could set up a mysql that is offline and uses it through a wan connection?

Yes, of course. MySQL is a server application, it receives queries from the network. Whether the network is just the loopback (localhost (IP:, or a local network (via a router, LAN and/or WAN), or the internet at large, it doesn't matter.

What language are you most comfortable with?

I'm guessing from where this was posted, that it would be C++. Of course, as far as doing GUI programming or interfacing with a database, any language works just as well, as long as the tools are well-established, so, as long as you stick with main-stream languages (C++, Java, Python, PHP), it's all the same, really.

Of course, there could be a choice between the client application as a standalone application or as a web-page, that depends more on what kind of GUI experience is desired. And there is of course a performance / portability trade-off.

I am building this all for my business I am starting up. It will be on a LAN to begin with and be running at a sewing production facility. I want to be able to inventory raw materials and was thinking of setting up ipads for the sewers to have access to their asigned work with the top half of gui on ipad a list and bottom half a form showing a visual to visibly so the pieces colors, but thinking just running several small computers for that now. Also, on the server will have all customers info, all design files for projects, and do a payroll off of what work people complete. It would be nice to have the flexability to put web access on this in the future if we expand to another shop or to be able to access when out of the office, but not a priority or option right now as I do not internet at the shop. So has to be offline for now.

I do not internet at the shop. So has to be offline for now.

You treat the internet as if it was some big mystical thing. It's nothing more than a very large network. Writing this as an web application is certainly possible, you just have to run a web server in your network (which is cheap and fairly easy to setup). No connection to the internet is required. The computer on which you run the database server can also be used to run a web-page server, and you'll be able to write code in almost any web-language you like (ASP, PHP, javascript, etc.). This is not an issue. Get a decent server computer, install RHEL or SUSE on it (or Fedora or OpenSUSE, for the smaller wallets), and run a MySQL database server and an Apache web server on it. That's it.

Also, on the server will have all customers info, all design files for projects, and do a payroll off of what work people complete.

All this and no access to the internet? So, no off-site backups? No security updates? You like playing with fire do you?

I think your system administration needs a bit more work (and possibly, hired "expertise").

If the OP is asking whether he needs the internet to serve data from the db to his apps he's in no fit state to be attempting something like this.

To the OP learn to walk before you can run.