Flask Warehouse Tracker
Flask Warehouse Tracker
Module Title:
Group Members:
1
Contents
Contents
Introduction
Business Requirements
Functional Requirements
Technologies Used
Backend Development
Technology Stack:
Frontend Development
Explanation of The Folder Structure
Implementation and Testing
Test Plan
Individual Contribution
Reference
2
Introduction
The Flask Warehouse Tracker is a web application crafted using Python, HTML, CSS,
and JavaScript to streamline warehouse management. It presents a user-friendly
interface for overseeing products, inventory, and warehouse operations. The backend
functionalities are managed by Python APIs, utilizing Flask and an SQL connector for
seamless project integration.
Business Requirements
● Product Management
● Categories Management
● Movement Information
● Quantity Available
● Inventory Tracking
● Analytics
● Mobile Responsiveness
Functional Requirements
● Users can add, update and delete products including name and the available
quantity.
● Users can also manage and add and update warehouse locations.
● Users can manage movements between warehouses and can also update total
quantity moved from and to the warehouse.
● Reports display total quantity available in each warehouse location including date
and timestamp of last movement.
Technologies Used
3
● JavaScript: A scripting language that empowers dynamic interactions and
behaviors on web pages, enhancing user experiences and enabling advanced
frontend functionality.
Backend Development
The backend is tasked with managing data processing, business logic, and server-side
operations.
● Reporting and Analytics: Create tools for generating reports and analytics
pertaining to sales, inventory, customer behavior, and other critical business
metrics.
● API Development: If the admin panel interacts with other systems (e.g., mobile
apps, third-party services), design and implement APIs to facilitate seamless
communication.
4
Technology Stack:
● Programming Languages: Python, JavaScript
● Framework: Flask (a lightweight and versatile web framework for Python)
● Database: SQLite
● API Development: Flask includes built-in support for creating RESTful APIs.
Project Structure:
5
● Employ a frontend framework using HTML, CSS, JavaScript to construct the UI
and link it to the backend through API calls.
Product Management:
Inventory Management:
API Documentation:
- Leverage Flask's built-in support for generating API documentation or consider using
libraries.
- Draft unit tests using Flask's built-in testing framework or external testing libraries such
as pytest.
Frontend Development
The frontend constitutes the user interface through which administrators interact.
● Forms and Validation: Deploy forms for data entry and ensure thorough
validation to prevent the submission of inaccurate or erroneous data.
● Reports: Tables are used to visualize the report about products, quantity
available and moved, warehouse.
6
● User Experience: Emphasize a seamless and user-friendly experience to
enhance usability and minimize the learning curve for new administrators.
7
Fig 3. Products Dashboard
8
Fig 5. Movements Dashboard
9
Test Plan
● To verify whether recently added entries are being accurately represented in the
database tables
a. Submit the data through the API, ensuring it adheres to the JSON format.
b. Verify the successful posting of data via the API by reviewing tables using
the list API or by manually logging into the database.
c. Validate the outcome against expectations; in this instance, success is
confirmed as the JSON data is successfully posted to the database tables
through the API.
Individual Contribution
● STUDENT NAME - ID
From the project's inception to its culmination, my contributions were instrumental
in ensuring its overall success. To kickstart the project, I initiated the creation of the
GitHub repository and laid the foundation for the initial backend structure. This entailed
structuring the directory with dedicated folders for models, services, and controllers,
fostering modularity and simplifying maintenance.
Beyond backend development, I played an active role in optimizing the database
layer, refining SQL queries to enhance the overall performance and efficiency of the
system. In pursuit of improved code organization, I implemented a structured folder
arrangement, incorporating model, service, and controller directories to promote code
modularity and ease of maintenance. Over the course of the project, I adeptly debugged
10
and resolved issues within the customer API, guaranteeing the seamless operation of
this pivotal component.
In addition to my focus on API development, I actively collaborated with the
frontend team to address critical issues reported during the development process.
Leveraging my expertise in debugging and troubleshooting, I played a key role in
identifying root causes and swiftly resolving API-related issues in order processing,
customer management, and categories. This ensured smooth interactions between the
frontend and backend components.
Furthermore, I actively participated in refining the database schema and
optimizing database queries to enhance overall performance. By contributing to query
syntax improvements in the products and customers APIs, I achieved more efficient
data retrieval, minimizing response times for administrators. This optimization
significantly contributed to a more responsive and user-friendly admin panel. As the
project advanced, I took the initiative to introduce essential features to the application.
For example, I added functionalities such as the API for adding new records in orders,
updating and deleting products, and listing all products in the products API.
These additions greatly enhanced the admin panel's capabilities, empowering
administrators to manage their warehouse operations more effectively and efficiently.
Moreover, I consistently provided valuable suggestions and input during team
discussions. My proactive approach to brainstorming solutions and proposing
enhancements positively impacted the overall project.
As a result of my suggestions, APIs for categories were introduced, enabling
efficient category management within the admin panel. I actively engaged in
collaborative discussions, ensuring effective communication between teams and
providing support to frontend developers by promptly resolving API-related issues. My
expertise and clear communication facilitated seamless integration between the
frontend and backend components, fostering a cohesive development process.
● STUDENT NAME - ID
Throughout the development of the Warehouse Tracker Admin Panel project, I
played an active role in shaping the platform into a feature-rich, user-friendly, and
efficient tool.
My responsibilities encompassed various facets of the project, including backend
development, frontend enhancements, and optimization. In the backend development
phase, I concentrated on crucial functionalities, such as eliminating redundant files like
search.py, to enhance the maintainability of the codebase. Notably, I played a pivotal
role in implementing the model, controller, and service components, ensuring a
streamlined and secure user management process within the admin panel.
I addressed navigation issues and maintained consistency in navigation and
basic elements by updating all HTML files to enhance usability. I also introduced a user-
friendly popup modal for Create, Read, Update, and Delete (CRUD) operations.
11
Collaboration with the team was a cornerstone of my approach, ensuring the seamless
integration of different components. My open communication and willingness to assist in
various modules fostered a positive team dynamic, making project collaborations
smooth and efficient.
Overall, my attention to detail and proactive problem-solving skills significantly
contributed to the admin panel's functionality and user experience. I take great pride in
my diverse contributions to the project, and I am confident that the Warehouse Tracker
Admin Panel will serve as an efficient, user-friendly, and valuable tool for managing
warehouse operations. As a dedicated team member, my commitment to excellence
and continuous improvement will persist, driving success in future projects and
contributing to the growth and development of our team and organization.
As part of my commitment to continuous improvement, I diligently participated in
code reviews, offering constructive feedback and insights to enhance code quality and
maintainability. My focus on improving code efficiency and adhering to best practices
contributed to a more robust and reliable Warehouse Tracker Admin Panel.
Reference
1. W3Schools. (n.d.). Python Tutorial. Retrieved from
https://www.w3schools.com/python/
12