All Projects → kyle8998 → Optbnb

kyle8998 / Optbnb

Licence: MIT License
Optimize and compare your Airbnb listing at a click of a button!

Programming Languages

Jupyter Notebook
11667 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Optbnb

open-data-anonimizer
Python Data Anonymization & Masking Library For Data Science Tasks
Stars: ✭ 36 (+157.14%)
Mutual labels:  pandas
python-programming-for-data-science
Content from the University of British Columbia's Master of Data Science course DSCI 511.
Stars: ✭ 29 (+107.14%)
Mutual labels:  pandas
support-tickets-classification
This case study shows how to create a model for text analysis and classification and deploy it as a web service in Azure cloud in order to automatically classify support tickets. This project is a proof of concept made by Microsoft (Commercial Software Engineering team) in collaboration with Endava http://endava.com/en
Stars: ✭ 142 (+914.29%)
Mutual labels:  pandas
pandas-stubs
Pandas type stubs. Helps you type-check your code.
Stars: ✭ 84 (+500%)
Mutual labels:  pandas
Python-Data-Wrangling
D-Lab's 3 hour introduction to data wrangling in Python. Learn how to import and manipulate dataframes using pandas in Python.
Stars: ✭ 41 (+192.86%)
Mutual labels:  pandas
data-analysis-using-python
Data Analysis Using Python: A Beginner’s Guide Featuring NYC Open Data
Stars: ✭ 81 (+478.57%)
Mutual labels:  pandas
Arch-Data-Science
Archlinux PKGBUILDs for Data Science, Machine Learning, Deep Learning, NLP and Computer Vision
Stars: ✭ 92 (+557.14%)
Mutual labels:  pandas
Nyxar
A Modular platform to perform advanced back-testing in today's 24/7 crypto-currency market
Stars: ✭ 14 (+0%)
Mutual labels:  pandas
Data-Analyst-Nanodegree
Kai Sheng Teh - Udacity Data Analyst Nanodegree
Stars: ✭ 42 (+200%)
Mutual labels:  pandas
The-Data-Visualization-Workshop
A New, Interactive Approach to Learning Data Visualization
Stars: ✭ 59 (+321.43%)
Mutual labels:  pandas
AlphaVantageAPI
An Opinionated AlphaVantage API Wrapper in Python 3.9. Compatible with Pandas TA (pip install pandas_ta). Get your FREE API Key at https://www.alphavantage.co/support/
Stars: ✭ 77 (+450%)
Mutual labels:  pandas
datahub
DataHub - Synthetic data library
Stars: ✭ 66 (+371.43%)
Mutual labels:  pandas
visions
Type System for Data Analysis in Python
Stars: ✭ 136 (+871.43%)
Mutual labels:  pandas
sklearn-predict
机器学习数据,预测趋势并画图
Stars: ✭ 16 (+14.29%)
Mutual labels:  pandas
cakephpvue-spa
A CakePHP + VueJS single page application skeleton/boilerplate.
Stars: ✭ 40 (+185.71%)
Mutual labels:  single-page-app
Dominando-Pandas
Este repositório está destinado ao processo de aprendizagem da biblioteca Pandas.
Stars: ✭ 22 (+57.14%)
Mutual labels:  pandas
jun
JUN - python pandas, plotly, seaborn support & dataframes manipulation over erlang
Stars: ✭ 21 (+50%)
Mutual labels:  pandas
SuperNNova
Open Source Photometric classification https://supernnova.readthedocs.io
Stars: ✭ 18 (+28.57%)
Mutual labels:  pandas
webpack-static-site-generator
A static site generator for Webpack
Stars: ✭ 14 (+0%)
Mutual labels:  single-page-app
Python-Matematica
Explorando aspectos fundamentais da matemática com Python e Jupyter
Stars: ✭ 41 (+192.86%)
Mutual labels:  pandas

Optbnb

Click here to access Optbnb!

Optimize and compare your Airbnb listing at a click of a button! Using real data, view the hottest trends and data in an exciting visual format.

Capital One Summit for Software Engineers Submission created by Kyle Lim.

Mindsumo Challenge Link


Technologies Used

Computations: Python with Pandas, NumPy, and Jupyter Notebook

Front End: Bootstrap 4, Bulma, jQuery, Gulp.js

Visualization: Chart.js, Google Maps API, Papa Parse

Backend: Node.js, Express, Socket.io


How to run locally

Dependencies

Node.js, Express, Socket.io

Run

Install Dependencies

npm Install

Run the server

node server

Access the page by going to localhost:3000


General Overview

While planning out my approach to this challenge, I split it up into three main categories to tackle. Computations, Visualization, and Functionality.

Computations and Analysis

I knew from the very beginning that I had to do something with the data before beginning to even think about the web application. I wanted to pick trends that were both interesting and unique. One would be a general overview of everything across the board, another would be an overview of all the neighbourhoods, and the last would be an overview of a specific neighbourhood.

Graph 1: Horizontal Bar Graph of the Average Price Based on Bedrooms in Each neighbourhood

Graph 2: Radar Graph of the 6 Review Values For Each neighbourhood

Graph 3: Line Graph of the Average Price Based on the Bed to Bathroom Ratio Overall

All computations were done before any visualization using Pandas and NumPy in Jupyter Notebook. View Computations Here

Front End Visualization

At this point I had my calculations, and I wanted to figure out a way to visualize my data. The one thing I really wanted to include was Google Maps because I believe location is the most important factor when finding a place to stay. I wanted the experience to be as smooth as possible so I decided to do a half and half design between the inputs and the map.

For my graphs I utilized Chart.js and Papa Parse to get my computations from my Pandas notebook. I wanted to make my charts interactive. I accomplished this by utilizing chart.js built in features and adding multiple graphs in one. I know that it would be a pretty bad visualization if you only looked at the data from one perspective so I added the interactive buttons to allow the user to change the scope and view different datasets. In the end this worked out perfectly as I was able to utilize sleek animations to generate new graphs.

The front end also included all of the text I added to explain my graphs. I went in and added enough text that would fit in beside the graph and give the website a nicer and detailed feel. I feel like this was the element that really made my website seem like a real website.

Back End Functionality

Functionality is the main component to the web application, and I had to think of a way to find this optimal price. At first I thought the only way to determine a price was to average out the listings in the neighbourhood, but I also wanted a way to optimize based on the radius of a certain listing. To get the best of both worlds I allow the user to input either a neighbourhood or coordinates. This way if the user only has the neighbourhood, the optimal price would be based on the neighbourhood. If the user uses coordinates, the optimal price would be based on all listings within ~1 mile away from the location.

For my Google Maps functionality, I wanted it to go to the location and create a marker when you optimize the price. To accomplish this I set a default coordinate value for each neighbourhood, so if the user only inputs a neighbourhood it will go to the center of the neighbourhood. If the user inputs coordinates, it will go directly to those coordinates and zoom in. I really wanted to highlight the neighbourhoods when zooming in, but due to the lack of time I decided just to set a center coordinate.

Additionally because the dataset only included San Francisco data, I did not want the user to enter coordinates that were not in San Francisco. To do this I set boundaries slightly around the edge of San Francisco, and if the user entered coordinates outside of the boundary, I would prompt them to enter coordinates in San Francisco.

Bonus Stuff

I didn't want to stop working once I just got the basic functionality done. I wanted to spice it up with something unique!

One interesting thing I thought of was a chat box. When I thought about this project I envisioned those websites that have live chat support, and I thought it would be a fun task to implement that. I wanted the user to be able to communicate with other hosts on the website in real time. Of course in reality the web app will most likely not be used my many people at once so it was just a fun task for me to do. I used socket.io to keep track of people connecting to the web app and used jquery functions to send their messages to everyone on the site.

Another fun thing I added was a custom logo. I originally just going to use the default Airbnb logo, but I wanted a look that was similar, but not identical. I designed something that kind of looked like the logo, but made it my own. I think the end result was great, and I'm glad I went with this option!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].