The Mobile Spare Parts Management System (MSPMS) is a versatile and robust desktop application tailored to streamline the management of spare parts inventory, user roles, and business transactions. Built with Python as the core programming language, SPMS integrates seamlessly with both local (SQLite) and online (MySQL) databases, ensuring flexibility and scalability for businesses of varying sizes. The system provides role-based access for administrators and sales personnel, making it a secure and efficient tool for day-to-day operations.
The application features advanced reporting capabilities, generating professional PDF reports using the wkhtmltopdf library. It also simplifies database management through tools like SQLite DB Browser for local database viewing and XAMPP phpMyAdmin for managing MySQL databases. With its modular design and interactive user interface, SPMS offers an intuitive and user-friendly experience for both technical and non-technical users.
Below are the following screenshots (SS) of the project:
The project have following features:
- Database Management:
- Local database: SQLite for offline data storage.
- Online database: MySQL for remote and multi-user access.
- Use of SQLite DB Browser for viewing and managing SQLite databases.
- Integration with XAMPP phpMyAdmin for managing MySQL databases.
- User Authentication and Authorization:
- Secure login and signup functionalities.
- Role-based access control (Admin and Salesman roles).
- Assign, manage, and modify user roles and permissions.
- Inventory and Spare Parts Management:
- Add, edit, delete, and view spare parts records.
- Maintain accurate inventory levels.
- Transaction Management:
- Record and update sales and purchase transactions.
- Track and view historical transaction logs.
- Reporting and Documentation:
- Generate detailed PDF reports using wkhtmltopdf.
- Utilize pre-designed HTML templates for consistent and professional report formatting.
- Interactive Dashboards:
- Admin Dashboard: Manage users, roles, permissions, and inventory.
- Salesman Dashboard: Manage sales-related activities and transactions.
- Development Utilities:
- Batch file (run_app.bat) for quick setup and launch.
- Modular code structure for easy maintenance and scalability.
Following technologies and tools were used in this project:
-
Python: Backbone of the application for developing the user interface, logic, and database interactions.
-
wkhtmltopdf: Converts HTML templates into professional PDF reports.
-
SQLite DB Browser: A user-friendly tool for managing and viewing local SQLite databases.
-
XAMPP phpMyAdmin: A web-based tool for managing MySQL databases hosted locally or remotely.
To get live demo, visit the below platform:
To download and install or customize follow below steps:
- Clone the repository to download project.
- Open your terminal or command prompt (CMD) in the project directory.
- Run the following command to create a virtual environment: python -m venv venv
- Activate this ceated virtual environment by following commnd in already opend CMD: venv\Scripts\activate
-
Create or If Already Created Run, a requirements.txt file in the project's root directory with the following content (one package name per line):
mysql-connector-python tk etc...
-
Run the following command to install these packages: pip install -r requirements.txt
Enusre you must have install these Prerequisites dependencies/softwares to install & run the project successfully:
- Download and install Python from their original website: https://www.python.org/downloads/
- Just Intall this software depedency in your pc any Local Disk you want. But recommended is use default path of Local Disk C.
- Install it for all users and Tick the add pip library during install.
- NOTE: Must Check the box 'add to path' during installaton.
- Ensure PIP is installed with Python for managing project dependencies.
- Download the wkhtmltopdf spftware from their original website: https://wkhtmltopdf.org/
- Intall this software depedency in the folder 'dependency' of project folder like this: Mobile Spare Parts Management System MSPMS/dependency/wkhtmltopdf
Follow below insructions to use & run the project:
- Run the database.py file to set up databases.
- It will create a local SQLite database in the local_database folder.
- It will also create a MySQL database in your localhost's phpMyAdmin.
- (Optional but recommended for development and testing)
- Add initial data to the databases as needed.
- Run the application using the main.py file by using CMD command: python main.py
- Alternatively, you can Run the batch file: run_with_batch.bat
- Recommended method is Point 2 to run application.
-
Admin Username: admin Password: Admin@123
-
Salesman Username: salesman Password: Salesman@123
- Ensure Python and its libraries are correctly installed, as the application will not function otherwise.
- Follow the setup steps precisely to avoid errors.
You can contact me using below methods:
- Email - [email protected]
- Linkedin - musmandeveloper
- GitHub - musmandeveloper
- Portfolio Website - musmandeveloper.vercel.app
We warmly welcome contributions to improve this project! If you discover any issues, have suggestions for enhancements, or would like to add new features, please follow the steps below to contribute:
Click the "Fork" button at the top-right corner of this repository to create your own copy.
Clone your forked repository to your local machine using the following command: git clone https://github.com//.git
Create a branch for your changes to keep the main branch clean and organized. Use below command: git checkout -b
Improve the project by fixing bugs, adding new features, or refining the documentation.
Ensure your changes work as expected and donโt break existing functionality.
Commit your changes with a descriptive message: **git commit -m "Descriptive message about the changes" **
Push your changes to your forked repository: **git push origin **
Go to the original repository on GitHub and click on the โPull Requestsโ tab. Click โNew Pull Requestโ and follow the instructions to submit your PR. Ensure you describe the changes you made and why they improve the project.
Guidelines to be must followed during contribution:
- Follow the projectโs coding style and conventions.
- Keep your changes focused and avoid unrelated updates.
- Include clear and concise documentation for any new features.
- Be respectful and constructive when discussing issues or reviewing PRs.
Your contributions make this project better and more impactful. Thank you for taking the time to contribute! ๐
This project is licensed under the MIT License. You are free to use, modify, and distribute the code as per the terms of the license.
1. Free Use: You can use this project for personal or commercial purposes without restrictions.
2. Modification and Distribution: You are allowed to modify the code and distribute your versions, provided you include the original license.
3. Attribution: Kindly credit the original author by including a link to this repository or mentioning the project.
4. No Warranty: This software is provided "as is," without any warranty of any kind. Use it at your own risk.
The complete license details can be found in the LICENSE file in the root of this repository.
By contributing to this repository, you agree that your contributions will also be licensed under the MIT License.