Plataforma educativa descentralizada para desarrolladores blockchain en México
- Production Status - Current production state and metrics
- Deployment Guide - Complete deployment instructions
- Deployment Summary - Quick deployment overview
- Course Paywall System - NFT-based access control implementation
- Dynamic NFT Solution - Token ID generation architecture
- Project Rules -
⚠️ READ BEFORE CODING - Critical rules and conventions - Feature Request Template - How to request new features
- Docs Cleanup Plan - Documentation organization roadmap
- Scripts Guide - Deployment and monitoring scripts
CELO Mexico Academy es una plataforma educativa descentralizada que combina cursos de desarrollo blockchain con NFT badges y certificaciones on-chain.
- Cursos Estructurados con módulos y lecciones
- NFT Badges por inscripción y completación
- Certificados On-Chain verificables en blockchain
- Seguimiento de Progreso personalizado
- Sistema de Instructores con perfiles dedicados
- Next.js 15 con App Router y RSC
- TypeScript con strict mode
- Tailwind CSS para estilos responsivos
- Privy para autenticación de wallets
- Wagmi + Viem para interacción Web3
- Prisma + PostgreSQL para base de datos
- Smart Contracts en Celo Alfajores testnet
├── app/ # Next.js 15 App Router
│ ├── academy/ # Rutas de la academia
│ │ ├── [slug]/ # Páginas dinámicas de cursos
│ │ └── page.tsx # Catálogo de cursos
│ ├── admin/ # Panel de administración
│ │ ├── courses/ # CRUD de cursos
│ │ ├── instructors/ # Gestión de instructores
│ │ └── page.tsx # Dashboard admin
│ ├── api/ # API Routes
│ │ ├── admin/ # APIs administrativas
│ │ ├── health/ # Health checks
│ │ ├── metadata/ # NFT metadata endpoints
│ │ └── progress/ # Seguimiento de progreso
│ └── page.tsx # Página principal
├── components/ # Componentes React
│ ├── academy/ # Componentes de cursos
│ ├── admin/ # Componentes admin
│ ├── theme/ # Sistema de temas
│ └── ui/ # Componentes base
├── lib/ # Utilidades y configuración
│ ├── hooks/ # Custom React hooks
│ ├── prisma.ts # Cliente Prisma
│ └── wagmi.ts # Configuración Web3
├── prisma/ # Base de datos
│ └── schema.prisma # Esquema de la BD
├── scripts/ # Scripts de deployment
│ ├── deploy-and-monitor.sh
│ └── monitor-deployment.sh
└── public/ # Assets estáticos
- Node.js 20.0.0 o superior (recomendado: 20.19.4)
- npm o pnpm
- Git
- PostgreSQL (o cuenta de Supabase)
-
Clonar el repositorio
git clone https://github.com/CeloMexico/celomxwebsite.git cd celomxwebsite -
Instalar dependencias
pnpm install # o npm install -
Configurar variables de entorno
cp .env.example .env.local
Editar
.env.localcon tus configuraciones:# Privy NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id # Database DATABASE_URL="file:./dev.db" # Otros servicios...
-
Configurar base de datos
pnpm prisma generate pnpm prisma db push
-
Ejecutar en desarrollo
npm run dev # o pnpm devEl sitio estará disponible en http://localhost:3000
-
Verificar la instalación
# Health check curl http://localhost:3000/api/health # Database check npx prisma studio
Este proyecto utiliza assets externos para optimizar el tamaño del repositorio:
- Videos: Alojados en Cloudinary
- Imágenes: Alojadas en PostImg
- Fuentes: Solo las esenciales en
public/fonts/
- Home (
/): Página principal con hero, características y posters - Academy (
/academy): Cursos y programas de desarrollo - Marketplace (
/marketplace): NFTs y colecciones - Dashboard (
/dashboard): Panel de administración - Ramps (
/ramps): On-ramp de criptomonedas
# Desarrollo
npm run dev # Servidor de desarrollo
npm run build # Build para producción
npm run start # Servidor de producción
# Calidad de Código
npm run lint # ESLint
npm run type-check # TypeScript check
npm run format # Prettier
# Base de Datos
npm run db:studio # Prisma Studio (GUI)
npm run db:push # Sincronizar esquema
npm run db:migrate # Crear migración
npm run db:seed # Poblar datos
# Deployment
./scripts/deploy-and-monitor.sh -m "message" # Deploy + monitor
./scripts/monitor-deployment.sh # Monitor only- Framework: Next.js 15 (App Router, RSC)
- Lenguaje: TypeScript 5.0
- Estilos: Tailwind CSS 3.4
- UI Components: Radix UI, shadcn/ui
- Animaciones: Framer Motion
- Base de Datos: PostgreSQL (Supabase)
- ORM: Prisma 5.0
- API: Next.js API Routes
- Autenticación: Privy (Wallet Auth)
- Blockchain: Celo Alfajores Testnet
- Smart Contracts: Solidity (SimpleBadge ERC1155)
- Web3 Library: Wagmi + Viem
- Wallet Connect: WalletConnect v2
- Hosting: Vercel
- CI/CD: GitHub Actions + Vercel
- Monitoring: Custom scripts
- Database: Supabase (PostgreSQL)
- 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. Ver LICENSE para más detalles.
Si tienes problemas o preguntas:
- Revisa la documentación
- Busca en los issues existentes
- Crea un nuevo issue con detalles del problema
- 📊 Production Status - Estado actual de producción
- 🚀 Deployment Guide - Guía completa de deployment
- 🎯 NFT Solution - Arquitectura de NFT badges
- ⚙️ Scripts Guide - Uso de scripts de deployment
- 📖 Project Rules - Reglas y convenciones del proyecto
/api/health- Health check general/api/health/db- Verificación de base de datos/api/health/env- Variables de entorno/api/metadata/milestone/{tokenId}- Metadata de NFTs/api/courses- Listado de cursos/api/progress- Seguimiento de progreso
- ✅ Explorar catálogo de cursos
- ✅ Conectar wallet (MetaMask, WalletConnect)
- ✅ Inscribirse a cursos (claim NFT badge)
- ✅ Completar lecciones y módulos
- ✅ Obtener certificados on-chain
- ✅ Ver progreso personal
- ✅ Panel de administración completo
- ✅ CRUD de cursos, módulos y lecciones
- ✅ Gestión de instructores
- ✅ Mint de badges administrativos
- ✅ Estadísticas y métricas
- ✅ Autenticación basada en wallets (Privy)
- ✅ Protección de rutas administrativas
- ✅ Validación de tokens JWT
- ✅ Conexiones SSL a base de datos
- ✅ Variables de entorno encriptadas
- ✅ Validación de direcciones on-chain
Status: 🟢 EN PRODUCCIÓN
- Deployment: Vercel
- Uptime: 99.9%
- Database: PostgreSQL (Supabase)
- Smart Contract: Deployed on Alfajores
Ver PRODUCTION_STATUS.md para más detalles.
¿Quieres contribuir? ¡Genial! Sigue estos pasos:
- Fork el proyecto
- Crea tu feature branch (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add: Amazing feature') - Push al branch (
git push origin feature/AmazingFeature) - Abre un Pull Request
- TypeScript estricto (no
any) - ESLint + Prettier configurados
- Commits convencionales (feat:, fix:, docs:, etc.)
- Tests para nuevas funcionalidades
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
- 📧 Email: [email protected]
- 💬 Discord: Celo Mexico Community
- 🐦 Twitter: @CeloMexico
- 📱 Telegram: t.me/CeloMexico
- Revisa los issues existentes
- Crea un nuevo issue con:
- Descripción clara del problema
- Pasos para reproducir
- Capturas de pantalla (si aplica)
- Información del entorno
- Celo Foundation por el soporte
- Privy por la solución de autenticación
- Vercel por el hosting
- Supabase por la base de datos
- Comunidad de desarrolladores de Celo México