Prácticas progresivas de C++ y POO
El invernadero evolucionó desde las primeras prácticas hasta convertirse en un proyecto final integrado.

Sistema de invernadero en C++ desarrollado para AST (Ampliación de Sistemas Telemáticos), asignatura de la URJC centrada en construir aplicaciones telemáticas mediante prácticas progresivas. El proyecto final integró diseño orientado a objetos, usuarios por roles, sensores, cámaras, abstracción de hardware, persistencia en ficheros, diagramas UML con UMLET y documentación con Doxygen. Obtuvo Matrícula de Honor, la máxima distinción académica de la asignatura.
Narrativa del proyecto
GreenHouse fue el proyecto final de AST, una asignatura de la URJC donde el código evolucionaba a través de prácticas sucesivas. El objetivo era construir un sistema de gestión de invernadero en C++ aplicando programación orientada a objetos, no solo resolver ejercicios aislados. La versión final conectaba usuarios, sensores, cámaras, interfaces de hardware, persistencia, documentación y diseño UML dentro de un mismo sistema.
La arquitectura se organiza alrededor de una clase principal GreenHouse que coordina AlarmSensors, ManageCameras, MonitoringSystem y UsersServer. El sistema incluye usuarios Admin, Employee y Guest; una capa de servidor/base de datos de usuarios; cámaras RGB y térmicas; sensores de temperatura, calidad del aire, humedad, presión, luz y pH; y abstracciones de hardware para pantalla, teclado e interruptor. Además, persiste usuarios y sensores en ficheros de texto y binarios como users.txt, users.dat, sensors.txt y sensors.dat.
Una parte importante del proyecto fue la curva de aprendizaje. Hacia la mitad de la asignatura, después de recibir feedback directo de que con lo que llevaba objetivamente no podría pasar de un 5/10, lo tomé como punto de inflexión. Revisé dónde fallaba mi diseño en C++ y POO, reconstruí la arquitectura con más disciplina durante Semana Santa, mejoré la documentación y los diagramas, y convertí la entrega final en mi primera Matrícula de Honor. Es uno de los proyectos académicos de los que más orgulloso estoy porque el resultado nació de corregir errores reales de diseño, no de un camino fácil.
Rol y contribuciones
Desarrollador único del sistema final GreenHouse. Diseñé la estructura orientada a objetos, implementé las clases en C++, conecté gestión de usuarios por roles, sensores, cámaras, hardware de monitorización, persistencia binaria/texto y documentación Doxygen. Usé UMLET para modelar la organización de clases e iteré desde las primeras prácticas hasta la entrega final integrada.
Versiones e hitos
El invernadero evolucionó desde las primeras prácticas hasta convertirse en un proyecto final integrado.
Un feedback directo evidenció debilidades en el enfoque inicial de C++/POO y motivó un rediseño más profundo.
Trabajo intensivo en estructura de clases, diagramas UMLET, comentarios Doxygen y persistencia en ficheros.
Entrega final integrada reconocida con la máxima distinción académica de la asignatura.
Tecnologías