Skip to content

behan02/Spend-Smart-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

309 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° SpendSmart - Personal Finance Management System

SpendSmart is a comprehensive personal finance management application built with React, TypeScript, and Material-UI. It helps users track expenses, manage budgets, set financial goals, and generate detailed financial reports.

React TypeScript Material-UI Vite

✨ Features

πŸ‘€ User Management

  • User Authentication: Secure login and registration system
  • Password Recovery: Forgot password and reset password functionality
  • Email Verification: Email verification for new accounts
  • Admin Portal: Separate admin login and management system

πŸ“Š Dashboard

  • Overview Cards: Quick view of financial summary
  • Interactive Charts: Bar graphs and pie charts for expense visualization
  • Budget Tracking: Monitor budget usage and spending patterns
  • Goal Progress: Track progress towards financial goals
  • Recent Transactions: View latest transaction activities

πŸ’Έ Transaction Management

  • Add Transactions: Record income and expenses
  • Category Management: Organize transactions by 43+ predefined categories
  • Transaction History: View and filter transaction records
  • Search & Filter: Find specific transactions quickly

🎯 Goal Management

  • Create Goals: Set financial goals with target amounts and deadlines
  • Track Progress: Monitor goal completion with visual progress bars
  • Savings Records: Add and manage saving records for each goal
  • Goal Details: Detailed view of individual goals with history

πŸ’° Budget Management

  • Create Budgets: Set monthly budgets for different categories
  • Budget Tracking: Monitor spending against budget limits
  • Category Budgets: Detailed budget breakdown by category
  • Budget Alerts: Visual indicators for budget utilization

πŸ“ˆ Report Generation

  • Financial Reports: Generate comprehensive financial reports
  • Date Range Selection: Custom date range for report generation
  • Export Options: Export reports as PDF or CSV
  • Visual Analytics: Charts and graphs for better insights
  • Monthly Breakdown: Detailed monthly expense analysis

βš™οΈ Settings

  • Profile Management: Update user profile information
  • Preferences: Customize application settings

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn package manager

Installation

  1. Clone the repository:
git clone https://github.com/behan02/Spend-Smart-frontend.git
cd Spend-Smart-frontend
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open your browser and navigate to:
http://localhost:5173

πŸ“œ Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production
  • npm run lint - Run ESLint for code quality
  • npm run preview - Preview production build locally

πŸ› οΈ Tech Stack

Core Technologies

  • React 19.1.0 - UI library
  • TypeScript 5.7.2 - Type-safe JavaScript
  • Vite 6.3.1 - Build tool and dev server

UI Framework

  • Material-UI 7.0.2 - Component library
  • @mui/icons-material - Icon components
  • @emotion/react & @emotion/styled - CSS-in-JS styling

Routing & Forms

  • React Router DOM 7.5.1 - Client-side routing
  • React Hook Form 7.60.0 - Form management and validation

Charts & Visualization

  • @mui/x-charts 7.27.1 - Material-UI charts
  • Recharts 3.1.0 - Composable charting library

Data Handling

  • Axios 1.10.0 - HTTP client
  • date-fns 2.29.3 - Date utility library
  • Day.js 1.11.13 - Date manipulation

Reports & Export

  • jsPDF 3.0.1 - PDF generation
  • jspdf-autotable 5.0.2 - PDF table generation
  • html2canvas 1.4.1 - Screenshot/canvas rendering

Notifications

  • Notistack 3.0.2 - Toast notifications

πŸ“ Project Structure

src/
β”œβ”€β”€ api/                    # API service configurations
β”‚   β”œβ”€β”€ budgetApi.ts
β”‚   β”œβ”€β”€ categoryApi.ts
β”‚   β”œβ”€β”€ config.ts
β”‚   β”œβ”€β”€ goalApi.ts
β”‚   └── transactionApi.ts
β”œβ”€β”€ assets/                 # Static assets
β”‚   β”œβ”€β”€ categoryIcons/      # Category icon definitions
β”‚   β”œβ”€β”€ images/            # Images and logos
β”‚   └── styles/            # Theme configuration
β”œβ”€β”€ components/            # Reusable components
β”‚   β”œβ”€β”€ AdminLoginComponents/
β”‚   β”œβ”€β”€ AdminRegisterComponents/
β”‚   β”œβ”€β”€ Budget/
β”‚   β”œβ”€β”€ DashboardComponents/
β”‚   β”œβ”€β”€ GoalDetailsPageComponents/
β”‚   β”œβ”€β”€ GoalsPageComponents/
β”‚   β”œβ”€β”€ ReportComponents/
β”‚   β”œβ”€β”€ Transaction/
β”‚   β”œβ”€β”€ footer/
β”‚   β”œβ”€β”€ header/
β”‚   └── sidebar/
β”œβ”€β”€ context/               # React Context providers
β”‚   β”œβ”€β”€ GoalContext.tsx
β”‚   └── UserContext.tsx
β”œβ”€β”€ pages/                 # Page components
β”‚   β”œβ”€β”€ AdminLogin/
β”‚   β”œβ”€β”€ AdminRegister/
β”‚   β”œβ”€β”€ Budgets/
β”‚   β”œβ”€β”€ Dashboard/
β”‚   β”œβ”€β”€ Goals/
β”‚   β”œβ”€β”€ Report/
β”‚   β”œβ”€β”€ Transaction/
β”‚   β”œβ”€β”€ UserLogin/
β”‚   β”œβ”€β”€ UserRegister/
β”‚   └── UserSettings/
β”œβ”€β”€ services/              # Business logic services
β”‚   β”œβ”€β”€ budgetService.ts
β”‚   β”œβ”€β”€ GoalDetailsService.ts
β”‚   β”œβ”€β”€ goalService.ts
β”‚   └── savingRecordService.ts
β”œβ”€β”€ types/                 # TypeScript type definitions
β”‚   └── budgetTypes.ts
β”œβ”€β”€ utils/                 # Utility functions
β”‚   └── categoryUtils.ts
β”œβ”€β”€ App.tsx               # Main application component
└── main.tsx              # Application entry point

🎨 Features in Detail

Category Icons

The application includes 43+ predefined categories including:

  • Income: Salary, Business, Freelance, Investments, etc.
  • Expenses: Food, Transportation, Entertainment, Healthcare, etc.
  • Utilities: Electricity, Water, Internet, Phone, etc.
  • Personal: Shopping, Education, Fitness, etc.

User Routes

  • / - User Login
  • /register - User Registration
  • /dashboard - Main Dashboard
  • /report - Report Overview
  • /goals - Goals Management
  • /goals/:id - Goal Details
  • /transaction - Transaction Management
  • /budget - Budget Overview
  • /budgets/:id - Budget Details
  • /forgetpassword - Password Recovery
  • /resetpassword - Reset Password
  • /verify-email - Email Verification

Admin Routes

  • /admin/login - Admin Login
  • /admin/register - Admin Registration
  • /admin/forgetpassword - Admin Password Recovery
  • /admin/resetpassword - Admin Reset Password
  • /admin/verification - Admin Email Verification

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory:

VITE_API_BASE_URL=your_backend_api_url

Theme Customization

The application uses Material-UI theming. Customize the theme in:

src/assets/styles/theme.ts

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/AmazingFeature
  3. Commit your changes: git commit -m 'Add some AmazingFeature'
  4. Push to the branch: git push origin feature/AmazingFeature
  5. Open a Pull Request

πŸ“ License

This project is private and proprietary.

πŸ‘₯ Authors

πŸ› Known Issues

  • 7 security vulnerabilities detected (1 critical, 4 high, 2 low)
  • Run npm audit fix to address vulnerabilities

πŸ“ž Support

For support, please open an issue in the GitHub repository.


Built with ❀️ using React, TypeScript, and Material-UI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages