The problem
Urban gardening is one of the most accessible climate adaptation strategies, yet in Brazil there are very few apps supporting everyday people in planting and maintaining gardens. The main barrier is a lack of accessible technical knowledge about species, planting times, and maintenance.
What the project proposed
A platform to help people design and plan gardens, with a plant database and technical data sheets, a planting calendar, weather integration, AI-based plant identification, and a community for sharing knowledge. An individual project: problem framing, product design, and implementation were all mine, with no external client or team.
Design process
Research started from IPCC reports and academic literature on urban gardening, and a market scan: existing apps were focused on international markets, technically complex, or not designed for small-scale urban gardeners. Three user roles guided the product: Gardener, Admin, and Community Manager. They led to 22 use cases, 26 functional requirements, and 11 non-functional requirements, and the interface was designed in Figma as a high-fidelity navigable prototype.
Engineering process
A domain model, a relational database in MySQL with TypeORM, and a test plan came before the code: a Node.js backend with Express and a Vue.js frontend with TypeScript, deployed on a serverless platform. By the end, the relational model was implemented, a complete plant data sheet was created, and the planting-date timer worked. Full search remained partially incomplete, due to scope and timeline constraints.
What I would do differently
Design and engineering as one workflow. I designed features as UX flows without considering the architectural implications. Today I would prototype in Figma and validate technical feasibility at the same time.
A smaller scope. Twenty-six requirements, three roles, five external integrations, and three parallel databases were too much for a solo project, and created more decision paralysis than ambition. A smaller MVP would have produced a more complete and stable product.
Engineering changed my design. I think in data models when I draw components, in API response shapes when I design loading states, and in database constraints before committing to a flow. That integrated perspective is the most durable thing the project taught me.