Highest Rated Comments

ctrtanc14 karma

As a professional web developer, I can speak to this a bit, just looking through the site. All the below being said, I don't want to discount how impressive this site is! I've done projects like this and they're (1) not easy and (2) very fulfilling when you get them up and running. I learned all my web skills through personal projects like this, but not typically on this kind of scale. Diving in to a personal project that you feel passionate about and looking up tutorials really is an excellent way to learn.

tl;dr: The site is a pretty decent project for a beginner if you do it in small sections. The front end will be more simple than the back end. The most difficult part is the algorithms for actually analyzing the data accurately.

When it comes to the front-end of the site itself, it's not too difficult:

  • There's not a lot of animations, nor really complex designs. It doesn't appear that any professional designer was involved, which will typically make the coding more difficult, but will give you more polish on the final product. The general UI of the site just uses Bootstrap. Their system is quite good, and has some built in dynamic site stuff that allows for both mobile and desktop viewing.
  • There's embedded YouTube videos, which you get by basically just copy and pasting embed code generated by YouTube.
  • He's integrated the Disqus comment system on some of the pages, also not too difficult to put in.
  • He's integrated with Google Analytics as well, not too difficult.
  • Looks like there's a bit of cookie management, in the form of rm-first-time-modal-welcome. This manages the pop-up that occurs when you first visit the site, and is saved when you press "I understand and agree". Seems like it may also have something to do with the slide-up modal for watching the YouTube video. Pretty easy to set that sort of thing up.
  • Also looks like there's maybe some code in there to enable push notifications, but I haven't seen where that actually gets triggered. Setting up push notifications can be a little tricky for a beginner.

Basically, the front-end of the site is something that is a pretty realistic project for a beginner. That being said, if you're really starting out, it's going to take you a few months and won't be easy.

The back-end of the site is the more difficult thing, depending on what part of it we're talking about. I'll split it up:

  • Web scraping: When you paste in the url, the url is likely accessed by a web scraper to pull the reviews for a given product. This is tedious to set up, but definitely not too difficult of a task even for a beginner with basic HTML and JS knowledge.
  • Hosting: I'm not seeing any sort of "Powered by xyz" or anything at the bottom of the page, so there's no quick clues here on how the hosting is set up. It's likely AWS at some point, because a lot of resources are being requested from d1kmhjlvxp8o6o.cloudfront.net, which is an AWS service. I'm going to guess that either he's using a service that's backed by AWS, or he's using Amazon Lightsail, or he's gone through the trouble to set it all up through a load balancer and everything manually. Not that difficult, but it's not an easy thing to get set up properly for a beginner. If you were to try this, I'd go with Lightsail. Seems to be pretty straightforward to use, even for a beginner. If you want really beginner stuff, go with something like Wix or Squarespace.
  • Database: This is definitely a more difficult part. From what's been said, it seems that the scraped reviews are stored for analysis. With the sheer volume of reviews, this is a decent task. Might be Postgres, might be DynamoDB, not too sure. But it is a good amount of data to deal with. To begin with, not too difficult to set up, but the difficulty with databases comes as the product scales and as use cases vary. Knowing how to index the data properly and access it efficiently can be tricky. Setting up, not too hard for a beginner, maintaining as the user base increases, definitely a more difficult thing for a beginner.
  • Algorithms: This is probably the most complex part of the entire site. Figuring out how to accurately analyze the data that you scrape and present useful, truthful, accurate data to the user is no easy task. This is where you'll (likely) use a combination of database tables and back-end code, but you can do it all through just the back-end code. If you're using SQL, you can create tables that join data in different ways (I'm not an expert in this) to basically perform some pre-code data transformations. Then in the code, you do your final analysis of everything and send the final data to the front-end for display. Due to the complexity of the algorithms, this is likely going to be a more intermediate level task than a beginner task, although less complex algorithms can definitely be used.

Hopefully this helps! Also, I'd be interested to know how accurate this is u/ReviewMeta :)