Intercars Leicester is an ambitious car dealership based in Leicester.
They are very active in auctions in the east and west midlands.
They have basic data collection techniques which could be significantly
improved to enable them to gain greater insight from the data they collect
which would in turn drive profitable decisions.
Intercars Leicester were approached with the concept of migrating all their
data which at the time was kept in paper form into an on premises MySQL database
with a dedicated server laptop which could be connected to from any other laptops
via ssh or via a GUI.
This is the second part of this discontinued project. Herein is the GUI development
with Python and Kivy interacting with the MySQL database.
The objective of this project is to develop a graphical user interface, GUI, that would
enable non technical staff to interact with the database to accomplish the following:
- Data entry: This simplifies data entry such that
you don't have to know sql to enter data into the database.
The hard work is done in the background using python and sql - Data retrieval and summaries: Users will be able to retrieve tabulated data
and to view pre-defined charts and graphs of useful metrics
without knowing Python or sql programming.
All of this is made possible using python and sql in the background.
The GUI frontend is designed with Kivy.
The KV files are the codes for the various screens/pages that the user interacts with.
These screens are then linked with the python codes in the background,
the backend, which either pulls data or displays data to and fro.
The python code consists of classes and functions which are designed to interact with the GUI
via the .kv files and the database.
Firstly, the python code pulls data from the GUI and performs any transformation necessary
then sends it to the database.
The sql codes used for inserting data into the database, work with the procedures and triggers
in the database i.e. they are coded with the procedures and triggers in mind;
such that when the data reaches the database the procedures and triggers transport
the ready data to their final destination.
For data retrieval, python codes are used to pull raw tabulated data and summaries from the database
then it displays the outputs on the GUI via tabs for viewing. Example illustrations can be found on 2. Sample GUI Illustrations
Unfortunately, the requirements.txt for this project is missing i.e. unretrievable.
However, it included:
- python 3.8
- python-mysql-connector
- sqlalchemy
- matplotlib
- Numpy
- Pandas
- Kivy
- Kivymd
- MySQL
Since the project was discontinued and Intercars did not object to the publishing of
this body of work to illustrate my capabilities, in additions to me owning this project,
I have decided to publish it publicly.
Note: This project is part 2 of the discontinued project.
You can find the first part, Intercars-DB here Intercars-DB
The whole project was certainly an enjoyable experience: I learned a great deal, in a very short period of time.