Back to selected work

ENGINEERING CASE STUDY · FULL-STACK APPLICATIONS

Carbon Tracker
Engineering case study.

VUE 3 · VITE · NODE.JS · EXPRESS 5 · SQLITE · JWT · BCRYPT · AXIOS

A compact full-stack app for logging daily energy use, with JWT authentication and SQLite.

Role
Full stack developer
Type
Built as an app for an NGO
Status
Delivered for a client
Source
Base project public; client-modified components private

01 / OVERVIEW

The project

A full-stack application made for an NGO to record daily electricity consumption in kWh. Users register, log in and keep a personal history of their usage, which is the raw data behind a carbon footprint. The public repository contains the base project only; the components completed or modified for the client are privately owned and cannot be shared.

02 / ARCHITECTURE

How it fits together

The data flow from the Vue interface to the SQLite database.

FRONTEND

Vue 3 app

Sign-in and energy log screens, calling the API with axios.

Based on the published repository.

03 / CONTRIBUTION

My contribution

  • Built an Express API with registration and login, bcrypt-hashed passwords and JWTs that expire after two hours.
  • Added endpoints to create and list energy logs, scoped to the authenticated user.
  • Built the Vue 3 and Vite interface for sign-in and for adding and viewing logs, calling the API through axios.
  • Used SQLite so the database is created automatically on first run and needs no extra setup.

04 / ENGINEERING

Engineering notes

  • A deliberately small scope: one API file and one main component, which makes the whole data flow easy to follow.
  • Every log query is filtered by the user ID from the verified token, so users cannot read each other's data.
  • The frontend reads the API address from an environment variable, so it can point at any backend.

TECHNOLOGY

Tools selected for the work.

Vue 3ViteNode.jsExpress 5SQLiteJWTbcryptaxios