Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Brainstorm
  4. Needing help with designing a report manager app
QtWS25 Last Chance

Needing help with designing a report manager app

Scheduled Pinned Locked Moved Solved Brainstorm
mysqlwindowsserverlinuxsql
14 Posts 6 Posters 3.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R realhamidrezakp
    31 Jan 2019, 10:01

    Hi.
    i want to design an application that manages a organization reports.
    in organization, 4 clients (windows) must install this app and manuppilate reports and data.
    i need help with design of application and what things i use to completely and very efficiently do the job.
    i was thinking about using a server at organization with MySQL server installed and clients connect to server and do their job.
    because i am new to qt , and only made qt applications on Linux , i am scaring that might MySQL driver on windows dos not install properly or something else on windows don't let app work good.
    i need your help and suggestions about implementation of application.
    thanks you a lot.

    K Offline
    K Offline
    kshegunov
    Moderators
    wrote on 1 Feb 2019, 05:57 last edited by
    #5

    @realhamidrezakp said in Needing help with designing a report manager app:

    i want to design an application that manages a organization reports.

    This is very broad statement to say the least. What is a "report" and how does this application need to "manage" them. Is this just pulling data off a database, or is data going to be inserted/modified as well? Are there additional security requirements, is this going to run in an internal network? As you can see there's a lot of things to consider before you jump to the technical problems.

    Read and abide by the Qt Code of Conduct

    R 1 Reply Last reply 1 Feb 2019, 12:34
    0
    • S SGaist
      31 Jan 2019, 20:47

      Hi,

      You will likely have to re-build the MySQL plugin to use the version you want to support of MySQL but that's pretty much all.

      R Offline
      R Offline
      realhamidrezakp
      wrote on 1 Feb 2019, 12:21 last edited by realhamidrezakp 2 Jan 2019, 12:41
      #6

      @SGaist
      thanks, so you mean i must compile MySQL plugin for windows platform and qt version i use ?

      J 1 Reply Last reply 1 Feb 2019, 13:24
      0
      • K kshegunov
        1 Feb 2019, 05:57

        @realhamidrezakp said in Needing help with designing a report manager app:

        i want to design an application that manages a organization reports.

        This is very broad statement to say the least. What is a "report" and how does this application need to "manage" them. Is this just pulling data off a database, or is data going to be inserted/modified as well? Are there additional security requirements, is this going to run in an internal network? As you can see there's a lot of things to consider before you jump to the technical problems.

        R Offline
        R Offline
        realhamidrezakp
        wrote on 1 Feb 2019, 12:34 last edited by
        #7

        @kshegunov said in Needing help with designing a report manager app:

        @realhamidrezakp said in Needing help with designing a report manager app:

        i want to design an application that manages a organization reports.

        This is very broad statement to say the least. What is a "report" and how does this application need to "manage" them. Is this just pulling data off a database, or is data going to be inserted/modified as well? Are there additional security requirements, is this going to run in an internal network? As you can see there's a lot of things to consider before you jump to the technical problems.

        so sorry, the reports are some information about customers. app must be able to search and show information of a specific customer. and users can insert new data or modify preview data stored.
        i wanted to make MySQL Server port open to internet so that users can access database from outside and inside of organization.
        is there any security tip or trick other than securing MySQL Server i must consider ?
        thanks you for your time.

        K 1 Reply Last reply 1 Feb 2019, 15:05
        0
        • R realhamidrezakp
          1 Feb 2019, 12:21

          @SGaist
          thanks, so you mean i must compile MySQL plugin for windows platform and qt version i use ?

          J Offline
          J Offline
          JonB
          wrote on 1 Feb 2019, 13:24 last edited by JonB 2 Jan 2019, 13:25
          #8

          @realhamidrezakp

          thanks, so you mean i must compile MySQL plugin for windows platform and qt version i use ?

          I use released versions of MySQL, Qt & Qt MySQL plugin as they are consistent at the time. If you wish to move to, say, the latest version of Qt you are likely to have to compile. I stick with older versions, but that's up to you.

          i wanted to make MySQL Server port open to internet so that users can access database from outside and inside of organization.
          is there any security tip or trick other than securing MySQL Server i must consider ?

          Yes, this is a security "risk"! You can Google for e.g. make MySQL Server port open to internet to read up. The fact that you say

          and users can insert new data or modify preview data stored

          is a shame, especially if it's only supposed to do reports.

          If you are really security conscious you can design to use a "report server" application which runs on the server and only it accesses the database in order to avoid opening up your MySQL (and making it run a lot faster). The server then delivers its results to clients over, say, http (i.e. a web page). But that's certainly a lot more work/design....

          R 1 Reply Last reply 1 Feb 2019, 19:21
          0
          • R realhamidrezakp
            1 Feb 2019, 12:34

            @kshegunov said in Needing help with designing a report manager app:

            @realhamidrezakp said in Needing help with designing a report manager app:

            i want to design an application that manages a organization reports.

            This is very broad statement to say the least. What is a "report" and how does this application need to "manage" them. Is this just pulling data off a database, or is data going to be inserted/modified as well? Are there additional security requirements, is this going to run in an internal network? As you can see there's a lot of things to consider before you jump to the technical problems.

            so sorry, the reports are some information about customers. app must be able to search and show information of a specific customer. and users can insert new data or modify preview data stored.
            i wanted to make MySQL Server port open to internet so that users can access database from outside and inside of organization.
            is there any security tip or trick other than securing MySQL Server i must consider ?
            thanks you for your time.

            K Offline
            K Offline
            kshegunov
            Moderators
            wrote on 1 Feb 2019, 15:05 last edited by
            #9

            @realhamidrezakp said in Needing help with designing a report manager app:

            i wanted to make MySQL Server port open to internet so that users can access database from outside and inside of organization.

            What you probably want is a dedicated server application that talks to the MySQL through internal channel that's not open to the public. And your clients connect and authenticate before your server to get the information (what @JonB wrote). This is not without (development) cost, as you need to develop the protocol (if not using one ready-made), ensure that the clients talk to the server over a secure channel (read SSL) and authenticate the user either by password or by using dedicated security certificates (depending on the requirements).

            is there any security tip or trick other than securing MySQL Server i must consider ?

            The database should be open to a trusted party only.

            Read and abide by the Qt Code of Conduct

            1 Reply Last reply
            1
            • J JonB
              1 Feb 2019, 13:24

              @realhamidrezakp

              thanks, so you mean i must compile MySQL plugin for windows platform and qt version i use ?

              I use released versions of MySQL, Qt & Qt MySQL plugin as they are consistent at the time. If you wish to move to, say, the latest version of Qt you are likely to have to compile. I stick with older versions, but that's up to you.

              i wanted to make MySQL Server port open to internet so that users can access database from outside and inside of organization.
              is there any security tip or trick other than securing MySQL Server i must consider ?

              Yes, this is a security "risk"! You can Google for e.g. make MySQL Server port open to internet to read up. The fact that you say

              and users can insert new data or modify preview data stored

              is a shame, especially if it's only supposed to do reports.

              If you are really security conscious you can design to use a "report server" application which runs on the server and only it accesses the database in order to avoid opening up your MySQL (and making it run a lot faster). The server then delivers its results to clients over, say, http (i.e. a web page). But that's certainly a lot more work/design....

              R Offline
              R Offline
              realhamidrezakp
              wrote on 1 Feb 2019, 19:21 last edited by
              #10

              @JonB

              The fact that you say

              and users can insert new data or modify preview data stored

              is a shame, especially if it's only supposed to do reports.

              i call them wrong, they are some information that organization store about customers.

              If you are really security conscious you can design to use a "report server" application which runs on the server and only it accesses the database in order to avoid opening up your MySQL (and making it run a lot faster). The server then delivers its results to clients over, say, http (i.e. a web page). But that's certainly a lot more work/design....

              thanks, its a good idea ; what is your suggestion about server app design ?

              @kshegunov

              you need to develop the protocol (if not using one ready-made), ensure that the clients talk to the server over a secure channel (read SSL) and authenticate the user either by password or by using dedicated security certificates (depending on the requirements).

              thanks . can you suggest me some good protocol you think is suitable for my use ?

              J K 2 Replies Last reply 5 Feb 2019, 09:25
              0
              • R realhamidrezakp
                1 Feb 2019, 19:21

                @JonB

                The fact that you say

                and users can insert new data or modify preview data stored

                is a shame, especially if it's only supposed to do reports.

                i call them wrong, they are some information that organization store about customers.

                If you are really security conscious you can design to use a "report server" application which runs on the server and only it accesses the database in order to avoid opening up your MySQL (and making it run a lot faster). The server then delivers its results to clients over, say, http (i.e. a web page). But that's certainly a lot more work/design....

                thanks, its a good idea ; what is your suggestion about server app design ?

                @kshegunov

                you need to develop the protocol (if not using one ready-made), ensure that the clients talk to the server over a secure channel (read SSL) and authenticate the user either by password or by using dedicated security certificates (depending on the requirements).

                thanks . can you suggest me some good protocol you think is suitable for my use ?

                J Offline
                J Offline
                JonB
                wrote on 5 Feb 2019, 09:25 last edited by JonB 2 May 2019, 09:26
                #11

                @realhamidrezakp
                My only experience of server-side report generator is MS SSRS (https://en.wikipedia.org/wiki/SQL_Server_Reporting_Services), which supplies reporting facilities for SQL Server. Users go via a web page http interface to request a report to be run and to view the output. So the database itself is not exposed to the outside world, only the reporting service is.

                Like I said, "secure", but a lot more work to implement. I would imagine something similar might exist for MySQL....

                1 Reply Last reply
                1
                • R realhamidrezakp
                  1 Feb 2019, 19:21

                  @JonB

                  The fact that you say

                  and users can insert new data or modify preview data stored

                  is a shame, especially if it's only supposed to do reports.

                  i call them wrong, they are some information that organization store about customers.

                  If you are really security conscious you can design to use a "report server" application which runs on the server and only it accesses the database in order to avoid opening up your MySQL (and making it run a lot faster). The server then delivers its results to clients over, say, http (i.e. a web page). But that's certainly a lot more work/design....

                  thanks, its a good idea ; what is your suggestion about server app design ?

                  @kshegunov

                  you need to develop the protocol (if not using one ready-made), ensure that the clients talk to the server over a secure channel (read SSL) and authenticate the user either by password or by using dedicated security certificates (depending on the requirements).

                  thanks . can you suggest me some good protocol you think is suitable for my use ?

                  K Offline
                  K Offline
                  kshegunov
                  Moderators
                  wrote on 5 Feb 2019, 20:35 last edited by
                  #12

                  @realhamidrezakp said in Needing help with designing a report manager app:

                  thanks . can you suggest me some good protocol you think is suitable for my use ?

                  I use my own messages built on top of JSON that I marshal as binary over TCP. Whether this is good for your case I can't say.

                  Read and abide by the Qt Code of Conduct

                  1 Reply Last reply
                  1
                  • R Offline
                    R Offline
                    realhamidrezakp
                    wrote on 7 Feb 2019, 12:16 last edited by
                    #13

                    Thanks you @kshegunov and @JonB .
                    you helped me a lot.

                    1 Reply Last reply
                    0
                    • R realhamidrezakp
                      31 Jan 2019, 10:01

                      Hi.
                      i want to design an application that manages a organization reports.
                      in organization, 4 clients (windows) must install this app and manuppilate reports and data.
                      i need help with design of application and what things i use to completely and very efficiently do the job.
                      i was thinking about using a server at organization with MySQL server installed and clients connect to server and do their job.
                      because i am new to qt , and only made qt applications on Linux , i am scaring that might MySQL driver on windows dos not install properly or something else on windows don't let app work good.
                      i need your help and suggestions about implementation of application.
                      thanks you a lot.

                      K Offline
                      K Offline
                      Konstantin Tokarev
                      wrote on 9 Feb 2019, 02:30 last edited by
                      #14

                      what is your suggestion about server app design ?

                      People usually refer to "server app" as "middleware" or "web application". There are tons of web frameworks and ORMs for various languages including Java and C# on "enterprise" side and scripting languages (pphp, python, perl, ruby, node.js). C++ is not really convenient language here. As for protocol, if you are not pursuing real-time data processing with lowest possible latency, it makes sense to use REST API on top of HTTP, so that on server side you have the most typical "web app" with ORM inside and REST outside, and on client side you can easily add web client if needed, and even if not, you get some additional convenience as compared to e.g. RPC over plain TCP

                      1 Reply Last reply
                      2

                      14/14

                      9 Feb 2019, 02:30

                      • Login

                      • Login or register to search.
                      14 out of 14
                      • First post
                        14/14
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved