Skip to content

About

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

Resources

Stars

0 stars

Watchers

1 watching

Forks

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

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages