Final report on the inventory accounting program
Arafat Adigun
Text was translated with AI from english to finnish.
The objective of my project was to create an inventory management system for Digiteam, a digital team in my school, to keep track of their supplies. The system needed to handle various functions, such as tracking the stock of products, their locations (e.g., office, Vaste-locker), their origins, associated projects, and other relevant details like purchase dates, value, and tax information. The problem I aimed to solve was the lack of an organized system to manage and monitor these supplies efficiently. Initially, I developed a backend application that could manage all the required data using Python and the command-line interface (CLI). The task later expanded to include the development of a frontend to make the system accessible through a web browser, providing a user-friendly interface for users to interact with the system.
I began by analyzing the requirements and identifying the core functionalities the system needed to support, such as adding, modifying, and deleting products, as well as sorting and searching for specific items. In the initial phase, I developed the backend using Python, creating two main files: cli.py and product.py. The product.py file defined the Product class, which encapsulated all the attributes related to a product, while cli.py provided a command-line interface for managing the inventory data. The data was serialized using Python's pickle module to allow for persistent storage.
After successfully implementing the backend, I moved on to developing a frontend using Flask, a lightweight web framework in Python. I structured the Flask app by creating necessary directories and files, including HTML templates and a CSS file for styling. I also integrated the backend logic with the Flask routes to handle various user actions, such as adding or viewing products.
The project was completed by developing a fully functional web application that allowed users to interact with the inventory system through a browser. The backend logic I initially developed was seamlessly integrated into the Flask app, enabling all the features that were available in the CLI version, such as product management and data export to Excel. The result was a user-friendly web interface that provided an intuitive way for users to manage inventory data, with features like data sorting, searching, and real-time updates. The application was tested and deployed locally, ensuring that it met all the requirements specified at the start of the project.
Throughout this project, I gained extensive experience in both backend and frontend development. On the backend, I deepened my understanding of Python, data serialization with pickle, and object-oriented programming principles. Moving to the frontend, I learned how to use Flask to create web applications and gained practical experience with HTML, CSS, and JavaScript for designing user interfaces. I also improved my skills in integrating different parts of a software system, ensuring that the backend and frontend components communicated effectively.
The feedback from my instructor was positive, especially regarding the transition from a CLI-based application to a web-based one. The project not only enhanced my technical skills but also gave me insights into the importance of user experience (UX) design in software development.