- Python 3.8+
- pip (Python package manager)
-
Clone the repository:
git clone <repository-url> cd django-finance-tracker
-
Create a virtual environment (optional but recommended):
python3 -m venv env source env/bin/activate # On Windows use `env\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Apply database migrations:
python manage.py migrate
-
Setup Demo User (Optional but recommended):
python manage.py setup_demo_user
Note: This command populates the database with sample data for the demo mode.
-
Clone the repository:
git clone <repository-url> cd django-finance-tracker
-
Create
.envfile: Create a file named.envin the root directory. Fill in the values:SECRET_KEY='' DEBUG=True EMAIL_HOST='smtp.gmail.com' # if you want to use gmail for sending emails EMAIL_PORT=587 EMAIL_USE_TLS=True EMAIL_HOST_USER='' EMAIL_HOST_PASSWORD=''
Note: The application will not run correctly without this file.
-
Run with Docker Compose:
docker-compose up --build
Note: The container defaults to running migrations and setting up the demo user automatically on startup.
-
Access the application: Open your browser and navigate to
http://localhost:8000.
- Sign Up: Create a new account.
- Add Expenses: Manually add expenses or use the "Upload More" button.
- View Dashboard: authenticating will take you to the dashboard where you can filter and analyze your spending.
To upload expenses via Excel, ensure your file follows this format:
- File Type:
.xlsx - Sheets: You can have multiple sheets (e.g., "Jan", "Feb").
- Columns: The following columns are strictly required (headers are case-insensitive):
Date: Supported formats:DD MMM YYYY(e.g., 01 Jan 2025),YYYY-MM-DD.Amount: Numeric value.Description: Text description.Category: Expense category (e.g., Food, Travel).
Note: When uploading, you will be asked to select a "Target Year". This year will override the year in the Excel dates to ensure data consistency.
TrackMyRupee supports multi-language interfaces (currently English, Hindi, and Marathi).
To work with translations locally, you must have gettext installed:
- macOS:
brew install gettext - Ubuntu/Debian:
sudo apt-get install gettext
- Update strings: Add
{% trans "String" %}in templates orgettextin Python files. - Extract messages:
python manage.py makemessages -l mr -l hi
- Apply translations:
Use our utility script to automatically apply translations for common financial terms:
python update_translations.py
- Compile messages:
python manage.py compilemessages