Laravel applications follow the Model-View-Controller architecture design pattern.
Models represent the entities in the database and help you to query the database and return the data
Views are the pages that will be displayed when accessed the app. View Component is used for the User Interface of the application.
Controllers handle user requests, gets required data from the models and pass them to the Views. Controllers acts as an intermediary between Model and View Components to process the business logic and incoming request.
App: This directory is the meat of the application and contains the core code.
Console: This directory contains all the custom Artisan commands created using.
Exceptions: This directory contains the application’s exception handler and is a good place to add custom exception classes to handle different exceptions thrown by your application.
Http: This directory contains all your controllers, middleware and requests.
Providers: This directory contains all your service providers for the application.
Bootstrap: This directory contains framework bootstrap as well as configuration files. It also contains Cache directory which contains framework generated cache files
Config: This directory contains all your application’s configuration files.
Database: This directory contains all database migrations and seeds. You can also store the SQLite database file here.
Public: This directory contains assets like images, js files, and CSS.
Resources: This directory contains all view files and LESS or SASS files. It also contains lang directory to store language files.
Routes: This directory contains all routes definitions for the application. php is the file that receives all the requests to yours. application and here you can redirect (welcome.blade.php)the requests to their respective controller methods.
Storage: This directory contains blade templates, session files, cache files and others.
Tests: This directory contains all the test files.
Vendor: This directory contains all the composer dependencies.