project objectives create a gui application that: opens a mysql database and visualize its content...

8
INDUSTRIAL PROJECT 234313 Always alive mySQL viewer with inter process data communication Instructed by: Daher Kaiss Performed by: Adham Masarwah

Upload: valerie-mccoy

Post on 05-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

INDUSTRIAL PROJECT234313

Always alive mySQL viewer with inter process data

communicationInstructed by:

Daher Kaiss

Performed by:

Adham Masarwah

Page 2: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Project Objectives

Create a GUI application that:Opens a mySQL database and visualize

its content using a table viewEnable a pre-defined set of queries on

the databaseDemonstrate ‘always alive GUI’ (i.e.

demonstrates that the GUI is never stuck when the database is busy)

Enable remote updates to the SQL database from remote machine(s) while enable continuous refresh of the data

Page 3: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Methodology

QT package: for developing always alive GUI, using QT multi-threading package

mySQL package: for storing the data

QT sockets : connect between the main application and remote processes that need to update the DB

Page 4: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Achievements

Main application:• Contain all the objects that are needed for the

required functionality such as buttons , menu and table view

• Support all the required functionality such as :• Connecting to the mySQL server (using username

& pass)• Load the data from the DB into the table view• Executing pre-defined queries and visualize its

results on the table• Support option to change the DB and/or the table

that contain data from the mySQL server in middle of work

Page 5: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Achievements (cont.)

Main application:• Ready to read the data sent from remote

machine(s) and applies the updates (in this way the data on the table always up-to-date)

• Always alive GUI: using the multi-threading programming, the GUI still alive while the DB is busy in long computations• This way, the user can still interact with the

application (e.g. view the data, select another tasks)

Page 6: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Achievements (cont.)

Remote machine application:• Supports the functionality of sending

data to the main application using sockets

• Supports the ability to choose the table to be updated in the server DB

Page 7: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Illustration

Viewer

query1

query2query3query4

SQL

UpdateRemote Machine

UpdateRemote Machine

IPC QSockets IPC QSockets

Main application

………….

Page 8: Project Objectives  Create a GUI application that: Opens a mySQL database and visualize its content using a table view Enable a pre-defined set of queries

Conclusions The course gave us an opportunity to be

exposed to new technologies and new environments, and acquired us experience with the real software projects, and getting familiar with the project’s life-cycle

When using open-source packages/tools, reading the documentations and the examples is very important for fast ramp up

Good design is very important in building/developing an application especially when it is created from multiple components, that need to be integrated together