Skip to content

FromSmall2Big/Finance-Balanc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

190 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Balanc - Personal Finance Management Application

GitHub license Node.js Version Contributors

Balanc is a comprehensive personal finance management application designed to help users track their income, expenses, investments, and transactions in one place. Built with modern web technologies, Balanc offers a seamless user experience with powerful visualization tools. Balanc is a personal finance app that helps you track expenses, income, and investments in one place. Get clear insights into your spending habits and financial health with intuitive dashboards and smart analytics.

Table of Contents

✨ Features

Core Functionality

  • Comprehensive Dashboard

    • Financial health overview
    • Monthly spending trends
    • Net worth tracking
  • Income Management

    • Multiple income source tracking
    • Recurring income detection
    • Income categorization
  • Expense Tracking

    • Smart expense categorization
    • Budget alerts and notifications
    • Receipt scanning integration
  • Investment Monitoring

    • Real-time portfolio tracking
    • Asset allocation visualization
    • Historical performance charts
  • Transaction System

    • Advanced filtering (date, amount, category)
    • Bulk transaction operations
    • CSV import/export

Technical Features

  • πŸ”’ Secure authentication (Google OAuth + JWT)
  • ⚑ Redis caching for frequent queries
  • πŸ“Š Interactive data visualizations
  • πŸ“± Fully responsive design
  • πŸ”„ Real-time data synchronization

πŸ›  Tech Stack

Frontend

Technology Purpose
Next.js 14 Framework with App Router
TypeScript Type safety
Tailwind CSS Utility-first styling
shadcn/ui Beautiful component library
Framer Motion Smooth animations
Chart.js Data visualization
NextAuth.js Authentication
React Hook Form And Zod Form management
Redux State management
Axios HTTP requests

Backend

Technology Purpose
Node.js Runtime environment
Express Web framework
MongoDB Database (with Mongoose)
Redis Caching layer
JWT Authentication tokens
Prisma ORM for MongoDB
Bcrypt Password hashing
Nodemailer Email notifications

πŸš€ Installation

Prerequisites

  • Node.js v18+
  • MongoDB Atlas account or local MongoDB
  • Redis server
  • Google OAuth credentials
  • Git

Step-by-Step Setup

  1. Clone the repository
git clone https://github.com/yourusername/balanc.git
cd balanc

Installation

Prerequisites

  • Node.js
  • MongoDB

frontend Setup

Navigate to the backend directory:

cd frontend

Backend Setup

Navigate to the backend directory:

cd backend

Backend Setup

Navigate to the backend directory:

cd backend

Install dependencies:

npm install

Start the backend server:

npm run dev
node index.js

Frontend Setup

Navigate to the frontend directory:

cd frontend

Install dependencies:

npm install

Start the frontend server:

npm run dev

πŸ“Έ Configuration

βš™οΈ Environment Configuration

πŸ”™ Backend Configuration (backend/.env)

# ========================
# πŸš€ Server Configuration
# ========================
PORT=8000
NODE_ENV=production
BACKEND_APP_URL=http://localhost:8000
CLIENT_APP_URL=http://localhost:3000

# ========================
# πŸ—ƒοΈ Database Configuration
# ========================
DATABASE_URL=mongodb://localhost:27017/balanc_prod

# ========================
# πŸ” Authentication
# ========================
JWT_SECRET_KEY=your_strong_jwt_secret_here
SESSION_SECRET=your_session_secret_here

# ========================
# πŸ“§ Email Service
# ========================
SMTP_HOST=your.smtp.server.com
SMTP_USER=your_smtp_username
SMTP_PASSWORD=your_smtp_password
FROM_EMAIL=[email protected]

# ========================
# πŸš€ Performance & Caching
# ========================
REDIS_HOST=localhost
REDIS_URL=redis://localhost:6379
REDIS_PASSWORD=your_redis_password
REDIS_URL1=redis_backup_url_if_needed

πŸ”™ frontend Configuration (frontend/.env)

# ========================
# 🌐 Application URLs
# ========================
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000

# ========================
# πŸ”‘ Authentication
# ========================
NEXTAUTH_SECRET=your_nextauth_secret_here
GOOGLE_CLIENT_ID=your_google_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_google_client_secret_here

# ========================
# πŸ“Š Analytics & APIs
# ========================
NEXT_TELEMETRY_DISABLED=1
ANALYZE=true

# RapidAPI Configuration
X_RAPIDAPI=your_rapidapi_key
NEXT_PUBLIC_RAPIDAPI1=api_key_1
NEXT_PUBLIC_RAPIDAPI2=api_key_2
NEXT_PUBLIC_RAPIDAPI3=api_key_3
NEXT_PUBLIC_RAPIDAPI4=api_key_4

# ========================
# πŸ› οΈ Environment
# ========================
NODE_ENV=production

πŸ“Έ Screenshots

Image Image Image Image Image Image Image

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes. Make sure to follow the code style and include relevant tests.

Contact

For any questions or suggestions, feel free to contact me.

Happy coding!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages