Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 2.66 KB

README.md

File metadata and controls

52 lines (35 loc) · 2.66 KB

VoltVector Backend

Backend of my energy management system for users with a Enphase solar system and smart home devices from Meross. Users can log into this platform, connect their enphase solar energy account and smart home meross account to view energy data production, consumption and control their smart home devices.

Implemented:

  • Login with custom JWT Authentification. (Access tokens are not stored in local storage, but in memory only and refresh tokens are sent via protected http only header cookie)
  • permission roles & protected routes
  • OAuth process to let users connect their solar energy system from Enphase. Importer runs every 15 minutes. A data verification job checking for data consistency once a day.
  • Auth process to let users connect and control their Smart Home devices. (Meross does currently not offer any form of oauth process, but user credentials are stored encrypted)
  • UI to view and filter energy production and consumption data of their solar system and UI cards to control their smart home devices and view the device level energy consumption.
  • Admins can CRUD users via the UI

While the foundation for manual view and control of solar systems and smart home devices is implemented, there is still a lot todo.

TODO:

  • more error handling to increase robustness of the platform
  • building some kind of automation that controls devices based on prior custom defined priority groups via UI.

Stack: FE:

  • Typescript
  • React
  • Next.js 13 with app router
  • TailwindCSS (using Flowbite components)

BE:

  • Typescript
  • ExpressJS
  • Prisma as ORM
  • PostgresSQL

dashboard-overview

device-energy-overview

image

image

image

smart-home-auth

smart-home-devices

image

image

image