Esta es la API de backend, construida con NestJS, que da servicio a los formularios del sitio web de Blockey Market. Se encarga de recibir datos, procesar y subir archivos, y almacenar toda la información en una base de datos Supabase.
- Framework Moderno: Construido con NestJS (TypeScript) para una arquitectura robusta y escalable.
- Gestión de Archivos: Sube archivos de forma segura a Supabase Storage.
- Base de Datos PostgreSQL: Almacena datos estructurados en Supabase DB.
- Configuración por Entorno: Utiliza archivos
.env
para una gestión segura de las credenciales. - Despliegue Automatizado: Listo para despliegue continuo en plataformas como Render.
Sigue estos pasos para ejecutar la API en tu máquina local.
- Node.js (v16 o superior)
- npm o yarn
- Una cuenta de Supabase para obtener las credenciales de la base de datos y el almacenamiento.
git clone https://URL-DE-TU-REPOSITORIO.git
cd nombre-del-repositorio
npm install
Crea un archivo llamado .env
en la raíz del proyecto. Copia el contenido de .env.example
(si existe) o usa la siguiente plantilla y rellena los valores con tus credenciales de Supabase.
# Credenciales de Supabase
# Las encontrarás en tu proyecto de Supabase > Project Settings > API
SUPABASE_URL=https://TU_ID_DE_PROYECTO.supabase.co
SUPABASE_KEY=TU_CLAVE_ANON_PUBLICA_AQUI
Para iniciar la aplicación en modo de desarrollo (con recarga automática):
npm run start:dev
La API estará disponible en https://mail-api-6qhi.onrender.com
.
La API expone los siguientes endpoints bajo el prefijo /formularios
:
-
POST /formularios/registro-empresa
- Descripción: Recibe los datos y documentos para el registro de una nueva empresa en el marketplace.
- Tipo de Contenido:
multipart/form-data
. - Campos:
nombre_empresa
,email_empresa
,logo_empresa
(archivo),estatuto
(archivo), etc.
-
POST /formularios/solicitud-token
- Descripción: Recibe las solicitudes de usuarios para la adquisición de tokens.
- Tipo de Contenido:
multipart/form-data
oapplication/json
. - Campos:
nombre
,apellido
,cuit_cuil
,capital_inversion
, etc.
-
POST /formularios/contacto
- Descripción: Endpoint inicial para el formulario de contacto con subida de archivos.
- Tipo de Contenido:
multipart/form-data
. - Campos:
nombre_empresa
,email
,telefono
,logo
(archivo), etc.
src/
├── app.module.ts # Módulo raíz
├── main.ts # Punto de entrada de la aplicación
├── mail/ # Módulo para la lógica de los formularios
│ ├── mail.controller.ts # Define los endpoints
│ └── mail.service.ts # Contiene la lógica de negocio
└── supabase/ # Módulo para la conexión con Supabase
├── supabase.module.ts
└── supabase.service.ts
Esta aplicación está configurada para ser desplegada en Render.
- Build Command:
npm install && npm run build
- Start Command:
node dist/main.js