2.7 KiB
2.7 KiB
Propuesta de Lizette: backend (servidor y motor)
Documentación de la parte del backend: el servidor (API REST, cuentas, historial y base de datos) y el motor de procesado que convierte el plano en pieza 3D.
| Documento | Contenido |
|---|---|
| 01-requisitos-backend.md | Requisitos funcionales y no funcionales del backend |
| 02-tecnologias-backend.md | Tecnologías elegidas y por qué |
| 03-arquitectura-backend.md | Componentes, API, modelo de datos, estructura del código y Docker |
| 04-prueba-pieza-plana.md | Prueba técnica del plan B (pieza plana por extrusión) |
Planteamiento
| Parte | Responsable | Qué hace |
|---|---|---|
Frontend (app/) |
Joel | Aplicación de escritorio: interfaz, visor 3D, inicio de sesión. Habla con el servidor por la API REST. |
Servidor (servidor/) |
Lizette | API REST con FastAPI: cuentas, proyectos, historial de conversiones, archivos. |
Motor (motor/) |
Lizette | Reconstrucción de la pieza desde las tres vistas, verificación del plano y exportación STEP/STL. |
| Base de datos | Lizette | MySQL: usuarios, proyectos, conversiones, avisos y archivos. |
| Pruebas | Los dos | pytest dentro de Docker, contra un MySQL de pruebas. |
Cambios que hay que reflejar en el resto del repositorio
Este planteamiento cambia decisiones que ahora mismo están escritas de otra forma en
el repositorio. Hay que acordarlas con Joel y actualizarlas en un pull request
propio, según CONTRIBUTING.md:
| Dónde | Dice ahora | Debe decir |
|---|---|---|
docs/decisiones.md (14-10) |
«Aplicación de escritorio, no web»; sin servidor | Aplicación de escritorio con servidor: el frontend se conecta a una API REST que guarda cuentas e historial |
docs/decisiones.md (22-10) |
Joel: aplicación; compañera: motor | Joel: frontend; Lizette: backend (servidor, base de datos y motor) |
docs/guia-tecnica.md |
«No hay servidor ni cuentas»; historial en SQLite | Servidor FastAPI con cuentas (JWT) e historial en MySQL; Docker para pruebas y despliegue |
README.md |
Tabla de carpetas sin servidor/ |
Añadir servidor/ y el arranque con docker compose |
motor/api.py |
Contrato entre motor y aplicación | Contrato entre motor y servidor. El contrato del frontend pasa a ser la API REST (OpenAPI en /docs) |
pyproject.toml |
PySide6 entre las dependencias comunes | PySide6 en un grupo app, para que la imagen Docker del servidor no lo instale |
Se mantiene lo que ya estaba decidido sobre el producto: piezas mecánicas, reconstrucción desde tres vistas con verificación del plano, plan B de pieza plana, y avisar siempre de lo que no se soporta.