lambda

PV project λ (RDBMS)

Requirements

  1. The solution must have controllable isolation level of transactions and it must showcase the phenomenon of Non-repeatable reads or Phantom reads
  2. Must use a true relational database or object-relational database
  3. The database must consist of at least 5 tables including junction tables, 2 views and 1 M:N relation
  4. The attributes of tables must use the following data types at least once
    • Real number (float)
    • Logical value (bool, ...)
    • enum
    • Text string (varchar, text, ...)
    • Date or time (date, timestamp, ...)
  5. Must allow creation, updates, deletion and display of a resource which splits into more tables at database level
  6. Implement at least one transaction between at least 2 tables
  7. Ability to generate reports which contains aggregated data from at least 3 tables
  8. Ability to import data to at least 2 tables in format CSV, XML or JSON
  9. Configurability via configuration file
  10. Proper error handling for all edge cases

In addition to these criteria, there are the following extras:

  1. 1x Documentation
  2. 3x Test cases
    • All test cases are in PDF format
    • 1 Test case is for running the app including importing database structure
    • 2 Test cases are for testing the app itself and all possible errors and edge cases and configurability

Solution

My solution will use the following tech stack:

  1. Python language
  2. MySQL for database
  3. PySide6 for user interface made in Qt
  4. SqlAlchemy for database management
  5. python-dotenv for configurability

The problem in question will be demonstrated on a library application

Sources

  1. Qt documentation for pyside2
  2. Qt documentation for PySide6
  3. Pythontutorial.net
  4. Docs.sqlalchemy.org
  5. XSD tutorial
Description
PV project λ (RDBMS)
Readme 457 KiB
Languages
Python 100%