To the experts, is it designed by following the MVC approach or is it just procedural programming that separates logic and views?
I'm not an expert, but apparently it's supposed to be applying MVC. I think the idea behind MVC is dividing the website/web application into 3 interconnected parts.
- The model (e.g., the database)
- The view (e.g., the files under templates)
- The controller (e.g., the files under public)
And the reason behind this, as this article suggests, is to separate internal representations of information from the ways that information is presented to or accepted from the user.
As you can see in the image above, the user sees the view (e.g., the files under templates) and uses the controller (e.g., the files under public) which manipulates the database which in turn gets the view updated.
You may check out this article for more details!
Hope that helps!