← Back to Projects
Expense Tracker

Expense Tracker

A full-stack personal finance web app for tracking daily expenses, invoices, and spending habits with secure user accounts.

A full-stack personal finance web application that helps users monitor day-to-day spending and manage invoices. Users can sign up securely or log in with Google, record new income and expenses, categorise transactions, and review spending breakdowns in real time.

ReactTypeScriptReduxStyled ComponentsNode.jsExpressMongoDB

Core Problem Solved

Keeping track of receipts and spending across multiple personal accounts is often disorganised. This app provides a simple, centralised ledger to record transactions, view categorised totals, and manage client invoices.

Why I Built This

Developed to gain solid hands-on experience in building secure, authenticated CRUD applications with React, Node.js, and MongoDB.

Features

  • •User Authentication: Sign up securely via email and password or Google OAuth.
  • •Transaction Management: Full CRUD functionality to create, view, edit, and delete expense and income records.
  • •Invoice Tracking: Track client invoices alongside everyday expenses.
  • •Centralised State: Redux store maintains transaction lists and balances across views.

Architecture

Frontend: • React Single-Page Application written in TypeScript. • Styled Components for modular, component-scoped CSS styling. • Redux store managing user session data and transaction histories. Backend: • Node.js and Express RESTful API. • MongoDB document database for storing flexible transaction and user records.

Challenges

  • •Mastering Core Backend Principles: Built as a foundational project to gain practical mastery of essential backend concepts, including RESTful API design, database modelling with MongoDB, and secure authentication flows.

Tradeoffs and Decisions

Selected MongoDB with Express (MERN stack) to explore document-oriented data storage and rapid schema prototyping for personal financial records.

Impact

Served as a practical milestone for building end-to-end full-stack applications with user authentication and database persistence.