paint-brush
Startup 3: Week 3–blitzkrieg Programmingby@elijahmurray
494 reads
494 reads

Startup 3: Week 3–blitzkrieg Programming

by Elijah MurrayApril 27th, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

<em>4 Weeks to Launch is an ongoing series about building passive income across multiple startups — a new </em><a href="https://hackernoon.com/tagged/startup" target="_blank"><em>startup</em></a><em> every 4 weeks. Read the</em><a href="http://4weekstolaunch.com/4-weeks-to-launchlaunch/" target="_blank"><em> first post on 4 Weeks to Launch</em></a><em> to get started, or </em><a href="http://4weekstolaunch.com/newsletter/" target="_blank"><em>subscribe for weekly updates</em></a><em>. Startup #3 is Hotel Tonight for weeklong vacation rentals.</em>

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Startup 3: Week 3–blitzkrieg Programming
Elijah Murray HackerNoon profile picture

I built a web scraper, database, and half a mobile app last week. Here’s how.

4 Weeks to Launch is an ongoing series about building passive income across multiple startups — a new startup every 4 weeks. Read the first post on 4 Weeks to Launch to get started, or subscribe for weekly updates. Startup #3 is Hotel Tonight for weeklong vacation rentals.

Phew! What a week! Lots of updates.

The web scraper is done. I learned how to use a scraping tool (and new programming language) to get it done, but am quite pleased with the results. It crawls the website and pulls all listings location, name, description and images and saves them in a readable format.

The language I learned to do this was python. I used python because according to Google, it’s the best language for scraping websites. Go figure. Also BeautifulSoup is the best library for scraping, so learned that too.

I followed this fantastic tutorial from dataquest.io. Even if you have no programming experience, you could follow this, though you would still need to setup python first. First I scraped 1 page for all the URLs of each listing. Then the scraper loops through each listing and extras the info I need. This rough cut took me about 3 hours to build, but then I needed to format my content as JSON, remove extra spaces, blank images etc. It took me 2 hours to clean up the data. Here’s the finished product.

Sign up for mailing list if you want to these weekly updates in your inbox. Promise, no spam, only posts.

Now it was time to build my first mobile app. I’ve dabbled with Objective-C before, but building a native app is very time consuming typically and not my forte. Luckily there are some frameworks which allows you to do web dev and compile it into both native Android and iOS apps. Helluva a time savings!

Ionic is one of the most popular frameworks for this. You build web pages (HTML, CSS and JS) and then click a button to turn it into a mobile app. If you have basic web development skills, you can probably figure out how to build an app.

That being said it took me a lot of time to get up and running with the framework. Lots to learn. I spent a few hours reading and watching amazing YouTubes by Traversy Media (60 min Angular intro, 60 min Ionic Intro) and have 2.5 of the pages done. Probably 5 hours learning, 10 hours building and 3 hours hooking up my JSON data to my app.

If you’re learning a new tool, don’t focus too much on using the tool the right way. I wasted time trying to learn how to do things “the Ionic way” instead of just writing Javascript and CSS to do whatever I needed. The rest of the app should go more quickly without focusing on learning and more focus on doing.

I always start with the hardest thing first, so the rest of the work needed shouldn’t be as bad as what I’ve done so far. To start I’ll launch the app with very minimal functionality. It will show the vacation homes and allow you to request a booking. Ideally we have payment built in but I’m skipping this for now. I can always bill people on PayPal and build it later.

I expect another 15 hours required to build out the pages and make everything pretty. Then time to ship it! Nick has been working on the backend infrastructure but hell, we may just use Dropbox as our hosting and run the script daily manually to update the data. MVP, right? ;)

Key takeaways:

  • Leverage what you know over “the right way of doing things”
  • If you can skip steps, do. Nothing matters until people like what you’ve built. You can always go back and add more features.
  • If you’re not technical, then don’t try to be technical.
  • If you want a mobile app go with Ionic or RubyMotion. It’s cheaper, faster, and you get iOS and Android at the same time.
  • Don’t waste time building infrastructure if you don’t need it. You can manually update your database and store it on Dropbox for free. Get scrappy.

Thanks for reading,

Elijah

PS. Big shout out to my mom for all the support. She emails me her thoughts every week after I do a writeup!

PPS. Seriously, sign up for mailing list.

Scraper demo video

Mobile app work-in-progress (shown below)