M3H Construtora is a platform designed to serve both the clients and administrators of the construction company. The public-facing area includes dynamic pages for each construction project, allowing users to learn about the progress and details of each project. It also includes a contact page to facilitate communication with potential clients. The client area offers detailed insights into the status of ongoing projects, displaying information such as the percentage of completion, outstanding invoices, observations on the project's progress, and important documents, including official reports and memos. This area is focused on providing transparency and organization, allowing clients to track project progress easily. For administrators, the system allows the creation and management of new projects, issuing invoices, scheduling visits, and linking these actions to the respective clients and projects, making the management process efficient and ensuring all information is centralized and easily accessible.
This project showcases my skills across various areas and technologies. Explore the details below to better understand its scope and execution.
Liked the project? Get in touch to discuss how I can help bring your idea to life.
Get in touchThe project presented challenges in both the back-end and front-end. On the back-end, building a fully dedicated and external API required learning about best deployment practices, environment configuration, and integration with services like the Supabase bucket, which was used to store images, invoices, and documents related to clients and construction projects. On the front-end, a major challenge was implementing complex forms using React Hook Form for efficient management and Zod to ensure consistent validations across both the front-end and back-end. Another key feature was the password recovery system using a magic link, built from scratch. This system generates a secure link sent via email, with a token stored in the database that expires after one hour, ensuring a secure authentication process. Additionally, the project involved various dynamic filters in both the public and admin areas, leveraging searchParams to manage searches and listings. This required careful planning to ensure performance and usability, allowing data to be filtered directly in the database and properly reflected on the front-end.