Este proyecto es una plataforma web completa que incluye un sistema de gestión de contenido, foros, bolsa de trabajo y más para iglesias.
¿Primera vez aquí? Elige tu guía:
- 🚀 QUICKSTART.md - Configuración rápida en 5 minutos
- ✅ CHECKLIST.md - Lista paso a paso (recomendado para principiantes)
- 🗄️ SUPABASE_SETUP.md - Guía completa de Supabase con detalles
- Dashboard administrativo: Estadísticas, gráficos y actividad reciente
- Gestión de Usuarios: CRUD completo de usuarios con roles
- Gestión de Pedidos: Sistema de administración de pedidos
- Catálogo de Productos: Productos con categorías y detalles
- Categorías y Subforos: Organización jerárquica de temas
- Hilos de Discusión: Creación y participación en conversaciones
- Posts y Respuestas: Sistema de comentarios anidados
- Reacciones: Like, heart, support, etc.
- Bookmarks: Guardar hilos favoritos
- Suscripciones: Notificaciones de nuevos posts
- Mensajes Privados: Chat entre usuarios
- Notificaciones: Sistema de alertas en tiempo real
- Áreas Profesionales: Clasificación por industrias
- Publicación de Empleos: Sistema completo de gestión de vacantes
- Perfiles Profesionales: CVs de candidatos
- Aplicaciones: Sistema de postulación y seguimiento
- Panel Administrativo: Gestión de aplicaciones y estadísticas
- React 18 con TypeScript
- TailwindCSS para estilos
- Shadcn/UI para componentes
- Recharts para gráficos
- React Query para gestión de estado
- Wouter para routing
- Node.js con Express
- TypeScript para type safety
- Drizzle ORM para base de datos
- PostgreSQL como base de datos
- Neon Database (serverless PostgreSQL)
- Node.js 18 o superior
- npm o yarn
- Una cuenta en Supabase (gratuita) o cualquier PostgreSQL
- Clonar el repositorio
git clone <tu-repositorio>
cd Keni_Web- Instalar dependencias
npm install- Configurar base de datos con Supabase
📖 Guía detallada: Ver SUPABASE_SETUP.md para instrucciones paso a paso con imágenes.
Resumen rápido:
- Ve a https://supabase.com
- Crea cuenta gratuita con GitHub
- Crea nuevo proyecto
- Copia el connection string (modo Transaction)
- Crea archivo
.env:
# Windows
copy .env.example .env
# Linux/Mac
cp .env.example .env
# Editar .env y agregar tu DATABASE_URL-
Configurar connection string en .env
- Ve a Settings > Database > Connection string
- Selecciona Transaction mode (no Session)
- Copia el connection string:
postgresql://postgres.xxxxx:[YOUR-PASSWORD]@aws-0-us-east-1.pooler.supabase.com:6543/postgres - Reemplaza
[YOUR-PASSWORD]con la contraseña que elegiste al crear el proyecto - Pégalo en
.envcomoDATABASE_URL
-
Crear las tablas en la base de datos
npm run db:push- Poblar la base de datos con datos de ejemplo
npm run db:seed- Iniciar el servidor de desarrollo
npm run devLa aplicación estará disponible en http://localhost:5000
npm run dev- Inicia el servidor de desarrollonpm run build- Construye la aplicación para producciónnpm start- Inicia la aplicación en modo producciónnpm run check- Verifica tipos de TypeScriptnpm run db:push- Sincroniza el esquema con la base de datosnpm run db:generate- Genera migracionesnpm run db:migrate- Ejecuta migraciones pendientesnpm run db:studio- Abre Drizzle Studio (interfaz visual para DB)npm run db:seed- Puebla la base de datos con datos de ejemplo
users- Usuarios del sistemaproducts- Catálogo de productosorders- Pedidos realizadosactivities- Log de actividades
categories- Categorías principales del forosubforums- Subforos dentro de categoríasthreads- Hilos de discusiónposts- Mensajes en los hilosreactions- Reacciones a postsbookmarks- Hilos guardados por usuariossubscriptions- Suscripciones a categorías/hilosprivate_messages- Mensajes privados entre usuariosnotifications- Notificaciones del sistema
professional_areas- Áreas profesionalesjobs- Ofertas de empleouser_profiles- Perfiles profesionales de usuariosjob_applications- Aplicaciones a empleos
GET /api/dashboard/stats- Estadísticas del dashboardGET /api/activities/recent- Actividades recientes
GET /api/users- Listar usuariosPOST /api/users- Crear usuario
GET /api/products- Listar productosGET /api/products/top-selling- Productos más vendidos
GET /api/orders- Listar órdenesGET /api/orders/recent- Órdenes recientes
GET /api/forum/categories- Listar categoríasGET /api/forum/threads- Listar hilosPOST /api/forum/threads- Crear hiloGET /api/forum/threads/:id/posts- Posts de un hiloPOST /api/forum/posts- Crear postPOST /api/forum/reactions- Agregar reacciónGET /api/forum/bookmarks- Bookmarks del usuarioGET /api/forum/notifications- Notificaciones del usuario
GET /api/professional-areas- Áreas profesionalesGET /api/jobs- Listar empleosPOST /api/jobs- Crear empleoGET /api/user-profiles- Perfiles de usuariosPOST /api/job-applications- Aplicar a empleoGET /api/admin/job-applications- (Admin) Ver aplicacionesGET /api/admin/job-stats- (Admin) Estadísticas
Keni_Web/
├── client/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes reutilizables
│ │ ├── pages/ # Páginas de la aplicación
│ │ ├── hooks/ # Custom hooks
│ │ └── lib/ # Utilidades
├── server/ # Backend Node.js
│ ├── index.ts # Punto de entrada
│ ├── routes.ts # Definición de rutas
│ ├── storage.ts # Capa de almacenamiento
│ ├── db.ts # Conexión a base de datos
│ └── seed.ts # Script de población
├── shared/ # Código compartido
│ └── schema.ts # Esquemas de Drizzle ORM
└── migrations/ # Migraciones de base de datos
Actualmente el sistema usa almacenamiento en memoria para desarrollo. Para producción se recomienda:
- Implementar JWT o sessions con Passport.js
- Hashear contraseñas con bcrypt
- Agregar proceso de recuperación de contraseña
- Implementar 2FA (autenticación de dos factores)
- Importa el proyecto en Replit
- Configura la variable
DATABASE_URLen Secrets - Ejecuta
npm run db:pushynpm run db:seed - La app se desplegará automáticamente
-
Frontend en Vercel:
- Conecta tu repositorio
- Configura build command:
npm run build - Configura output directory:
dist
-
Backend en Railway:
- Crea un nuevo proyecto
- Conecta tu repositorio
- Agrega una base de datos PostgreSQL
- Railway proveerá automáticamente
DATABASE_URL
- Crea un Web Service
- Conecta tu repositorio
- Agrega una base de datos PostgreSQL
- Configura las variables de entorno
- Deploy automático
Para producción, asegúrate de:
- Cambiar SESSION_SECRET en
.env - Usar HTTPS para todas las conexiones
- Implementar rate limiting para las APIs
- Configurar CORS apropiadamente
- Hashear contraseñas (no guardar en texto plano)
- Implementar logging apropiado
- Configurar monitoreo de errores (ej: Sentry) Supabase](https://supabase.com/docs)
- 📖 Guía Completa de Supabase - Tutorial paso a paso
- 📖 Inicio Rápido - Configuración en 5 minutos
- Documentación de Drizzle ORM
- Guía de Supabase
- Supabase Database
- React Query Docs
- Shadcn/UI Components
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT.
Si tienes preguntas o problemas, por favor abre un issue en el repositorio.