Nova@1.0 - Despliegue de Backend I


He decidido, tras evaluar el proyecto y repartirlo en fases, que comenzaré con la instalación y desarrollo de un backend simple que me permita dar respuesta a lo más básico del proyecto.
Para ello he comenzado instalando NestJS
npm install -g @nestjs/cli
Y creando el proyecto:
nest new nova-backend
Siguiendo la documentación disponible (https://docs.nestjs.com/recipes/prisma) que tiene NestJS acerca de cómo integrar PrismaORM, el siguiente paso ha sido instalar las dependencias:
npm install prisma --save-dev
Y completar el proceso ejecutando Prisma:
npx prisma
Necesito crear la estructura de la base de datos para poder comenzar con el despliegue de PrismaORM, para ello voy a utilizar inteligencia artificial de forma que me genere, basado en mi contexto, el esquema necesario.
GPT-4o
Las entidades (tablas) que me ha generado GPT-4o son:
clients
: Representa los clientes1:n
appointments
1:n
transactions
employees
: Miembros del staff del negocio- 1:n
appointments
- 1:n
services
: Los servicios que presenta el negocio- Forman parte de los
appointments
- Forman parte de los
products
: Representa productos vendidos- Forman parte de las
transactions
- Forman parte de las
appointments
: Representan las reservas hechas por clientes1:1
clients
1:1
employees
1:n
services
transactions
: Los pagos1:1
clients
1:n
products
(opcional)1:n
services
(opcional)
inventory
: El inventario de productos- Relacionado con
products
- Relacionado con
suppliers
: Proveedores- Puede proporcionar multiples
products
- Puede proporcionar multiples
Esta primera aproximación me gusta, no obstante, la versión 1.0 del proyecto no va a hacer gestión de inventario o la gestión de calendario, con lo que nos ahorraríamos algunas de las tablas. Aún así, la intención es que futuras versiones realicen ese control de inventario/gestión del calendario, así que valor de forma positiva mantener esa estructura si no impacta demasiado en la complejidad del proyecto.
o1-preview
La versión más moderna de o1 tiene uan respuesta bastante similar, aunque incluye dos tablas más:
users
: En la que tendremos los usuarios que pueden utilizar la aplicaciónroles
: Los roles asociados a los usuarios
Estas dos tablas son interesantes porque la versión 1.0 sí que debería incluir una mínima gestión de la solución, además de acceso a información financiera y eso requeriría de usuarios con privilegios.
Resultado final
Le he pedido a o1 que revisara la respuesta considerando que la versión 1.0 no va a realizar gestión de citas o de inventario, pero que considero que son características que tendrá la solución en versiones posteriores.
Las entidades (tablas) que me ha generado o1 son:
clients
: Representa los clientes1:n
appointments
1:n
transactions
employees
: Miembros del staff del negocio- 1:n
appointments
- 1:n
services
: Los servicios que presenta el negocio- Forman parte de los
appointments
- Forman parte de los
products
: Representa productos vendidos- Forman parte de las
transactions
- Forman parte de las
appointments
: Representan las reservas hechas por clientestransactions
: Los pagos1:1
clients
1:1
employees
1:nproducts
(opcional)1:nservices
(opcional)
transaction_items
: Detalles de los servicios/productos vendidos en cada entrada detransactions
inventory
: El inventario de productossuppliers
: Proveedores- Puede proporcionar multiples
products
- Puede proporcionar multiples
users
: En la que tendremos los usuarios que pueden utilizar la aplicaciónroles
: Los roles asociados a los usuarios
Esta aproximación va a ser la estructura de datos definitiva para Nova@1.0
Subscribe to my newsletter
Read articles from MDG developer directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
