Skip to main content

Route Overview

All routes are defined in routes/web.php and protected by the verified middleware, requiring authenticated and email-verified users.

Authentication Routes

Laravel UI provides these authentication routes:
routes/web.php:34
Auth::routes(['verify' => true]);
MethodURIDescription
GET/loginShow login form
POST/loginProcess login
POST/logoutLog out user
GET/registerShow registration form
POST/registerProcess registration
GET/password/resetShow password reset form
POST/password/emailSend password reset email
GET/password/reset/{token}Show reset password form
POST/password/resetReset password
GET/email/verifyEmail verification notice
GET/email/verify/{id}/{hash}Verify email
POST/email/resendResend verification email

Home Route

routes/web.php:29-36
Route::get('/', function () {
    return redirect()->route("home");
});

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])
    ->name('home');
MethodURIControllerActionDescription
GET/--Redirects to /home
GET/homeHomeControllerindexDashboard/home page

Profile Routes

Manage user profiles with photos and personal information:
routes/web.php:41-44
Route::get("mi-perfil", [PerfilController::class, "index"])
    ->name("usuario.perfil")->middleware('verified');
    
Route::post("actualizar-foto-perfil", [PerfilController::class, "actualizarIMG"])
    ->name("perfil.actualizarIMG")->middleware('verified');
    
Route::get("eliminar-foto-perfil", [PerfilController::class, "eliminarFotoPerfil"])
    ->name("perfil.eliminarFotoPerfil")->middleware('verified');
    
Route::put("actualizar-datos-perfil", [PerfilController::class, "actualizarDatos"])
    ->name("perfil.actualizarDatos")->middleware('verified');
MethodURIControllerActionDescription
GET/mi-perfilPerfilControllerindexView user profile
POST/actualizar-foto-perfilPerfilControlleractualizarIMGUpload profile photo
GET/eliminar-foto-perfilPerfilControllereliminarFotoPerfilDelete profile photo
PUT/actualizar-datos-perfilPerfilControlleractualizarDatosUpdate profile data

Password Change Routes

routes/web.php:62-63
Route::get("cambiar-clave", [PerfilController::class, "cambiarClave"])
    ->name("usuario.cambiarClave")->middleware('verified');
    
Route::post("cambiar-clave", [PerfilController::class, "actualizarClave"])
    ->name("usuario.actualizarClave")->middleware('verified');
MethodURIControllerActionDescription
GET/cambiar-clavePerfilControllercambiarClaveShow password change form
POST/cambiar-clavePerfilControlleractualizarClaveProcess password change

Company Routes

Manage company information and branding:
routes/web.php:48-51
Route::get('empresa-index', [EmpresaController::class, 'index'])
    ->name('empresa.index')->middleware('verified');
    
Route::post('empresa-update-{id}', [EmpresaController::class, 'update'])
    ->name('empresa.update')->middleware('verified');
    
Route::post("actualizar-logo", [EmpresaController::class, "actualizarLogo"])
    ->name("empresa.actualizarLogo")->middleware('verified');
    
Route::delete("eliminar-logo", [EmpresaController::class, "eliminarLogo"])
    ->name("empresa.eliminarLogo")->middleware('verified');
MethodURIControllerActionDescription
GET/empresa-indexEmpresaControllerindexView company information
POST/empresa-update-{id}EmpresaControllerupdateUpdate company info
POST/actualizar-logoEmpresaControlleractualizarLogoUpload company logo
DELETE/eliminar-logoEmpresaControllereliminarLogoDelete company logo

Product Routes

Resource Routes

routes/web.php:55
Route::resource('productos', ProductoController::class)->middleware('verified');
MethodURIControllerActionDescription
GET/productosProductoControllerindexList all products
GET/productos/createProductoControllercreateShow product creation form
POST/productosProductoControllerstoreCreate new product
GET/productos/{id}ProductoControllershowView product details
GET/productos/{id}/editProductoControllereditShow product edit form
PUT/PATCH/productos/{id}ProductoControllerupdateUpdate product
DELETE/productos/{id}ProductoControllerdestroyDelete product

Custom Product Routes

routes/web.php:56-58
Route::post("buscar-producto", [ProductoController::class, "buscarProducto"])
    ->name("producto.buscar")->middleware('verified');
    
Route::post("registrar-foto-producto", [ProductoController::class, "registrarFotoProducto"])
    ->name("producto.registrarFotoProducto")->middleware('verified');
    
Route::delete("eliminar-productos", [ProductoController::class, "eliminarProducto"])
    ->name("producto.eliminar")->middleware('verified');
MethodURIControllerActionDescription
POST/buscar-productoProductoControllerbuscarProductoSearch products (AJAX)
POST/registrar-foto-productoProductoControllerregistrarFotoProductoUpload product image
DELETE/eliminar-productosProductoControllereliminarProductoDelete product photo

Category Routes

routes/web.php:67
Route::resource('categoria', CategoriaController::class)->middleware('verified');
MethodURIControllerActionDescription
GET/categoriaCategoriaControllerindexList all categories
GET/categoria/createCategoriaControllercreateShow category creation form
POST/categoriaCategoriaControllerstoreCreate new category
GET/categoria/{id}CategoriaControllershowView category details
GET/categoria/{id}/editCategoriaControllereditShow category edit form
PUT/PATCH/categoria/{id}CategoriaControllerupdateUpdate category
DELETE/categoria/{id}CategoriaControllerdestroyDelete category

User Management Routes

Resource Routes

routes/web.php:70
Route::resource('usuario', UsuarioController::class)->middleware('verified');
MethodURIControllerActionDescription
GET/usuarioUsuarioControllerindexList all users
GET/usuario/createUsuarioControllercreateShow user creation form
POST/usuarioUsuarioControllerstoreCreate new user
GET/usuario/{id}UsuarioControllershowView user details
GET/usuario/{id}/editUsuarioControllereditShow user edit form
PUT/PATCH/usuario/{id}UsuarioControllerupdateUpdate user
DELETE/usuario/{id}UsuarioControllerdestroyDelete user

Custom User Routes

routes/web.php:71-72
Route::post("registrar-foto-usuario", [UsuarioController::class, "registrarFotoUsuario"])
    ->name("usuario.registrarFotoUsuario")->middleware('verified');
    
Route::delete("eliminar-usuarios", [UsuarioController::class, "eliminarUsuario"])
    ->name("usuario.eliminar")->middleware('verified');
MethodURIControllerActionDescription
POST/registrar-foto-usuarioUsuarioControllerregistrarFotoUsuarioUpload user photo
DELETE/eliminar-usuariosUsuarioControllereliminarUsuarioDelete user photo

Inventory Entry Routes

routes/web.php:76
Route::resource('entradas', EntradaController::class)->middleware('verified');
MethodURIControllerActionDescription
GET/entradasEntradaControllerindexList all inventory entries
GET/entradas/createEntradaControllercreateShow entry creation form
POST/entradasEntradaControllerstoreCreate new entry
GET/entradas/{id}EntradaControllershowView entry details
GET/entradas/{id}/editEntradaControllereditShow entry edit form
PUT/PATCH/entradas/{id}EntradaControllerupdateUpdate entry
DELETE/entradas/{id}EntradaControllerdestroyDelete entry

Route Naming Conventions

Sistema de Ventas uses consistent naming patterns:

Resource Routes

  • Index: {resource}.index (e.g., productos.index)
  • Create: {resource}.create (e.g., productos.create)
  • Store: {resource}.store (e.g., productos.store)
  • Show: {resource}.show (e.g., productos.show)
  • Edit: {resource}.edit (e.g., productos.edit)
  • Update: {resource}.update (e.g., productos.update)
  • Destroy: {resource}.destroy (e.g., productos.destroy)

Custom Routes

  • Operation-based: {resource}.{action} (e.g., producto.buscar)
  • Profile: usuario.{action} or perfil.{action}
  • Company: empresa.{action}

Middleware Usage

All application routes use the verified middleware:
->middleware('verified')
This ensures:
  1. User is authenticated (logged in)
  2. User’s email address is verified
  3. Automatic redirect to verification page if not verified

Route Generation

Generate URLs in your views using Laravel’s route helpers:
// Named route
route('productos.index')

// With parameters
route('productos.show', ['id' => 1])

// Current route
route()->current()

// Check current route
request()->routeIs('productos.*')

API Development

Sistema de Ventas primarily uses web routes with Blade views. For API development, routes can be added to routes/api.php and authenticated with Laravel Sanctum.

Next Steps

Controllers

Learn about controller implementation details

API Overview

Understand the overall API architecture

Build docs developers (and LLMs) love