Expense Control is a Django-based web application for managing and tracking personal expenses. It allows users to add, edit, and delete expenses, as well as view a list of all expenses. The project is structured with a main Django app and an 'expenses' app for expense management features.
- User registration and login
- Add, edit, and delete expenses
- View a list of expenses
- Simple, clean UI
expense_control/
├── expense_control/ # Main Django project settings
├── expenses/ # App for expense management
│ ├── migrations/ # Database migrations
│ ├── static/ # Static files (CSS)
│ ├── templates/ # HTML templates
│ ├── admin.py # Admin configuration
│ ├── apps.py # App configuration
│ ├── forms.py # Django forms
│ ├── models.py # Database models
│ ├── tests.py # Tests
│ ├── urls.py # App URLs
│ └── views.py # View functions
├── manage.py # Django management script
├── requirements.txt # Project dependencies
├── .gitignore # Git ignore file
├── LICENSE # Project license
└── README.md # Project documentation
- Python 3.8+
- pip (Python package manager)
- Git (for cloning the repository)
-
Clone the repository:
git clone <repository-url> cd expense_control
-
Create and activate a virtual environment:
python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Set environment variables (for production):
- Create a
.envfile or set the following variables in your environment:SECRET_KEY(required for Django security)DEBUG(set toFalsein production)
- For development, the default settings in
settings.pyare sufficient, but do not use them in production.
- Create a
-
Apply migrations:
python manage.py migrate
-
Run the development server:
python manage.py runserver
-
Access the app: Open your browser and go to http://127.0.0.1:8000/
- Register a new user or log in with existing credentials.
- Add, edit, or delete expenses from the dashboard.
- View your list of expenses.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
For questions or support, please open an issue in the repository.