How muhammadhaffad/starter-kit-mui-inertia works
This is a Laravel/Inertia back-office application with authentication and administration of users, roles, permissions, and navigation menus. The main workflow is a browser request entering Laravel, reaching a route/controller, invoking domain services or models, and returning an Inertia page to the React client. Controller and service behavior is sampled for authentication, users, and menus; role and permission management is represented from the repository tree, so their internal wiring is not asserted.
Main entry points: app.jsx Inertia page renderer · web.php Web routes · AuthController.php Auth controller · UserController.php User controller
Components 28
Request runtime
- HTTP entry
public/index.php - App bootstrap
bootstrap/app.php - HTTP kernel
app/Http/Kernel.php - Route provider
app/Providers/RouteServiceProvider.php - Web routes
routes/web.php
Identity and access
- Auth controller
app/Http/Controllers/AuthController.php - Auth service
app/Services/AuthService.php - User controller
app/Http/Controllers/UserController.php - User service
app/Services/UserService.php - User model
app/Models/User.php
Administration
- Role controller
app/Http/Controllers/RoleController.php - Role service
app/Services/RoleService.php - Role model
app/Models/Role.php - Permission controller
app/Http/Controllers/PermissionController.php - Permission service
app/Services/PermissionService.php - Permission model
app/Models/Permission.php - Menu controller
app/Http/Controllers/MenuController.php - Menu service
app/Services/MenuService.php - Menu model
app/Models/Menu.php - Application database
config/database.php
Web client
- Inertia page renderer
resources/js/app.jsx - App layout
resources/js/component/app-layout.jsx - Sign-in and signup
resources/js/pages/public/signin.jsx - User screens
resources/js/pages/users/index.jsx - Role screens
resources/js/pages/roles/index.jsx - Permission screens
resources/js/pages/permissions/index.jsx - Menu screens
resources/js/pages/menus/index.jsx
Other components
- Browser user
Connections 36
- Browser user → HTTP entry: sends request
- HTTP entry → App bootstrap: starts app
- HTTP entry → HTTP kernel: dispatches request
- Route provider → Web routes: loads routes
- Web routes → Auth controller: routes auth
- Web routes → User controller: routes users
- Web routes → Role controller: routes roles
- Web routes → Permission controller: routes permissions
- Web routes → Menu controller: routes menus
- Auth controller → Auth service: calls auth
- Auth controller → User service: creates account
- Auth service → User model: authenticates
- User controller → User service: manages users
- User controller → Role model: reads roles
- User service → User model: updates users
- Role controller → Role service: manages roles
- Role service → Role model: uses role data
- Permission controller → Permission service: manages permissions
- Permission service → Permission model: uses permission data
- Menu controller → Menu service: manages menus
- Menu controller → Permission model: reads permissions
- Menu service → Menu model: uses menu data
- User model → Application database: persists data
- Role model → Application database: persists data
- Permission model → Application database: persists data
- Menu model → Application database: persists data
- Auth controller → Inertia page renderer: renders pages
- User controller → Inertia page renderer: renders pages
- Menu controller → Inertia page renderer: renders pages
- Inertia page renderer → Sign-in and signup: resolves page
- Inertia page renderer → App layout: wraps private pages
- Inertia page renderer → User screens: resolves page
- Inertia page renderer → Role screens: resolves page
- Inertia page renderer → Permission screens: resolves page
- Inertia page renderer → Menu screens: resolves page
- Inertia page renderer → Browser user: renders response