Skip to content

david-gombos/I2I-Fullstack-Expense-Tracker

Repository files navigation

Spendwise

A modern expense tracking solution built with Spring Boot, React, and MySQL.

  • Created a comprehensive full-stack expense tracking web application, enabling efficient day-to-day financial management.
  • Integrated multi-role functionality with user authentication to ensure secure access for both users and administrators, including features such as sign-in, sign-up, password reset, and email verification.
  • Designed user-friendly dashboards for managing transactions, tracking upcoming/recurring expenses, generating monthly summaries and statistics, and overseeing budgets.
  • Added management features such as search, filter, and pagination for enhanced usability.

Prerequisites

Development Tools

Backend Requirements

  • Java Development Kit (JDK) 21 or higher

Frontend Requirements

  • Node.js 20.x or higher
  • npm 10.x or higher

Database Requirements

Installation Steps

1. Setting Up Development Environment

Install Git

# macOS (using Homebrew)
brew install git

# Windows
Download and install from https://git-scm.com/

Install Java

# macOS (using Homebrew or your IDE or https://www.oracle.com/sa/java/technologies/downloads/)
brew install openjdk

# Windows
Download and install JDK from https://www.oracle.com/sa/java/technologies/downloads/

Install Node.js and npm

# macOS (using Homebrew)
brew install node

# Windows
Download and install from https://nodejs.org/

Install Docker

  • Download and install Docker Desktop from Docker's official website
  • Ensure Docker Desktop is running before proceeding with the project setup

2. Database Setup

# Start the MySQL database using Docker Compose
docker-compose up -d

3. Backend Setup

  • Run ExpenseTrackerApplication.java using your IDE

4. Frontend Setup

# Navigate to the frontend directory
cd frontend

# Install dependencies
npm install

# Start the development server
npm start

5. Test the Application

You can log in using the following users:

Verifying Installation

  1. Backend API should be running on http://localhost:8080
  2. Frontend application should be accessible at http://localhost:3000
  3. MySQL database should be running on port 3306

Common Issues and Troubleshooting

  1. Port Conflicts: Ensure ports 8080, 3000, and 3306 are not in use by other applications
  2. Docker Issues: Make sure Docker Desktop is running before starting the application
  3. Database Connection: Verify MySQL container is running using docker ps
  4. Java Version: Ensure JAVA_HOME is properly set to JDK 21

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •