Inspiration
Sometimes, knowing what we want can be quite complicated, this is why we have built an application for fans of motorcycles in which they explore all the bikes that are for sale in Mundimoto, at the same time that the user is saving their favorite bikes by making a swipe to the right, the application is learning the tastes of the user to show him the most relevant bikes.
What it does
The application allows users to explore Mundimoto motorcycles in a very pleasant and comfortable way, while the application learns the user's preferences. The app not only learns the user preferences by looking at which bikes are saved and which bikes he did not. We measure the time it takes for the user to make a decision, to modify the user's preference parameters. Since it is not the same that you get a bike, and you have to look at it for a while to discard it, or that it is a no instantly.
How we built it
Backend
To make the Rest API we used the Django framework with Nginx and Gunicorn hosted on an EC2 on AWS. We also used a MySQL database in RDS, which contains the data [name, brand, year, kilometers, cc, type, license, price with and without discount, and the URL of the bike in Mundimoto] of all the 1126 motorbikes that Mundimoto has on its website. Apart from this data, we also have in Django a File Server with a photo of each of the motorcycles.
Although the people of Mundimoto offered us a database with some fake motorcycles, we considered that we did not have enough resources needed, since many fields were missing and it did not contain a photo of any motorcycle, something we considered necessary to be able to build our application. This is why we made a web scraper to get the data we wanted.
Here you can view the RestAPI Swagger.
Client
As our client, we developed a web app using the ReactJS framework. So the code mainly consists of JavaScript, JSX and SCSS. With this client, we allow the user to interact with the Django Rest API from the backend easily and interactively. We’ve also deployed the web app to Netlify as a PWA (Progressive Web App), this way anyone can enter our app URL and download a desktop shortcut to it.
Challenges we ran into
Modeling the AI that handles making recommendations was a struggle, to the point that we build it again from the ground up in the last hours of the hackathon.
Accomplishments that we're proud of
We believe we have succeeded in developing a beautiful application with an intuitive UI, linked with a robust backend. We are very happy with the AI. It's a lot of fun to save the most expensive bikes for example, and see how each time the system learns from your preferences and shows you more expensive bikes.
Building the scrapper was also quite fun, seeing how the 1000+ photos and all the motorcycles data was downloading was quite entertaining. Founding weird things, like an ad for a 27.000 c.c. motorcycle , that made our averages go crazy :’)
What we learned
We learned to serve a Django server via HTTPS, and we managed to deploy our app, so it can be tested from any phone or PC.
What's next for Scoot
We thought of many more features for it, but sadly we were limited in time. We would like to sort your list according to your preferences. And thinking bigger picture, we could use the preferences we learned from all our users to accordingly change prices and adjust the price to match supply and demand.
Built With
- amazon-web-services
- beautiful-soup
- django
- ec2
- gunicorn
- javascript
- jsx
- mysql
- neomorphism
- netlify
- nginx
- pwa
- python
- rds
- react
- restapi
- scss
- selenium
Log in or sign up for Devpost to join the conversation.