Progressive C++ and OOP practice work
The greenhouse system evolved from early practical assignments into a final integrated project.

Academic C++ greenhouse system developed for AST (Ampliación de Sistemas Telemáticos), a URJC telematics course focused on building telematic applications through progressive practical work. The final project integrated object-oriented design, role-based users, sensors, cameras, hardware abstraction, file persistence, UML diagrams with UMLET, and Doxygen documentation. It was awarded Matrícula de Honor, the highest academic distinction in the course.
Project narrative
GreenHouse was the final project for AST, a URJC subject where the codebase evolved through successive practical assignments. The goal was to build a greenhouse management system in C++ using object-oriented programming, not just isolated exercises. The final version connected users, sensors, cameras, hardware interfaces, persistence, documentation, and UML design into a single system.
The architecture is organized around a main GreenHouse class that coordinates AlarmSensors, ManageCameras, MonitoringSystem, and UsersServer. The system includes Admin, Employee, and Guest users; a user database/server layer; RGB and temperature cameras; sensors for temperature, air quality, humidity, pressure, light, and pH; and hardware abstractions for screen, keyboard, and switch. It also persists users and sensors in text and binary files such as users.txt, users.dat, sensors.txt, and sensors.dat.
A key part of the project was the learning curve. Around the middle of the course, after receiving direct feedback that the current work would objectively not go beyond a 5/10, I used that as a turning point. I reviewed where my C++ and OOP design were failing, rebuilt the architecture with more discipline during the Easter break, improved documentation and diagrams, and turned the final delivery into my first Matrícula de Honor. It remains one of the academic projects I am most proud of because the result came from correcting real design mistakes, not from starting with an easy path.
Role & contributions
Solo developer of the final GreenHouse system. Designed the object-oriented structure, implemented the C++ classes, connected role-based user management, sensors, cameras, monitoring hardware, binary/text persistence, and Doxygen documentation. Used UMLET to model the class organization and iterated from the early practical assignments to the final integrated delivery.
Versions & milestones
The greenhouse system evolved from early practical assignments into a final integrated project.
Direct feedback exposed weaknesses in the initial C++/OOP approach and motivated a deeper redesign.
Focused work on class structure, UMLET diagrams, Doxygen comments, and file persistence.
Final integrated delivery awarded the highest academic distinction in the subject.
Tech stack