Hacker News new | ask | show | jobs
by maxwelldone 1164 days ago
Thank you!

The way it works is very simple. I'm copying from a comment I made earlier:

Everyday IMDb publishes bare bones datasets at https://www.imdb.com/interfaces/. I've a bash script to download them, format and load into MySQL from which I export two types of json files:

1) A file with all the TV shows names, id, ratings etc (shows.json) - this is what's used for search. It weighs < 700KB compressed (I could certainly optimize this file but I've stashed it for later).

2) A file for every tv show with all the ratings and votes for its episodes. Based on your search, the specific file will be fetched to display the ratings. (This one file per show could also be optimized but looks premature at this stage.)

Strictly speaking, a database is also not necessary but it serves 2 purposes: 1) I could easily query to satisfy some curious show related questions. 2) The datasets include a ton of stale data (like shows w/o episodes and vice versa), so I find it easier to cleanup through SQL.

The above architecture allows me to host the site as a static site. When I launched, I had a typical node backend that connected to a db to run searches etc. But thought it was way too much infrastructure for a simple site!

Glad to hear you have a concrete goal. Front-end is actually easy to pick up if you don't get carried away by the latest thing on the block. IMO, it's pretty mature nowadays and I prefer the tools available now over the ones I had when I started way back.

If you've no front-end experience, just pick framework like Vue or React and start building stuff. If you've the time, I'd even advice you to start with vanilla JS, HTML & CSS (https://developer.mozilla.org/en-US/ should be your bible). It will not only set you up with a solid foundation but let you appreciate the conveniences & conventions when you pick up a framework. There's tons of tutorials available for pretty much anything web related. Good luck!

1 comments

Thank you so much for the detailed explanation and pointers to resources. I am very excited to get started from this.

Thank you again!