logo

Full-stack Developer Portfolio | Hubert Pawlak

Home Panel

Secure control panel accessible anywhere. Currently available only in Polish. It started as a simple local temperature monitoring system. The end goal is to expand it into a complete solution to manage things at my home such as motors, thermostats and pumps based on manual input or data gathered from sensors. It would be great to automatically open blindfolds, water my plants or simply get notified when something goes wrong without my interaction. There are existing solutions to these problems but I wanted to improve both my programming and tinkering skills.

I chose Mantine as my components library. I really like the looks of it plus their hooks made my work so much easier. Under the hood I'm sticking with React and Next.js. This time I've tried tRPC instead of a standard CRUD RESP API and it turned out be more efficient while also being more secure with easy input validation. I'm storing my data on Supabase and Upstash for serverless architecture compatibility. Authentication is handled by SuperTokens. Traffic from data sources is authenticated using JWTs.

screenshot of a control panel with temperature sensors

Using JWTs for Machine-to-Machine traffic allows fast authentication without having to call the database every time data is uploaded. It decreased latency and operational costs. I may add some sort of token blacklisting in the future or make key rotation easier in case a key is compromised.

screenshot of both data source addition and sensor editing pagescreenshot of an admin panel to manage users

Everything is designed for both mobile and desktop screens.