Initial commit of the Asset Management System, including project structure, Docker configuration, database migrations, and core application files. Added user authentication, asset management features, and basic UI components.
This commit is contained in:
123
config/routes.php
Normal file
123
config/routes.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
/**
|
||||
* Application Routes
|
||||
*/
|
||||
|
||||
use App\Core\Router;
|
||||
use App\Controllers\AuthController;
|
||||
use App\Controllers\DashboardController;
|
||||
use App\Controllers\AssetController;
|
||||
use App\Controllers\InventoryController;
|
||||
use App\Controllers\ReportController;
|
||||
use App\Controllers\UserController;
|
||||
use App\Controllers\CategoryController;
|
||||
use App\Controllers\LocationController;
|
||||
use App\Controllers\DepartmentController;
|
||||
use App\Controllers\FileController;
|
||||
use App\Controllers\ExportController;
|
||||
use App\Controllers\ImportController;
|
||||
|
||||
$router = Router::getInstance();
|
||||
|
||||
// Authentication routes
|
||||
$router->get('/login', [AuthController::class, 'showLogin']);
|
||||
$router->post('/login', [AuthController::class, 'login']);
|
||||
$router->post('/logout', [AuthController::class, 'logout']);
|
||||
$router->get('/password/forgot', [AuthController::class, 'showForgotPassword']);
|
||||
$router->post('/password/forgot', [AuthController::class, 'forgotPassword']);
|
||||
$router->get('/password/reset', [AuthController::class, 'showResetPassword']);
|
||||
$router->post('/password/reset', [AuthController::class, 'resetPassword']);
|
||||
|
||||
// Protected routes (require authentication)
|
||||
$router->group(['middleware' => 'auth'], function($router) {
|
||||
// Dashboard
|
||||
$router->get('/', [DashboardController::class, 'index']);
|
||||
$router->get('/dashboard', [DashboardController::class, 'index']);
|
||||
|
||||
// Assets
|
||||
$router->get('/assets', [AssetController::class, 'index']);
|
||||
$router->get('/assets/create', [AssetController::class, 'create']);
|
||||
$router->post('/assets', [AssetController::class, 'store']);
|
||||
$router->get('/assets/{id}', [AssetController::class, 'show']);
|
||||
$router->get('/assets/{id}/edit', [AssetController::class, 'edit']);
|
||||
$router->post('/assets/{id}', [AssetController::class, 'update']);
|
||||
$router->post('/assets/{id}/delete', [AssetController::class, 'delete']);
|
||||
$router->post('/assets/{id}/assign', [AssetController::class, 'assign']);
|
||||
$router->post('/assets/{id}/checkout', [AssetController::class, 'checkout']);
|
||||
$router->post('/assets/{id}/checkin', [AssetController::class, 'checkin']);
|
||||
|
||||
// Asset files
|
||||
$router->post('/assets/{id}/files', [FileController::class, 'upload']);
|
||||
$router->get('/files/{id}/download', [FileController::class, 'download']);
|
||||
$router->post('/files/{id}/delete', [FileController::class, 'delete']);
|
||||
|
||||
// Inventory
|
||||
$router->get('/inventories', [InventoryController::class, 'index']);
|
||||
$router->get('/inventories/create', [InventoryController::class, 'create']);
|
||||
$router->post('/inventories', [InventoryController::class, 'store']);
|
||||
$router->get('/inventories/{id}', [InventoryController::class, 'show']);
|
||||
$router->post('/inventories/{id}/close', [InventoryController::class, 'close']);
|
||||
$router->post('/inventories/{id}/scan', [InventoryController::class, 'scan']);
|
||||
$router->get('/inventories/{id}/report', [InventoryController::class, 'report']);
|
||||
|
||||
// Reports
|
||||
$router->get('/reports', [ReportController::class, 'index']);
|
||||
$router->get('/reports/assets', [ReportController::class, 'assets']);
|
||||
$router->get('/reports/warranty', [ReportController::class, 'warranty']);
|
||||
$router->get('/reports/retired', [ReportController::class, 'retired']);
|
||||
$router->get('/reports/location', [ReportController::class, 'location']);
|
||||
$router->get('/reports/category', [ReportController::class, 'category']);
|
||||
|
||||
// Exports
|
||||
$router->get('/exports/csv', [ExportController::class, 'csv']);
|
||||
$router->get('/exports/xlsx', [ExportController::class, 'xlsx']);
|
||||
$router->get('/exports/labels', [ExportController::class, 'labels']);
|
||||
|
||||
// Imports
|
||||
$router->get('/imports/csv', [ImportController::class, 'show']);
|
||||
$router->post('/imports/csv', [ImportController::class, 'import']);
|
||||
|
||||
// Master data
|
||||
$router->get('/categories', [CategoryController::class, 'index']);
|
||||
$router->get('/categories/create', [CategoryController::class, 'create']);
|
||||
$router->post('/categories', [CategoryController::class, 'store']);
|
||||
$router->get('/categories/{id}/edit', [CategoryController::class, 'edit']);
|
||||
$router->post('/categories/{id}', [CategoryController::class, 'update']);
|
||||
$router->post('/categories/{id}/delete', [CategoryController::class, 'delete']);
|
||||
|
||||
$router->get('/locations', [LocationController::class, 'index']);
|
||||
$router->get('/locations/create', [LocationController::class, 'create']);
|
||||
$router->post('/locations', [LocationController::class, 'store']);
|
||||
$router->get('/locations/{id}/edit', [LocationController::class, 'edit']);
|
||||
$router->post('/locations/{id}', [LocationController::class, 'update']);
|
||||
$router->post('/locations/{id}/delete', [LocationController::class, 'delete']);
|
||||
|
||||
$router->get('/departments', [DepartmentController::class, 'index']);
|
||||
$router->get('/departments/create', [DepartmentController::class, 'create']);
|
||||
$router->post('/departments', [DepartmentController::class, 'store']);
|
||||
$router->get('/departments/{id}/edit', [DepartmentController::class, 'edit']);
|
||||
$router->post('/departments/{id}', [DepartmentController::class, 'update']);
|
||||
$router->post('/departments/{id}/delete', [DepartmentController::class, 'delete']);
|
||||
|
||||
// Admin routes
|
||||
$router->group(['middleware' => 'admin'], function($router) {
|
||||
$router->get('/users', [UserController::class, 'index']);
|
||||
$router->get('/users/create', [UserController::class, 'create']);
|
||||
$router->post('/users', [UserController::class, 'store']);
|
||||
$router->get('/users/{id}/edit', [UserController::class, 'edit']);
|
||||
$router->post('/users/{id}', [UserController::class, 'update']);
|
||||
$router->post('/users/{id}/delete', [UserController::class, 'delete']);
|
||||
$router->post('/users/{id}/toggle', [UserController::class, 'toggleStatus']);
|
||||
});
|
||||
});
|
||||
|
||||
// Error routes
|
||||
$router->get('/404', function() {
|
||||
http_response_code(404);
|
||||
require APP_PATH . '/Views/errors/404.php';
|
||||
});
|
||||
|
||||
$router->get('/500', function() {
|
||||
http_response_code(500);
|
||||
require APP_PATH . '/Views/errors/500.php';
|
||||
});
|
||||
Reference in New Issue
Block a user