Sistema POS empresarial construido con Spring Boot 3, PostgreSQL y JPA/Hibernate.
- Java 17+ - Lenguaje de programación
- Spring Boot 3.2.1 - Framework backend
- Spring Data JPA - ORM (Hibernate)
- PostgreSQL - Base de datos relacional
- Lombok - Reducción de boilerplate
- Maven - Gestión de dependencias
Controller (REST API)
↓
Service (Lógica de negocio)
↓
Repository (Acceso a datos)
↓
PostgreSQL (Base de datos)
src/main/java/com/nexuspos/backend/
├── config/ # Configuración (CORS, etc.)
├── controller/ # Endpoints REST
├── service/ # Lógica de negocio
├── repository/ # Acceso a datos (JPA)
├── model/ # Entidades JPA
├── dto/ # Data Transfer Objects
└── exception/ # Manejo de excepciones
- Java JDK 17 o superior
- PostgreSQL 12+
- IntelliJ IDEA (recomendado) o VS Code
- Maven (incluido en IntelliJ)
Abre PostgreSQL (pgAdmin o terminal) y ejecuta:
CREATE DATABASE nexuspos_db;Edita src/main/resources/application.properties:
spring.datasource.username=postgres
spring.datasource.password=TU_CONTRASEÑA_AQUÍOpción A: IntelliJ IDEA
- Abre el proyecto (carpeta
nexus-pos-backend) - Espera a que Maven descargue dependencias
- Click derecho en
NexusPosBackendApplication.java - Run 'NexusPosBackendApplication'
Opción B: Terminal/CMD
cd nexus-pos-backend
mvnw spring-boot:runOpción C: Maven
mvn clean install
mvn spring-boot:run| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/productos |
Obtener todos los productos |
| GET | /api/productos/{id} |
Obtener producto por ID |
| GET | /api/productos/buscar?nombre=x |
Buscar por nombre |
| GET | /api/productos/categoria/{cat} |
Filtrar por categoría |
| GET | /api/productos/categorias |
Obtener categorías |
| GET | /api/productos/stock/bajo |
Stock < 20 |
| GET | /api/productos/stock/critico |
Stock < 10 |
| POST | /api/productos |
Crear producto |
| PUT | /api/productos/{id} |
Actualizar producto |
| DELETE | /api/productos/{id} |
Eliminar producto |
| PATCH | /api/productos/{id}/stock/agregar |
Agregar stock |
| PATCH | /api/productos/{id}/stock/reducir |
Reducir stock |
POST http://localhost:8080/api/productos
Content-Type: application/json
{
"nombre": "Coca Cola",
"categoria": "Bebidas",
"precio": 3000.0,
"stock": 50
}- Implementar entidades: Mesa, Caja, Gasto, Venta
- Agregar Spring Security (autenticación JWT)
- Implementar WebSockets para tiempo real
- Agregar tests unitarios (JUnit + Mockito)
- Documentar API con Swagger/OpenAPI
- Verifica que PostgreSQL esté corriendo
- Revisa usuario/contraseña en
application.properties - Verifica que exista la base de datos
nexuspos_db
- Cambia el puerto en
application.properties:server.port=8081
- IntelliJ: Settings → Plugins → Install "Lombok"
- IntelliJ: Settings → Build → Compiler → Annotation Processors → Enable
- VS Code: Instala extensión "Lombok Annotations Support"
Juan Diego Nieves