Skip to content

Latest commit

 

History

101 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartBudget Pro

SmartBudget Pro is a full-stack personal finance and budgeting platform built with Node.js, Express.js, EJS, and PostgreSQL.

The application allows users to manage transactions, create budgets, track financial goals, and interact with financial advisors through a multi-stage approval workflow system.

This project is being developed as the final project for CSE 340 Web Backend Development and is designed to demonstrate modern backend development practices including MVC architecture, authentication, authorization, relational database design, server-side rendering, and production deployment.


📸 Application Preview

Landing Page

Landing Page


User Dashboard

Dashboard


Features

Authentication and Authorization

  • Session-based authentication using express-session

  • Password hashing with bcrypt

  • Multiple user roles:

    • Admin
    • Financial Advisor
    • Standard User

Financial Management

  • Income and expense tracking
  • Budget management
  • Category-based transactions
  • Financial analytics dashboard

Financial Goal Workflow

Users can:

  • Create financial goals
  • Submit goals for review
  • Track approval status

Advisors and admins can:

  • Review goals
  • Leave advisor notes
  • Approve or reject submissions
  • Update workflow statuses

Technology Stack

Backend

  • Node.js
  • Express.js
  • PostgreSQL
  • EJS
  • express-session
  • bcrypt

Frontend

  • EJS server-side rendering
  • Tailwind CSS
  • React components for interactive dashboard widgets

Architecture

The project follows MVC (Model-View-Controller) architecture.

src/
├── controllers/
├── database/
├── middleware/
├── models/
├── public/
├── routes/
├── utilities/
└── views/

Project Goals

This project is intended to demonstrate:

  • Relational database design
  • Authentication and authorization
  • Secure backend development
  • Dynamic server-side rendering
  • Multi-stage workflow systems
  • Production-ready deployment practices

Planned Features

  • Admin dashboard
  • Advisor review queue
  • User analytics dashboard
  • Financial reports
  • Budget recommendations
  • Goal progress tracking
  • Search and filtering

Installation

Clone Repository

git clone <repository-url>

Install Dependencies

Using pnpm:

pnpm install

Start Development Server

pnpm dev

Environment Variables

Create a .env file in the project root:

PORT=3000
NODE_ENV=development
DB_URL=your_supabase_postgres_connection_string
SESSION_SECRET=replace_with_a_long_random_value
ENABLE_SQL_LOGGING=false

For Render, set NODE_ENV=production and add DB_URL and SESSION_SECRET in the service's Environment settings. Use the Supabase session pooler connection string when the direct database endpoint is not reachable over IPv6. The application configures TLS for Supabase; do not set NODE_TLS_REJECT_UNAUTHORIZED=0 or add a legacy DB_SSL_CA value.


Development Status

Currently in active development.

Sprint 0 completed:

  • Initial architecture planning
  • MVC folder structure
  • Project setup
  • README initialization

Author

Laulin Vasquez

About

Smart Budget Pro is a personal finance web application designed to help users track income, expenses, and overall spending habits in one place. It provides an intuitive dashboard where users can categorize transactions, set budget limits, and visualize their financial progress over time.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages