Drupal has 7 main advantages:
1) It's a bit like lego blocks, which makes it very flexible.
Drupal has a system of "modules" which you can add to your site to create new functions.
For example, the Commerce module lets you add shopping functions, the Membership module lets you do member based services, while the Video modules lets you host video clips.
Each of these modules are made up of small modules themselves, which ensures you only turn on the bits of the functions you need.
Better yet, you can mix and match the modules to produce things the original creators might have never thought of. For example, combine the Commerce, Membership and Video modules and you could create a paid for membership site of training videos.
2) It's very layered.
In Drupal, all the system code is in one layer, code to do with appearance (e.g. CSS, HTML) is another layer and custom modifications go in another layer.
This makes it very easy to change things. For example, you can change the entire layout of your site without having to modify the original content to adapt to it.
3) It's free
Remarkably, the core technology and all these modules are available for free. There are some themes that you have to pay for if you want to change the look of your site, but you can make your own themes and there are number of free themes as well.
4) Great user support
Drupal has a network of dedicated and helpful users who are willing to provide plenty of free help and support. There's also a good selection of free training videos on YouTube.
5) Plenty of updates
Drupal releases minor updates on a monthly basis which address any of bugs or security concerns that crop up. There are also major updates every 2-3 years, which radically change the functionality of the core system.
6) Portable code
Most code can easily be transferred between sites. So if you create a function on one site, you can move it to another without having to re-do it all from scratch.
7) Don’t need strong coding skills
Because Drupal has a module system, you can easily do quite a lot without needing to know how to code. It might not look and function exactly as you want, but it will be a decent effort.
Drupal has 2 main set backs:
1) It can get very complicated
The down side of all the flexibility, is that there are often 10 ways to do one thing in Drupal and it's not always clear which method is best. Often the only way you can find out is through experience. Which means your early Drupal projects might not be as good as they could be, as you cut your teeth on learning which methods are best for you.
2) Your code won’t last forever.
Every 2-3 years, Drupal releases a new major update which radically changes the functionality of the site. The plus side of this is that it makes Drupal better. The downside is that you will often have to completely re-write your custom code. Because these major updates change everything, you will often need to install new modules to replace old ones. Essentially you have to rebuild your site (thankfully all the content can be transferred over).
Upgrading isn't a requirement. But after a couple of years, the older versions of Drupal are no longer supported. So if building a Drupal site, expect to replace it in 3-5 years.
I have used Drupal to make several websites including:
A membership website people where can book appointments for swimming lessons with their children. After they have taken the lesson, the web site will let them download a video of their session. When they complete all the lessons, the web site will let them access a certifcate.
A karate website people where can purchase video downloads or DVDs of karate lessons
Severeal blogs that have community features such as forums, updates by email, plus automatically publishing of articles to social media
An design agency website which contains a catalogue of products and servcies.
All of these projects contain advance features. Producing these manually would have been very expensive and cost lost of time. But with Druapl, I was able to turn around the projects quickly and for a low cost.