A secure, multi-user Stock Management System (SMS) built with Python, CustomTkinter for the graphical user interface, and SQLite for database persistence. This project demonstrates robust data handling, user authentication, and a feature-rich GUI application.
This application is designed to be a complete, personal or small-business inventory management tool, providing secure user segregation for managing stock data.
- Multi-User Support: Users have separate views of the stock data, ensuring data integrity across different accounts.
- Secure Password Storage: Utilizes the
bcryptlibrary to hash and salt user passwords, ensuring they are never stored in plain text in the SQLite database. - CustomTkinter: Leverages
customtkinterfor a modern, visually appealing, and customizable GUI.
- CRUD Operations: Full functionality to Create, Read, Update, and Delete stock records.
- Record Search: Allows searching for stock by Product ID, Product Name, or Category.
- GUI Customization: Users can dynamically change the primary, secondary, and highlight colors of the main stock table (
ttk.Treeview). - Drag-and-Drop Reordering: Includes functions to move selected rows up and down within the table view.
- Data Validation: Includes checks for non-numeric input for fields like price and capacity, preventing common
ValueErrorexceptions.
- GUI:
tkinterandcustomtkinter - Database:
sqlite3 - Security:
bcrypt(for password hashing) - Language: Python 3.x