A comprehensive system for managing expenses.
License: 3-clause BSD. (But please don’t use expbase.html
as-is, it contains copyrighted chriswarrick.com CSS assets.)
- Management of expenses
- Management of bills — expenses with multiple items, complete with an advanced interactive editor
- Reasonable appearance on Desktop and Mobile
- Autocomplete for expenses and bill items
- Templates for expenses (with multiplication and custom description)
- i18n (Polish translation)
- Searching and filtering data
- A synchronization API, perfect for mobile apps (one of which is in the making)
- Reporting
- Exporting reports to spreadsheet-friendly formats (CSV? XLSX?)
- Monthly goals
- More?
You should do the following changes to settings.py
:
- Add
'expenses'
and'oauth2_provider'
toINSTALLED_APPS
- Add
'oauth2_provider.middleware.OAuth2TokenMiddleware'
toMIDDLEWARE
afterSessionMiddleware
- If you’re me, add
'django.middleware.locale.LocaleMiddleware', 'expenses.middleware.ForcePolishLanguageMiddleware'
toMIDDLEWARE
as well (before CommonMiddleware and after S
and also set the following options:
EXPENSES_PAGE_SIZE
— number of items on one pageEXPENSES_INDEX_COUNT
— number of expenses to display on the dashboardEXPENSES_CURRENCY_CODE
— currency code, eg.PLN
EXPENSES_CURRENCY_LOCALE
— currency locale, eg.pl_PL
EXPENSES_CSV_DELIMITER
— delimiter for fields in CSV reports, eg.,
or;
or\t
The following MESSAGE_TAGS
is recommended for the default templates:
from django.contrib.messages import constants as messages
MESSAGE_TAGS = {
messages.ERROR: 'danger',
messages.DEBUG: 'secondary'
}
If you intend to use the API, OAuth applications can be set up at /_oauth/applications/
. (If you don’t, the endpoints won’t do anything without it.)