Plataforma SaaS completa para la monitorización e incentivo del reciclaje de RAEE en entornos urbanos
CleanTech es una plataforma SaaS full-stack que integra sensores IoT (HX711), dashboard web interactivo, backend API REST con autenticación JWT y base de datos PostgreSQL. El sistema simula contenedores inteligentes de reciclaje que pesan y recompensan depósitos de RAEE en tiempo real mediante Eco-Tokens.
| Capa | Tecnología |
|---|---|
| Frontend | TypeScript 5, Vite 5, TailwindCSS 3, Observable Pattern |
| Backend | Node.js 20, Express 4, Prisma ORM 5, JWT, Joi, Pino |
| Base de datos | PostgreSQL 15, Redis 7 |
| Infraestructura | Docker, GitHub Actions, AWS (EC2 + RDS + CloudFront) |
CleanTech/
├── api/ # Backend API REST
│ ├── prisma/schema.prisma # Modelo de datos
│ ├── src/
│ │ ├── index.ts # Entry point
│ │ ├── config/ # Configuración (env, db, auth)
│ │ ├── controllers/ # Handlers HTTP
│ │ ├── services/ # Lógica de negocio
│ │ ├── middleware/ # JWT, errores, validación
│ │ ├── routes/ # Definiciones de rutas
│ │ ├── utils/ # Logger, schemas Joi
│ │ └── database/ # Cliente Prisma, seed
│ ├── tests/
│ └── Dockerfile
│
├── web/ # Frontend web
│ ├── src/
│ │ ├── main.ts
│ │ ├── components/ # 7 componentes vanilla TS
│ │ ├── store/ # Estado reactivo Observable
│ │ ├── services/ # Simulación IoT
│ │ └── styles/ # Tailwind + CSS variables
│ ├── tests/
│ ├── index.html
│ └── vite.config.ts
│
├── shared/types/ # Tipos compartidos
├── docker-compose.yml
└── README.md
Siete componentes construidos en TypeScript vanilla sin frameworks, con estado reactivo mediante Observable pattern.
| Componente | Propósito |
|---|---|
Navbar |
Navegación responsive con menú mobile accesible |
HeroSection |
Dashboard IoT en vivo: sensor LCD, tokens, niveles |
HowItWorksSection |
Proceso IoT explicado en 3 pasos |
SimulatorSection |
Simulación interactiva de depósitos RAEE |
LevelsSection |
Sistema de niveles y recompensas |
DashboardSection |
Monitoreo de contenedores con tabla de datos |
FooterSection |
Footer minimalista |
Depósitos de RAEE simulados con variación de peso, cálculo automático de tokens, flash en display LCD y actualización en tiempo real del dashboard.
| Color | Uso |
|---|---|
#0A0A0A |
Fondo |
#1A1A1A |
Superficies, cards |
#E8A317 |
Ámbar vintage — acento principal |
#C24A1C |
Naranja quemado — hover |
#8FEF6D |
Verde CRT — datos IoT |
#CD7F32 |
Bronce real — nivel Bronce |
#94A3B8 |
Gris plata — nivel Plata |
#D97706 |
Ámbar — nivel Oro |
API REST con arquitectura en capas y seguridad integral.
| Método | Ruta | Auth | Descripción |
|---|---|---|---|
| POST | /auth/register |
— | Registro |
| POST | /auth/login |
— | Login |
| POST | /auth/refresh |
— | Refresh token |
| GET | /auth/me |
JWT | Perfil |
| PUT | /auth/me |
JWT | Actualizar perfil |
| POST | /api/transactions |
JWT | Depósito RAEE |
| GET | /api/transactions |
JWT | Historial |
| GET | /api/rewards |
JWT | Recompensas |
| POST | /api/rewards/:id/redeem |
JWT | Canjear |
| GET | /api/dashboard |
JWT | Dashboard |
| GET | /api/admin/dashboard |
Admin | Admin dashboard |
| GET | /api/admin/users |
Admin | Usuarios |
| CRUD | /api/admin/containers |
Admin | Contenedores |
| GET | /health |
— | Health check |
- JWT stateless (15 min access + 7 días refresh)
- Bcrypt (10 rounds)
- Rate limiting (5 intentos / 15 min)
- Helmet + CORS restrictivo
- Validación Joi en todos los inputs
- Prepared statements (Prisma)
Users ──┐ ┌── Containers
├── Transactions ──┘
└── UserRewards ── Rewards
Municipalities ── Containers
Siete modelos: User, Municipality, Container, Transaction, Reward, UserReward, AuditLog.
git clone https://github.com/IzanVil/CleanTech.git
cd CleanTech
docker-compose up -d # PostgreSQL + Redis
cd api
npm install
npm run migrate && npm run seed
npm run dev # localhost:3000
cd web
npm install
npm run dev # localhost:5173CI/CD (GitHub Actions): Push/PR → Lint → Test → Build → Deploy.
AWS: EC2 (auto-scaling), RDS PostgreSQL, ElastiCache Redis, CloudFront CDN, Route53.
cd web && npm run test # Vitest — 31 tests, cobertura >80%
cd api && npm run test # Vitest — unitarios + integración| Fase | Estado |
|---|---|
| Frontend IoT simulado + documentación | ✅ |
| API REST + PostgreSQL + JWT | 🚧 |
| Transacciones reales, recompensas, GPS | ⏳ |
| Admin dashboard + testing + Swagger | ⏳ |
| Docker + CI/CD + deploy AWS | ⏳ |
| MQTT real + Stripe + app mobile | 🔮 |
CleanTech SaaS v2.0.0 — Proyecto TFG de Ingeniería Informática
© 2024 Izan Vil — Licencia MIT
TypeScript estricto, cero AI slop, hardware real.