Aplicación CRUD rápida y moderna que utiliza NeonSQL (PostgreSQL serverless) como base de datos. Este proyecto demuestra una arquitectura profesional con validaciones robustas, manejo de errores centralizado, animaciones fluidas y una interfaz de usuario moderna y responsiva.
- ✅ CRUD Completo: Crear, Leer, Actualizar y Eliminar cuentas
- ✅ NeonSQL (PostgreSQL): Base de datos moderna y escalable
- ✅ Arquitectura Modular: Separación clara de responsabilidades
- ✅ Validaciones Robustas: En cliente y servidor
- ✅ Manejo de Errores: Sistema centralizado y consistente
- ✅ UI/UX Moderna: Interfaz responsiva y atractiva
- ✅ Notificaciones en Tiempo Real: Toast notifications
- ✅ API RESTful: Endpoints bien documentados
- ✅ Compatible con Vercel: Deploy en serverless
- Node.js >= 18.0.0
- npm o yarn
- Cuenta en NeonSQL
- Cadena de conexión PostgreSQL
git clone https://github.com/SaDaGoPia/Quick-NeoCRUD.git
cd quick-neocrudnpm installCrea un archivo .env en la raíz del proyecto:
DATABASE_URL=postgresql://usuario:contraseña@host/database?sslmode=require&channel_binding=require
PORT=3000
NODE_ENV=developmentObtener tu DATABASE_URL:
- Accede a NeonSQL Dashboard
- Selecciona tu proyecto
- Copia la cadena de conexión en "Connection string"
npm run init-dbEste comando:
- ✅ Verifica la conexión a NeonSQL
- ✅ Crea la tabla
accountssi no existe - ✅ Crea índices para optimizar queries
npm startLa aplicación estará disponible en http://localhost:3000
Deploy_Vercel_CockroachDB/
├── src/
│ ├── config/
│ │ └── database.js # Configuración de conexión a BD
│ ├── controllers/
│ │ └── accountController.js # Lógica CRUD de cuentas
│ ├── middleware/
│ │ └── errorHandler.js # Manejo centralizado de errores
│ ├── routes/
│ │ └── accounts.js # Definición de rutas
│ └── utils/
│ ├── errors.js # Clases de errores personalizados
│ └── validators.js # Funciones de validación
├── public/
│ ├── index.html # Interfaz HTML
│ ├── script.js # Lógica frontend
│ └── style.css # Estilos CSS modernos
├── db.js # Script de inicialización de BD
├── server.js # Servidor Express principal
├── package.json # Dependencias del proyecto
└── .env # Variables de entorno
GET /api/db-info
Retorna información de la conexión actual a la base de datos.
Respuesta:
{
"success": true,
"data": {
"dbname": "neondb",
"user": "neondb_owner",
"version": "PostgreSQL 17.7"
}
}POST /api/crear
Crea una nueva cuenta. El ID se genera automáticamente si no se proporciona.
Body:
{
"id": "550e8400-e29b-41d4-a716-446655440000", // Opcional
"balance": 1000
}Respuesta:
{
"success": true,
"message": "Cuenta creada exitosamente",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"balance": 1000,
"created_at": "2024-01-14T10:30:00Z",
"updated_at": "2024-01-14T10:30:00Z"
}
}GET /api/leer
Respuesta:
{
"success": true,
"count": 5,
"data": [...]
}GET /api/leer/:id
PUT /api/actualizar
Body:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"balance": 2000
}DELETE /api/eliminar
Body:
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}- ✅ UUID válido para el ID
- ✅ Balance como número entero válido (INT8)
- ✅ Validación de campos requeridos
- ✅ Manejo de duplicados
- ✅ Validación de existencia de registros
- ✅ Validación de entrada antes de enviar
- ✅ Confirmación para operaciones críticas
- ✅ Mensajes de error descriptivos
- ✅ Toast notifications
CREATE TABLE accounts (
id UUID PRIMARY KEY,
balance INT8 NOT NULL DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_accounts_created_at ON accounts(created_at);git init
git add .
git commit -m "Initial commit"- Conectar tu repositorio GitHub/GitLab
- Agregar variables de entorno en el dashboard
- Deploy automático
El archivo vercel.json ya está configurado adecuadamente.
Si migras desde CockroachDB:
- Cadena de conexión: Reemplaza la URL en
.envcon tu URL de NeonSQL - Compatibilidad: El driver
pgfunciona con ambas bases de datos - Esquema: La tabla es idéntica, solo necesitas reinicializar:
npm run init-db
- ✨ Arquitectura modular y profesional
- 🎨 UI completamente rediseñada
- 🔒 Validaciones mejoradas
- 🐛 Manejo de errores centralizado
- 📱 Responsivo en todos los dispositivos
- 🚀 Mejor rendimiento con índices de BD
- 📋 API más consistente con respuestas estandarizadas
curl -X POST http://localhost:3000/api/crear \
-H "Content-Type: application/json" \
-d "{\"balance\": 1000}"curl http://localhost:3000/api/leercurl -X PUT http://localhost:3000/api/actualizar \
-H "Content-Type: application/json" \
-d "{\"id\": \"UUID_AQUI\", \"balance\": 2000}"ISC
Refactorizado y modernizado en 2025
Nota: Para cualquier pregunta o reporte de bugs, abre un issue en el repositorio.
