/billtracker

💸 Web tool to track user bills (pyramid + bootstrap + sqlalchemy + alembic + pytest + travisCI + nginx)

Primary LanguagePythonMIT LicenseMIT

Screenshot

made-with-python Build Status Coverage Status Code style: black Checked with pylint Checked with flake8 Checked with pydocstyle Checked with mypy License CodeFactor Docker pulls

Bills tracker

A web tool to track your bills built with pyramid web framework.

Note: please take into account that it is built for demo purpose but not for actual usage.

Tools

Production

Development

Usage

Please check billstracker website via http://178.62.222.165:5007.

Docker run

docker run -it -p 6543:6543 vyahello/billstracker:0.1.0

After please open 0.0.0.0:6543 endpoint to open web app.

Source code

To be able to use and launch app from the source code please execute commands below:

git clone git@github.com:vyahello/billtracker.git
python setup.py develop
pserve development.ini

After please open 0.0.0.0:6543 endpoint to open web app.

Demo

Development notes

Data from storage folder was generated using https://www.mockaroo.com

Troubleshooting

In case of server reboot/restart please start billtracker service:

systemctl start billtracker

Database migration

For database migrations alembic package is used. Please follow alembic.ini file for instructions.

Once new changes were made to the database, please follow instructions below:

alembic revision --autogenerate -m "commit message"
alembic upgrade head
alembic current

Docker

Please use the following example notes to proceed with docker image provisioning.

Testing

Please follow next command to execute unit tests:

pytest -m unit

Or functional tests, correspondingly:

python -m functional

CI

Project has Travis CI integration using .travis.yml file thus code analysis (black, pylint, flake8, mypy, pydocstyle) and unittests (pytest) will be run automatically after every made change to the repository.

To be able to run code analysis, please execute command below:

./analyse-source-code.sh

Release notes

Please check changelog file to get more details about actual versions and it's release notes.

Meta

Author – Volodymyr Yahello. Please check AUTHORS file to see all contributors.

Distributed under the MIT license. See LICENSE for more information.

You can reach out me at:

Contributing

I would highly appreciate any contribution and support. If you are interested to add your ideas into project please follow next simple steps:

  1. Clone the repository
  2. Configure git for the first time after cloning with your name and email
  3. pip install -r requirements.txt to install all project dependencies
  4. pip install -r requirements-dev.txt to install all development project dependencies
  5. Create your feature branch (git checkout -b feature/fooBar)
  6. Commit your changes (git commit -am 'Add some fooBar')
  7. Push to the branch (git push origin feature/fooBar)
  8. Create a new Pull Request

What's next

All recent activities and ideas are described at project issues page. If you have ideas you want to change/implement please do not hesitate and create an issue.