There are two ways to solve problems when building a website. One is to find a specific tool for each problem. The other is to find and thoroughly understand how to use just a few very powerful, very general tools.
When building a site using Drupal, you can go either route ("there's a module for that").
I prefer the second option, because it lets you invent instead of just employ solutions, so here is a list of four tools that can solve 90 percent of your problems.