Inspiration

I always wondered why innovation cannot be normalized in Pakistan? It is because no one really dares to take steps due to the fear of rejection. I have a friend who has their industry running; their major workflow was on notebooks, which lacked efficiency and almost led to losing track every time they needed to reconcile every detail regarding their stock, products created from them in formulas, and using them as batches, etc. It was where I decided to build an inventory system, where I can streamline workflows and fill every loop of uncertainties.

What it does

The code is designed to streamline the seamless tracking of users' data. Users can view available products and based on that information, create formulas by combining different products and specifying their quantities for use in a formula. Once a formula is created, a request is sent to the admin for either acceptance or rejection. If the request is accepted, the user can proceed to create a batch; otherwise, the formula will be deleted from the database if it is rejected. The creation of a batch for a formula will be used to update the product's stock based on its utilization. Users can also create an expense or sales records, where sales are categorized as either vendor or dealer. Once the record is created, all prices are automatically calculated, providing ease for the user. Data for expenses, sales, formulas, and batches can be exported to PDF in a sorted order for users to track. The user can also update their profile or reset their password if required. If a user forgets their password, a link is sent to their email to initiate further actions. The responsive web application allows users to navigate and manage their data easily.

How we built it

The project was developed by dividing it into the following modules: 1) Requirement gathering 2) UML modeling 3) Designing clean prototypes 4) Implementing the back-end (Technologies: Node.js, Express.js, and MongoDB) 5) Testing the back-end API's using Postman 6) Implementing the front-end (Technologies: React.js, Redux, Chakra UI, and Bootstrap) 7) Testing performance using the lighthouse extension

Challenges we ran into

I was tasked with implementing a solution that involved formula creation and the utilization of batches to update product stock. I began by creating low-fidelity prototypes and back-end controllers to find a solution. It took me about a week, during which I spent time reading Stack Overflow and various articles on formula creation based on available products. There were many different opinions, but I was determined to find an optimized approach. This led me to the idea of 'grouping' available products based on user preferences for a formula. Once I had finalized the strategy for formula creation, the next challenge was figuring out how to use it to update the stock of each product involved in the formula. Batch creation presented its own set of challenges with numerous use cases to consider. I tried approaching it from different perspectives but encountered failures almost every time. I persisted and consulted community developers, benefiting from their insights to achieve the desired functionality.

Accomplishments that we're proud of

I presented this project at my university's hackathon, and compellingly, it secured the first place.

What we learned

I acquired the skill of utilizing various code samples and creating my own based on them. Experimenting with different tools allowed me to test the optimization of my project and leverage metrics for efficiency tracking. Documenting the project became second nature, providing a clear representation of workflows. Employing diagramming tools, I mastered outlining project flows and operations. Additionally, I learned to extract valuable information from articles, aiding in the understanding and implementation of new concepts.

Built With

Share this project:

Updates