/sterling

Personal finance tracker

Primary LanguagePythonMIT LicenseMIT

Sterling

Build Status

What is Sterling?

Sterling is a personal finance web application in which users can keep track of their personal finacial records. You can add accounts and then transactions to those accounts and view them in a simple, clean interface. Sterling also supports importing CSV files from your bank (currently only supports the CSV (Excel) format outputted by Elevations Credit Union. Will expand support in the future.) for easy import. And don't worry about duplicating transactions during the import - Sterling is smart enough to avoid this.

How can I use Sterling?

Sterling is deployed and accessible at https://jacobfelknor.pythonanywhere.com

Future Plans

Right now, Sterling is simply a bookkeeping application. Beyond that, there is a very simple Dashboard that will display a graph representing you Net Worth based on the data you have entered. I plan to add many different analysis tools to Sterling in the future which will make it much more interesting and fun to use. This will include generating reports for your personal reference, budgeting ideas, etc. In addition, I plan to continuely update the application with new features and improvements. Those activley being attended to will be in the Issues tab of GitHub. Feel free to report issues you find to me on this page.

For Developers

Local Installation/Development Server

Clone the sterling repository into a suitable directory. Create a virtual environment in this directory by using the following command:

python -m venv <venv_name>

Activate your virtual environment:
Windows:

./<venv_name>/Scripts/activate

Linux/Mac:

source <venv_name>/bin/activate

Install requirements:

pip install -r requirements/base.txt

Database Setup

Ensure you have a database management software installed. We recommend PostgreSQL or MySQL. We also recommend a DBMS GUI, such as pgAdmin 4 for PostgreSQL, or MySQL Workbench for MySQL

After your database manager of choice is installed, create a database named "sterling"
NOTE: Creating the database and configuring passwords is beyond the scope of this documentation, however it is an important step. Please reference external sources for this information

Create a "keys.py" file in the config folder. Secret keys can be generated here

Populate it as follows:

secret_key = 'your_secret_key'
db_password = "your_password"

Update your database settings in config/settings/development.py if necessary. Consult the Django's Database Documentation

Usage

Make Database Migrations:

python manage.py makemigrations

Migrate changes to Database:

python manage.py migrate

Start Django Development Server:

python manage.py runserver

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT