Skip to content

simongt/budget-planner

Repository files navigation

Budget Planner

Piggy Bank

Budget Planner - Legacy Codebase Analysis & Modernization

A comprehensive analysis and modernization guide for a React budget planning application.

Live Demo   |    Portfolio   |    GitHub

Landing page - Bonfire

📋 Project Overview

This is a budget planning web application built in 2020 that helps users calculate potential savings based on their annual salary and expense allocation preferences. The app follows a classic React + Firebase architecture that was cutting-edge at the time but now shows significant signs of technical debt.

🎯 Core Features

  • User Authentication: Email/password and Google OAuth via Firebase Auth
  • Budget Calculator: Interactive sliders for expense allocation (1-30% of salary)
  • Visual Analytics: DevExtreme pie charts showing salary breakdown
  • Data Persistence: Local storage for user preferences
  • Responsive Design: Material-UI based responsive layout

📚 Documentation

This project includes comprehensive documentation for understanding the current state and planning modernization:

Current State Analysis

Modernization Strategy

Development Guidelines

🚀 Quick Start

Prerequisites

  • Node.js 16+ (recommended: Node.js 18+)
  • npm or yarn

Installation

# Clone the repository
git clone git@github.com:simongt/budget-planner.git
cd budget-planner

# Install dependencies
npm install

# Start development server
npm start

# Open http://localhost:8080/

Available Scripts

npm start          # Development server with hot reloading
npm run serve      # Build and serve from local server
npm run build-prod # Production build
npm run deploy     # Deploy to Firebase

🔧 Current Tech Stack

Frontend

  • React 16.13.1 - Class components with lifecycle methods
  • Material-UI v4 - Component library with HOC styling
  • React Router v5 - Client-side routing
  • React Final Form - Form management
  • DevExtreme - Data visualization

Backend & Services

  • Firebase v7 - Authentication, Firestore, Realtime Database
  • Local Storage - Client-side data persistence

Build System

  • Webpack 4 - Module bundling
  • Babel 7 - JavaScript compilation
  • React Hot Loader - Development hot reloading

🎯 Modernization Goals

The project aims to modernize to current industry standards:

  • React 18 with Concurrent Features
  • TypeScript for type safety
  • MUI v5 with Emotion styling
  • Redux Toolkit for state management
  • React Router v6 with data APIs
  • Modern charting libraries (Recharts)
  • Performance optimizations (memoization, code splitting)
  • Comprehensive testing (Jest, RTL, Cypress)

📊 Project Status

Component Current Status Target Status
React Version 16.13.1 18.2.0
TypeScript ❌ Not used ✅ Strict mode
State Management ❌ Manual state ✅ Redux Toolkit
Component Pattern ❌ Class components ✅ Functional + Hooks
Styling ❌ Mixed approaches ✅ MUI v5 + Emotion
Testing ❌ No tests ✅ Comprehensive suite
Performance ❌ Unoptimized ✅ Optimized

🤝 Contributing

This project is currently in the process of modernization. Contributions are welcome, especially:

  1. Code Reviews of modernization changes
  2. Performance Improvements suggestions
  3. Testing implementations
  4. Documentation improvements

📄 License

This project is licensed under the ISC License.


Note: This is a legacy codebase undergoing modernization. The documentation reflects both the current state and the planned improvements. For the most up-to-date information, refer to the individual documentation files linked above.

About

Simple budget planning web responsive SPA, built using React, Redux, Firebase with OAuth integration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors