Skip to content

A Django-based financial manager to track transactions, set monthly targets, manage wishlists, and schedule recurring payments.

License

Notifications You must be signed in to change notification settings

Imhotep-Tech/imhotep_finance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Imhotep Financial Manager

Project Status: Active License

Take control of your finances with Imhotep Financial Manager – a powerful, open-source personal finance app built with Django and React. Track transactions, manage budgets, create wishlists, set savings goals, and automate recurring expenses effortlessly. Perfect for individuals seeking a secure, user-friendly way to monitor spending, analyze patterns, and achieve financial freedom.

πŸ’° Features

Core Financial Management

  • Financial Tracking: Easily deposit and withdraw funds with detailed transaction history (powered by Django models for robust data handling)
  • Smart Categories: Enhanced transaction categorization with intelligent suggestions based on your most frequent categories
  • Transaction Analysis: View and analyze your spending patterns with detailed pie charts for expenses and income categories

Automation & Intelligence

  • Scheduled Transactions: Set up automated monthly recurring transactions for bills, income, and regular expenses (managed via Django's ScheduledTransaction model)
  • Smart Suggestions: Category recommendations based on your transaction history and patterns
  • Error Handling: Comprehensive error management system with user-friendly custom error pages

Goal Setting & Planning

  • Wishlist Management: Create and prioritize items you want to purchase with detailed tracking (fully integrated with Django's Wishlist model and status updates)
  • Goal Setting: Set monthly savings targets to help achieve your financial objectives (using Django's Target model)
  • Financial Analytics: Advanced charts and visualizations to understand your spending habits

User Experience

  • Multi-Currency Support: Support for multiple currencies with real-time exchange rates
  • Responsive Design: Optimized experience across desktop, tablet, and mobile devices
  • Enhanced Navigation: Improved mobile navigation with better responsiveness
  • Modern UI/UX: Clean, intuitive interface with modern design patterns

Security & Performance

  • Advanced Security: CSRF protection, JWT authentication, and enhanced security measures in Django
  • Performance Optimized: Fast loading times with React's efficient rendering and Django's robust backend
  • Google OAuth: Secure login with Google account integration via Django
  • Data Backup: Automated database backup system for data protection
  • Docker Support: Containerized deployment for easy setup and scalability
  • Data Migration: Includes a Django management command to migrate data from the old version (see migrate_old_data.py)

πŸ–ΌοΈ Screenshots

Screenshot from 2025-08-31 12-07-04

Landing Page

Screenshot from 2025-08-31 12-07-18

Login Page

Screenshot from 2025-08-31 12-28-37

Dashboard with transaction overview

Screenshot from 2025-08-31 12-30-19

Transaction history

Screenshot from 2025-08-31 12-30-25

Monthly Reports

πŸ”§ Technology Stack

  • Frontend: React, Vite, Tailwind CSS
  • Backend: Django REST Framework (with models for Transactions, NetWorth, Wishlist, etc.)
  • Database: PostgreSQL
  • Deployment: Docker, Docker Compose
  • Authentication: JWT, Google OAuth

πŸš€ Quick Start

Prerequisites

Setup with Docker (Recommended)

  1. Clone the repository

    git clone https://github.com/Imhotep-Tech/imhotep_finance.git
    cd imhotep_finance
  2. Set up environment variables Create .env files for backend and frontend as needed (adapt from your project structure).

  3. Launch the application

    docker compose up --build

    This will:

    • Set up PostgreSQL database
    • Build and run the Django backend API
    • Build and run the React frontend
    • Enable hot reloading for development
  4. Access the application

Manual Setup (Alternative)

  1. Clone the repository

    git clone https://github.com/Imhotep-Tech/imhotep_finance.git
    cd imhotep_finance
  2. Backend Setup (Django)

    • Install Python 3.11+
    • Create virtual environment and install dependencies
    • Set up PostgreSQL database
    • Run migrations and start server
  3. Frontend Setup (React)

    • Install Node.js 20+
    • Install dependencies with npm install
    • Start development server with npm run dev
  4. Environment Variables Create .env files with necessary configurations (DATABASE_URL, SECRET_KEY, etc.).

πŸ“˜ API Docs (Swagger) and Testing

  • Swagger UI is available at: /swagger/ (JSON at /swagger.json, ReDoc at /redoc/).
  • Authorization in Swagger:
    • Click the "Authorize" button in the top-right.
    • Enter your JWT in this format: Bearer <your_access_token>
    • The header sent will be: Authorization: Bearer <token>.
  • Getting a token:
    • Use POST /api/auth/login/ with valid credentials to receive access and refresh tokens.
    • Alternatively, Google OAuth: POST /api/auth/google/authenticate/ with an authorization code.

Recommended API testing client

  • While Swagger is great for discovery, it's recommended to use Postman (or Insomnia) for end-to-end flows, collections, and environment-driven testing.
  • In Postman, set Authorization type to "Bearer Token" and paste the access token, or add a default header Authorization: Bearer <token> to the collection.

πŸ‘₯ Contributing

We welcome contributions to Imhotep Financial Manager! Here's how you can contribute:

  1. Fork the repository and create your feature branch

    git checkout -b feature/amazing-feature
    
  2. Make your changes and test them thoroughly

  3. Commit your changes

    git commit -m 'Add some amazing feature'
    
  4. Push to your branch

    git push origin feature/amazing-feature
    
  5. Open a Pull Request describing your changes and their benefits

Development Setup

Follow the Docker or manual setup instructions above. For Docker:

  • Hot reloading is enabled for live code changes
  • Volumes are mounted for instant updates
  • Debug mode is active for both frontend and backend

πŸ“ Code of Conduct

Please read our Code of Conduct to understand the expectations for participation in our community.

πŸ“„ License

This project uses a dual-licensing approach:

  • GNU Affero General Public License v3.0 (AGPL-3.0) for non-commercial use and contributions
  • Commercial License for commercial use, redistribution, or use in commercial products/services

For commercial licensing inquiries, please contact imhoteptech@outlook.com.

About

A Django-based financial manager to track transactions, set monthly targets, manage wishlists, and schedule recurring payments.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 5