Sistema de Gestión de Suministros de Oficina
Resumen del Proyecto
Esta aplicación es un sistema para la gestión de solicitudes de suministros de oficina, desarrollado con Spring Boot y Vue3. Permite a los usuarios solicitar suministros, a los administradores aprobar solicitudes y gestionar el inventario.
Tecnologías Utilizadas
Backend
- Spring Boot 2.7.0
- MyBatis-Plus 3.5.2
- MySQL 8.0+
- Redis
- Autenticación JWT
- Maven
Frontend
- Vue 3.3.4
- Vue Router 4.2.4
- Pinia 2.1.6
- Element Plus 2.3.8
- Vite 4.4.5
- SCSS
Estructura del Proyecto
gestion_suministros/
├── database/ # Scripts de base de datos
│ └── init-corrected.sql
├── frontend/ # Proyecto frontend
│ ├── src/
│ │ ├── api/ # Interfaces API
│ │ ├── components/ # Componentes
│ │ ├── layouts/ # Componentes de布局
│ │ ├── router/ # Configuración de rutas
│ │ ├── stores/ # Gestión de estado
│ │ ├── views/ # Componentes de página
│ │ └── style/ # Archivos de estilo
│ ├── package.json
│ └── vite.config.js
├── src/ # Proyecto backend
│ └── main/
│ ├── java/
│ │ └── com/empresa/
│ │ ├── common/ # Clases comunes
│ │ ├── config/ # Clases de configuración
│ │ ├── controller/ # Controladores
│ │ ├── entity/ # Entidades
│ │ ├── mapper/ # Capa de acceso a datos
│ │ └── service/ # Capa de servicios
│ └── resources/
│ └── application.yml
└── pom.xml
Guía de Inicio Rápido
1. Requisitos del Entorno
- JDK 11+
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
2. Configuración de la Base de Datos
- Crear la base de datos:
CREATE DATABASE gestion_suministros DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Ejecutar el script de inicialización:
source database/init-corrected.sql
- Modificar la información de conexión a la base de datos en el archivo de configuración
src/main/resources/application.yml
3. Iniciar el Backend
- Navegar al directorio raíz del proyecto
- Ejecutar los comandos Maven:
mvn clean install
mvn spring-boot:run
El backend se iniciará en http://localhost:8085
4. Iniciar el Frontend
- Navegar al directorio del frontend:
cd frontend
- Instalar dependencias:
npm install
- Iniciar el servidor de desarrollo:
npm run dev
El frontend se iniciará en http://localhost:3000
Características del Sistema
Funcionalidades de Usuario
- Registro/inicio de sesión de usuarios
- Exploración de suministros de oficina
- Solicitud de suministros
- Visualización del estado de las solicitudes
- Gestión del perfil personal
Funcionalidades de Administrador
- Gestión de usuarios
- Gestión de departamentos
- Gestión de categorías de suministros
- Gestión de suministros
- Aprobación de solicitudes
- Gestión de inventario
Cuentas por Defecto
- Administrador: admin / admin123
- Los usuarios normales deben registrarse
Interfaces API
Autenticación
POST /api/auth/login- Inicio de sesión de usuarioPOST /api/auth/register- Registro de usuarioGET /api/auth/userinfo- Obtener información del usuario
Gestión de Suministros
GET /api/supply/page- Consulta paginada de suministrosGET /api/supply/{id}- Obtener detalles del suministroPOST /api/supply- Crear suministroPUT /api/supply- Actualizar suministroDELETE /api/supply/{id}- Eliminar suministro
Gestión de Solicitudes
GET /api/application/page- Consulta paginada de solicitudesPOST /api/application- Crear solicitudPUT /api/application/approve/{id}- Aprobar solicitud
Guía de Desarrollo
Desarrollo Backend
- Uso de MyBatis-Plus para el acceso a datos
- Formato de retorno unificado usando la clase Response
- Autenticación JWT
- Soporte para eliminación lógica
Desarrollo Frontend
- Uso de Vue3 Composition API
- Gestión de estado con Pinia
- Biblioteca de componentes Element Plus
- Diseño responsivo
Guía de Despliegue
Despliegue Backend
- Empaquetar:
mvn clean package - Ejecutar:
java -jar target/gestion-suministros-1.0.0.jar
Despliegue Frontend
- Construir:
npm run build - Deesplegar el directorio dist en un servidor web
Consideraciones Importantes
- Asegurarse de que los servicios MySQL y Redis estén funcionando correctamente
- Durante el desarrollo frontend, prestar atención a la configuración de CORS para las enterfaces API
- En el despliegue en producción, modificar información sensible como contraseñas de la base de datos
- Se recomienda usar HTTPS para el despliegue en producción