41 lines
2.7 KiB
Markdown
41 lines
2.7 KiB
Markdown
# 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](01-requisitos-backend.md) | Requisitos funcionales y no funcionales del backend |
|
|
| [02-tecnologias-backend.md](02-tecnologias-backend.md) | Tecnologías elegidas y por qué |
|
|
| [03-arquitectura-backend.md](03-arquitectura-backend.md) | Componentes, API, modelo de datos, estructura del código y Docker |
|
|
| [04-prueba-pieza-plana.md](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.
|