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.
- 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
- 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
- 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
- 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
- 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)
- 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
- Docker & Docker Compose - Install Docker
- Git - Install Git
-
Clone the repository
git clone https://github.com/Imhotep-Tech/imhotep_finance.git cd imhotep_finance -
Set up environment variables Create
.envfiles for backend and frontend as needed (adapt from your project structure). -
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
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Django Admin: http://localhost:8000/admin/
-
Clone the repository
git clone https://github.com/Imhotep-Tech/imhotep_finance.git cd imhotep_finance -
Backend Setup (Django)
- Install Python 3.11+
- Create virtual environment and install dependencies
- Set up PostgreSQL database
- Run migrations and start server
-
Frontend Setup (React)
- Install Node.js 20+
- Install dependencies with
npm install - Start development server with
npm run dev
-
Environment Variables Create
.envfiles with necessary configurations (DATABASE_URL, SECRET_KEY, etc.).
- 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 receiveaccessandrefreshtokens. - Alternatively, Google OAuth:
POST /api/auth/google/authenticate/with an authorization code.
- Use
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
accesstoken, or add a default headerAuthorization: Bearer <token>to the collection.
We welcome contributions to Imhotep Financial Manager! Here's how you can contribute:
-
Fork the repository and create your feature branch
git checkout -b feature/amazing-feature -
Make your changes and test them thoroughly
-
Commit your changes
git commit -m 'Add some amazing feature' -
Push to your branch
git push origin feature/amazing-feature -
Open a Pull Request describing your changes and their benefits
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
Please read our Code of Conduct to understand the expectations for participation in our community.
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.




