FunkMoes es una plataforma web diseñada para la gestión y descubrimiento de colecciones musicales. Este documento describe en detalle el propósito del proyecto, su arquitectura, funcionalidades y pasos para su instalación y uso. Preparado como Trabajo de Fin de Grado (TFG) por Guillermo Mateos De Los Santos Aguilera.
FunkMoes es una tienda en línea especializada en camisetas, sudaderas y gorros de estilo urbano. Permite a los usuarios navegar por distintas categorías de productos, gestionar su perfil, añadir artículos al carrito y completar pedidos de forma ágil y segura.
- Backend: Laravel 10 (PHP 8)
- Controladores MVC y rutas RESTful para productos, carrito y pedidos
- Autenticación y autorización de usuarios (roles Admin y Cliente)
- ORM Eloquent con modelos:
Product,Category,Cart,CartItem,Order,OrderItem,User - Envío de emails: confirmación de compra con
Mail\PurchaseConfirmation
- Frontend: Vue.js 3 + Vite
- Componentes dinámicos para catálogo, carrito y formulario de checkout
- Tailwind CSS para diseño responsive
- Estado global con Pinia y comunicación con backend vía Axios
- Base de datos: MySQL (v8) / SQLite (para pruebas locales)
- Herramientas:
- Composer para dependencias PHP
- npm / yarn para dependencias JS
- PHPUnit / Pest para pruebas unitarias y de integración
- Docker (opcional para despliegue en contenedores)
- Autenticación y registro: Creación y gestión de cuentas de usuario con roles Cliente y Admin.
- Catálogo de productos: Listado, filtrado por categoría y búsqueda por nombre.
- Detalle de producto: Vista detallada con imágenes, descripción, precio y stock disponible.
- Carrito de compra: Añadir, modificar cantidades y remover artículos antes de la compra.
- Proceso de checkout: Generación de pedidos, cálculo de totales e impuestos.
- Confirmación por email: Envío automático de correo tras realizar un pedido.
- Panel de administración: CRUD de productos, categorías y visualización de pedidos.
- Gestión de pedidos: Seguimiento de estado y historial de compras por parte del cliente.
- PHP ≥ 8.0
- Extensiones: OpenSSL, PDO, Mbstring, Tokenizer, XML
- MySQL ≥ 5.7 / MariaDB ≥ 10.2
- Composer
- Node.js ≥ 14 & npm/yarn
- Opcional: Docker & Docker Compose
- Clonar repositorio:
git clone https://github.com/tuUsuario/FunkMoes.git cd FunkMoes
- Instalar dependencias PHP y JS:
composer install npm install
- Configurar variables de entorno:
cp .env.example .env php artisan key:generate
- Crear y migrar base de datos:
php artisan migrate --seed - Iniciar servidor de desarrollo:
npm run dev # Frontend php artisan serve # Backend
- Accede a
http://127.0.0.1:8000. - Regístrate o inicia sesión usando tu cuenta de GitHub/Google.
- Explora la sección Explorar Música para descubrir recomendaciones.
- Crea y gestiona tus playlists desde Mi Biblioteca.
- Participa en el feed en tiempo real y agrega valoraciones y comentarios.
app/ # Código fuente Laravel (MVC)
Http/
Models/
Mail/
bootstrap/ # Bootstrap de la aplicación
config/ # Archivos de configuración
database/ # Migraciones y seeders
public/ # Entrada pública y assets compilados
resources/ # Vistas Blade, assets SASS y JS
routes/ # Definición de rutas
tests/ # Tests unitarios y funcionales
- Ejecutar suite completa:
php artisan test
- Generar cobertura de código con Xdebug o phpdbg:
./vendor/bin/phpunit --coverage-html coverage
- Con Docker Compose:
docker-compose up -d --build
- Configurar servidor Apache/Nginx apuntando a
public/. - Variables de entorno en producción ajustadas en
.env.
Agradecemos colaboraciones y sugerencias.
- Haz fork del proyecto.
- Crea una rama feature:
git checkout -b feature/nombre - Envía tus cambios mediante pull request.
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
- Autor: Guillermo Mateos De Los Santos Aguilera
- Email: guillermo.moestilos@gmail.com
Última actualización: Julio 2025