Implementing a Materials Management System using PyMySQL and PyQT

2023-04-10

project lapse time: 2022-11-14 - 2022-12-27


Introduction

For my Database course project, I was the core backend member of a team that implemented a Materials Management System (MMS) using PyMySQL and PyQT. We aimed to develop a system that could proficiently handle data related to users, books, and papers while being intuitive and easy-to-use.

MMS main page

Project Details

Our team consisted of four members. We divided the project into two main parts: the backend and the user interface. I was responsible for designing the SQL query and connection to GaussDB (for MySQL), a high-performance and secure database system.

MMS books page

For the backend, we used PyMySQL, a pure Python MySQL client library that allowed us to connect to GaussDB and execute SQL queries efficiently. We designed a normalized database schema that included tables for books, papers, users, and borrowing records.

MMS papers page

For the user interface, we used PyQT, a Python binding for the popular Qt framework. PyQT provided many tools and widgets for building a modern and responsive UI. We designed a user-friendly interface that allowed users to search for books and papers, borrow and return items, and manage their borrowing history.

MMS users page

Features

Our MMS had a wide range of features, including:

  • User-friendly and responsive UI with a modern design
  • Efficient and secure connection to GaussDB using PyMySQL
  • Normalized database schema that allowed for efficient queries
  • Ability to search for books and papers by title, author, or keyword
  • Ability to manage borrowing history
  • User authentication and authorization using a login system
MMS edit page

Conclusion

Overall, this project was a great learning experience for our team. We gained experience in Python programming, PyMySQL, PyQT, and SQL database design. The project also allowed us to improve our teamwork and project management skills.

Our open-source project is available on GitHub, which we hope will benefit the wider community. Our MMS is a valuable tool for libraries, schools, and other organizations that need to manage materials efficiently and securely.