Skip to content

IzanVil/CleanTech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 CleanTech SaaS — Smart RAEE IoT Platform

Build Status TypeScript Node.js Express.js PostgreSQL Prisma JWT Docker Linux DeepSeek Code License

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.


Stack

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)

Estructura

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

Frontend

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

Simulación HX711

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.

Paleta

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

Backend

API REST con arquitectura en capas y seguridad integral.

Endpoints

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

Seguridad

  • 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)

Modelo de datos

Users ──┐          ┌── Containers
        ├── Transactions ──┘
        └── UserRewards ── Rewards

Municipalities ── Containers

Siete modelos: User, Municipality, Container, Transaction, Reward, UserReward, AuditLog.


Desarrollo local

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:5173

Despliegue

CI/CD (GitHub Actions): Push/PR → Lint → Test → Build → Deploy.

AWS: EC2 (auto-scaling), RDS PostgreSQL, ElastiCache Redis, CloudFront CDN, Route53.


Testing

cd web && npm run test    # Vitest — 31 tests, cobertura >80%
cd api && npm run test    # Vitest — unitarios + integración

Roadmap

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.

About

CleanTech

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages