Nova@1.0 - Despliegue de Backend I

MDG developerMDG developer
3 min read

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 clientes

    • 1:n appointments

    • 1:n transactions

  • employees: Miembros del staff del negocio

    • 1:n appointments
  • services: Los servicios que presenta el negocio

    • Forman parte de los appointments
  • products: Representa productos vendidos

    • Forman parte de las transactions
  • appointments: Representan las reservas hechas por clientes

    • 1:1 clients

    • 1:1 employees

    • 1:n services

  • transactions: Los pagos

    • 1:1 clients

    • 1:n products (opcional)

    • 1:n services (opcional)

  • inventory: El inventario de productos

    • Relacionado con products
  • suppliers: Proveedores

    • Puede proporcionar multiples products

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ón

  • roles: 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 clientes

    • 1:n appointments

    • 1:n transactions

  • employees: Miembros del staff del negocio

    • 1:n appointments
  • services: Los servicios que presenta el negocio

    • Forman parte de los appointments
  • products: Representa productos vendidos

    • Forman parte de las transactions
  • appointments: Representan las reservas hechas por clientes

  • transactions: Los pagos

    • 1:1 clients

    • 1:1 employees

    • 1:n products (opcional)

    • 1:n services (opcional)

  • transaction_items: Detalles de los servicios/productos vendidos en cada entrada de transactions

  • inventory: El inventario de productos

  • suppliers: Proveedores

    • Puede proporcionar multiples products
  • users: En la que tendremos los usuarios que pueden utilizar la aplicación

  • roles: Los roles asociados a los usuarios

Esta aproximación va a ser la estructura de datos definitiva para Nova@1.0

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

MDG developer
MDG developer