I'm planning to make a PHP and MySQL Point of Sale program through XAMPP. The plan is to make a whole database program server that will contain the stats while the client program that's intended to be connected to it be used by the clients so they could update their stats.

For example: Clients would be named Store1 and Store2 for the store chain and they'll be limited to submit stats/daily reports only and I'll be the overseer with Main server since I'm the owner lol (with different username and passwword). Next is to make a .exe file installer so they could easily install it without me having to install many other apps/copy the program all the way through.

I won't be asking directly to the specifics of coding them all yet but I want to know how do I proceed with this plan? What should be the flow of the procedure?

The main questions are:

  1. Is it possible to make a .exe installer (for Windows 10) for that client specific program I made so they could just update the stat reports? If so how, which applications or admin system do I need to access or use for it?

  2. Would it be possible that when the .exe file is installed, the client could already connect to my database server ofc with given username and passwords?

  3. For example the main database server went offline (power outage) and while the client is online, he updated the stats but I'm still offline, when I get online again, would the main database server also get updated with the changes he made automatically?

  4. Would the changes I made in the system affect the installed client program from the client's PC instantly? Or would it automatically update it? Or do I have to create another installer for each update?

I know this could be a pretty big question but thank you all so much for considering.

  • 1
    My first question would be do you understand MySQL licensing? You can't redistribute MySQL (or any other GPL software) with your product, unless you license your own code as open-source with a GPL-compatible license. The alternative is to pay for a commercial license for MySQL Enterprise if you want to distribute it. See mysql.com/about/legal/licensing/oem. I have a friend who converted all his database and code to PostgreSQL to avoid this licensing issue. Nov 18 at 17:31
  • 1
    Aside of licensing issues there's a whole slew of other (possible) issues. It starts with the clients: are they 'internal' to your organisation/home or are they publicly available. In general you don't want everyone to connect to your database server but you provide an API (which, in modern days, is often a REST API for example). Also, the server being offline doesn't have to be an issue, but it won't be solved magically. You need to program this; store your data somewhere until the server is back up and (re)send the data again.
    – RobIII
    Nov 18 at 17:41
  • And for question 4: again, you can program 'auto-updates' (or use an app-store like Microsoft's appstore, or Google or Apple, whatever your client is running, and use their mechanisms for updating) but it's not going to happen by magic. Again, this comes back to providing an API so you can change internals and have the "API layer" handle older clients' requests and act accordingly - even if it is just responding with a 'Sorry, you need to update before you can proceed' message. You can't do that with MySQL alone.
    – RobIII
    Nov 18 at 17:43
  • @Robllll it would be for the clerks. So they could add reports of the sale. Thanks for the insight Nov 18 at 23:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.