Inspiration

A week before the beginning of the hackathon, our team had decided on undertaking the idea of optimizing the financial aspects of grocery shopping. Reducing the price of groceries, the amount of time spent shopping and the amount of gas spent, resulting in Canadians saving up money. However, after listening to the representatives of numerous companies during the opening ceremony, we realized that we needed a project that would catch the eyes of the judges, those representatives that could very well invest on ideas (30 days following the hackathon). It was at this moment that we came up with the idea of creating an online platform which prioritizes the local Canadian businesses over known franchises.

What it does

This project serves to promote small local Canadian businesses which, due to the lack of budget, advertising and many other important factors, could be on the verge of bankruptcy. Unfortunately, many of these businesses lost the possible potential that could have been exploited for the sake of bettering the Canadian economy, creating jobs for many Canadian employees, were the businesses to eventually succeed.

How we built it

This project has different parts in terms of coding. First part: We tried to find data from actual local businesses in Canada. That's why we started with Ontario and visited the Ontario Business Registry. Unfortunately, we couldn't find a list of businesses without having access to their respective Ontario Corporation Number (OCN). That's why we decided to create two fictional stores with fictional descriptions. We used SQL (Structured Query Language) with MySQL to design and also manage the structured database that stores businesses, products, and orders for the platform. This would let our backend easily query and get information for the website built with Python and React. Second part: Developing the backend required using Flask for the website utilizing app routing auth0 authentication capabilities through this framework, and pipelining database with backend / frontend, json file management for permanent settings storage. Third part: Developing frontend ui required the use of React, Antigravity and Swift.

Challenges we ran into

After having acquired the idea, we needed to develop it into something viable. We needed to create an algorithm to visualize the functionality of our idea. Initially, the basic idea was that the customer finds the QR code of said store on the website without needing to sign up and gets transferred to the App Clip. The customer selects the items that they want to purchase and uses their banking information in order to buy the said item. However, since we don't have data protection protocols yet, we thought long and hard in order to solve that problem. We came up with the idea that the customer can select the desired item and reserve it for a duration of time. Unfortunately, then there was the problem that there could be users who could exploit this system and book the items and just refuse to get it and pay for it. There was also this problem that a physical customer can come and buy eight of the nine cigarette packs and the store owner may just forget to update the system. Then, if there is a customer using our platform deciding to select two cigarette packs, there may be a problem of miscommunication. We finally decided to adapt this solution: the customer selects the item and decides to reserve it. The store owner has a maximum of two minutes to verify if the reserved amount of items are available then has to confirm or reject the reservation. That way, there wouldn't be any miscommunication issues. For the other problem, our solution is that upon confirmation from the owner's part, there's a random number assigned to the customer with which the customer has to go within 4 hours after confirmation, show the number, and purchase it. At the end, however, in our demo, we used the apple pay but in our code, we do have the ability to store the verification number with the help of SQL.

Accomplishments that we're proud of

We, as a team, are really proud that we were able to think, and develop to an extent in a short amount of time, a marketplace where Canadians can discover and support small local businesses across our country. After acquiring the idea, as mentioned, we spent hours talking about algorithms and which one could be the most ideal one in our case. We are proud of the algorithms we came up with.

What we learned

We learned the application side of SQL and how we could store data and to connect it with the frontend. We learned through this experience, how in one single project, different usage of coding languages could interact with each other. We also learned how to use Flask and about database integration.

What's next for CanaLocal

Since we couldn't gather actual data from actual local businesses, we want to be able to do that in order to actually help the local businesses to thrive. We also even thought of introducing an awards system for the customers to shop for the local stores next to them by enticing them with discounts. For example, if you shop on your local store, you can get a discount of 20%. With the growth of our project, we could introduce more filters and connect the local communities in order to grow the community.

Built With

Share this project:

Updates