How moustafa-dj/vl-blog works
This is a Laravel/Vue blogging application. Users browse and search posts, view post details, register or log in, manage their posts and profile, and participate through comments. The backend exposes user API routes; controllers validate requests, delegate through repository contracts, and serialize responses. Posts are associated with categories, tags, comments, and users, with cover-file handling in the post repository. The source index documents the broader UI and domain areas, but excerpts do not establish all frontend-to-API calls or route mappings; those links are omitted or marked unverified.
Main entry points: index.php User API routes · index.js Client router · Contracts Repository contracts · PostController.php Post controller
Components 26
Vue client
- Vue app
resources/js/app.js - Client router
resources/js/router/index.js - Login and registration
resources/js/pages/auth - Post views and forms
resources/js/pages/views/Posts - Search view
resources/js/pages/views/Search.vue - Comment components
resources/js/components/Forms/Comment/CommentForm.vue - Profile view
resources/js/pages/views/Profile.vue
API and identity
- User API routes
routes/api/user/index.php - Auth routes
routes/api/user/auth.php - Authentication
app/Http/Controllers/Api/User/Auth
Content features
- Post controller
app/Http/Controllers/Api/User/PostController.php - Comment controller
app/Http/Controllers/Api/User/CommentController.php - Category controller
app/Http/Controllers/Api/User/CategoryController.php - Tag controller
app/Http/Controllers/Api/User/TagsController.php - Profile controller
app/Http/Controllers/Api/User/ProfileController.php - Post serialization
app/Http/Resources/PostResource.php - Comment serialization
app/Http/Resources/CommentResource.php - User serialization
app/Http/Resources/UserResource.php
Domain and persistence
- Repositories
app/Repositories - Post repository
app/Repositories/PostRepository.php - Content models
app/Models - User model
app/Models/User.php
Shared services
- Repository contracts
app/Contracts - Cover file service
app/Services/FileUploadService.php
Other components
- User
- Relational database
Connections 29
- User → Vue app: uses
resources/js/app.js - Vue app → Client router: installs
resources/js/app.js - Vue app → User API routes: requests
- Client router → Login and registration: routes to
- Client router → Post views and forms: routes to
- Client router → Search view: routes to
- Client router → Profile view: routes to
- Post views and forms → Comment components: uses
- User API routes → Auth routes: registers
- Auth routes → Authentication: routes to
routes/api/user/auth.php - User API routes → Post controller: routes to
- User API routes → Comment controller: routes to
- User API routes → Category controller: routes to
- User API routes → Tag controller: routes to
- User API routes → Profile controller: routes to
- Post controller → Repository contracts: delegates to
app/Http/Controllers/Api/User/PostController.php - Authentication → Repository contracts: delegates to
app/Http/Controllers/Api/User/Auth/LoginController.php - Profile controller → Repository contracts: delegates to
app/Http/Controllers/Api/User/ProfileController.php - Comment controller → Repository contracts: delegates to
app/Http/Controllers/Api/User/CommentController.php - Repository contracts → Repositories: bound to
app/Providers/RepositoryProvider.php - Repositories → Post repository: includes
app/Repositories/PostRepository.php - Post controller → Post serialization: serializes with
app/Http/Controllers/Api/User/PostController.php - Authentication → User serialization: serializes with
app/Http/Controllers/Api/User/Auth/LoginController.php - Post controller → Comment serialization: serializes with
- Post repository → Cover file service: uploads cover
app/Repositories/PostRepository.php - Post repository → Content models: persists through
app/Repositories/PostRepository.php - Post repository → Relational database: reads and writes
- Content models → Relational database: persist in
- User model → Content models: relates to
app/Models/User.php