A modern Content Management System built with Laravel, featuring a RESTful API for Flutter integration.
- β Categories Management - Full CRUD for content categories
- β Posts Management - Complete blog post management system
- β User Management - User authentication and management
- β Modern UI - Beautiful gradient design with smooth animations
- β Responsive Layout - Works on all devices
- β Categories API - CRUD operations for categories
- β Posts API - Full post management with filtering & pagination
- β JSON Responses - Consistent response format
- β CORS Enabled - Ready for cross-origin requests
- β Error Handling - Comprehensive error responses
- β Relationships - Eager loading for optimal performance
- π Filtering - Filter by status, category, search
- π Pagination - Customizable pagination
- π Sorting - Sort by any field, asc/desc
- π Statistics - Posts count, categories count
- π Relationships - Auto-load user & category data
- Framework: Laravel 11.x
- Database: MySQL
- Server: Nginx (Laragon)
- Frontend: Blade Templates + Custom CSS
- API: RESTful JSON API
- PHP >= 8.2
- Composer
- MySQL
- Laragon (or Nginx/Apache)
- Git
git clone https://github.com/krissphi/folio-cms-laravel.git
cd folio-cms-laravelcomposer installcp .env.example .env
php artisan key:generateUpdate .env file:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_folio_cms
DB_USERNAME=root
DB_PASSWORD=php artisan migrate --seedphp artisan storage:linkOption 1: Using Laragon
- Start Laragon
- Access:
http://folio-cms.test
Option 2: PHP Built-in Server (For Mobile Testing)
php artisan serve --host=0.0.0.0 --port=8000Access: http://localhost:8000 or http://192.168.x.x:8000
http://folio-cms.test/api/v1
GET /api/v1/categories - Get all categories
GET /api/v1/categories/{id} - Get single category
POST /api/v1/categories - Create category
PUT /api/v1/categories/{id} - Update category
DELETE /api/v1/categories/{id} - Delete category
GET /api/v1/posts - Get all posts
GET /api/v1/posts/{id} - Get single post
POST /api/v1/posts - Create post
PUT /api/v1/posts/{id} - Update post
DELETE /api/v1/posts/{id} - Delete post
?status=published - Filter by status
?category_id=1 - Filter by category
?search=keyword - Search by title
?sort_by=created_at - Sort field
?sort_order=desc - Sort order
?per_page=10 - Items per page
?page=1 - Page number
{
"success": true,
"message": "Posts retrieved successfully",
"data": [...],
"pagination": {
"total": 50,
"per_page": 10,
"current_page": 1,
"last_page": 5
}
}- API_DOCUMENTATION.md - Complete API documentation
- FLUTTER_INTEGRATION.dart - Flutter code examples & models
- QUICK_START.md - Quick start guide
- MOBILE_TESTING.md - Mobile testing guide
- FIX_403_FORBIDDEN.md - Troubleshooting 403 errors
# Health check
curl http://folio-cms.test/api/health
# Get categories
curl http://folio-cms.test/api/v1/categories
# Get posts
curl http://folio-cms.test/api/v1/postshttp://folio-cms.test - Home
http://folio-cms.test/posts - Posts Management
http://folio-cms.test/categories - Categories Management
dependencies:
http: ^1.1.0class ApiConfig {
static const String baseUrl = 'http://192.168.0.3:8000/api/v1';
}Complete Flutter integration code available in FLUTTER_INTEGRATION.dart
folio-cms/
βββ app/
β βββ Http/Controllers/
β β βββ Api/
β β β βββ CategoryApiController.php
β β β βββ PostApiController.php
β β βββ CategoryController.php
β β βββ PostController.php
β βββ Models/
β βββ Category.php
β βββ Post.php
β βββ User.php
βββ database/
β βββ factories/
β βββ migrations/
β βββ seeders/
βββ resources/views/
β βββ categories/
β βββ posts/
βββ routes/
β βββ api.php
β βββ web.php
βββ config/
βββ cors.php
Use PHP built-in server:
php artisan serve --host=0.0.0.0 --port=8000Then access via IP: http://192.168.x.x:8000/api/v1/posts
See FIX_403_FORBIDDEN.md for details.
The Laravel framework is open-sourced software licensed under the MIT license.
krissphi
- GitHub: @krissphi
Built with β€οΈ using Laravel