Farmers usually get marginal profits due to middlemen, most of the revenue is spent in transporting their produce to central hubs which adds on to their woes. Alleviating these two costs would enable the farmer to increase his profits tremendously.
What it does
AgroMart helps users find local farms in the area which provide condiments. The user can directly interact with the farms using our swipe interface and can easily add products which he likes. The user can then place the order, travel to the farm and collect the order.
How we built it
Frontend: We mainly used Angular, Bootstrap and TypeScript for this. The customer can search for a particular product (either by text or by uploading a picture). The results can then be filtered based on price of product or/and location of farm. The user can know more about the product by clicking on product card and can keep adding the products he wishes to purchase, to the cart. Finally, the customer can checkout from his cart.
Backend: We have used Node JS to send and receive user requests and responses. We use this as an interface between front end and the DB and also to communicate with the ML model. Machine Learning: The user can upload a picture of what he wants, this would filter his options, allowing him to select from what he needs.
Challenges we ran into
Augmenting data to achieve higher accuracy on real world scenarios. Integrating everything end to end. Calling the ML model server from NodeJS. Using routing and outlet in Angular to have auxiliary routes and views.
Accomplishments that we're proud of
We were able to design and implement the MVP, which proves that such an idea is feasible and would also contribute to a noble cause
We were able to incorporate single page application using Angular
With the help of Bootstrap, we could make the page responsive
We could incorporate functionalities like getting user's current location, to filter out nearby locations of farms, to let a user upload an image of product rather than text, as per their convenience. The upload feature can also come handy when the name of fruit/vegetable, etc. is not always known.
Users can add items to the cart, for later use
What we learned
Hosting a flask server on heroku, training a CNN from scratch, trying to tune parameters for the model, and Data augmentation Using ML model with web development and exposing it to the UI
What's next for AgroMart
Complete the application end to end, and to try to improve the image recognizer algorithm. Having 2 views - for Seller and the Buyer Adding more filtering options such as ratings, popularity of the farm, reviews on a product, etc.