MyFinances is an open-source web-based application designed to simplify invoicing and financial management for individuals and teams. Whether you're a freelancer or a small business, MyFinances provides an intuitive platform to help you stay organized.
PLEASE NOTE: This project is under active development. We welcome contributors! |
---|
- One-Time Invoices: Create and send professional one-time invoices to your clients.
- Recurring Invoices: Automate your invoicing with recurring invoices that can be scheduled and sent periodically.
- Invoice Reminders: Ensure timely payments by sending reminder emails for outstanding invoices.
- Emailing: Email invoices and payment reminders directly from the platform.
- Python 3.10+
- Additional requirements can be found in the
pyproject.toml
file (or by usingpoetry show
).
Please be aware some features require AWS features such as Eventbridge, however you can host the site locally or any other usual hosting platform, we have a docker setup.
For detailed setup instructions please refer to our documentation: https://docs.strelix.org/MyFinances
We appreciate your interest in contributing to MyFinances! Whether you're a seasoned developer or just getting started, we have something for you.
Before submitting a new issue, please:
- Search for existing issues that might cover your topic.
- Ensure your issue pertains to the current version of the project.
For urgent issues or those involving confidential details, please report them directly to us on the details below.
We take security seriously. If you discover a security vulnerability within MyFinances, please reach out to us directly via email. We will promptly address and resolve the issue.
If you encounter a bug, please report it by opening an issue on the issue tracker. Include details about the issue, steps to reproduce, and relevant environment details.
We welcome feature requests! If you have an idea for a new feature or enhancement, open an issue on the issue tracker. Describe the feature, its potential benefits, and any relevant use cases.
We have a step system for features:
- idea: suggested
- idea: deciding
- idea: accepted
Once an idea is accepted this can be worked on. Only if there is no assigned person to the issue, the issue is inactive or the issue is marked as "group issue"/"needs help" you may work on it.
To contribute code:
- Fork the repository.
- Install pre-commit hooks (do it once, whenever you clone the repository) [optional but tests may fail without it]
pre-commit install
- Create a new branch for your changes.
- Implement your changes, following the coding standards.
- Run the test suite
python3 manage.py test
- run the app (
python3 manage.py runserver
) - view any changed pages in browser (
http://127.0.0.1:8000
) and make sure the changes work as expected
- Submit a pull request to the main repository's
main
branch.
We'll review your pull request, provide feedback, and work with you to get your changes merged.
Adhere to the coding style guidelines of the Django project. Find the Django coding style guide here. Please install our pre-commit hooks using following command:
We now also use the python black formatter. Code tests will be run before PRs can be merged, they will fail if you haven't ran the command below:
pip install black
black ./
For static type checking we are using mypy. Code tests will be run before PRs can be merged, they will fail if types in you code will be incorrect. You can run check with this command:
mypy .
Make sure you have the necessary prerequisites for development. These are detailed above in this README.md file.
View our documentation for further instruction https://docs.strelix.org/MyFinances
Thank you for your contributions!
View a full list here
If any information is incorrect above, or you would like anything removed, feel free to open an issue, email our team, or manually edit with the details below.
- Updated any info using
python3 manage.py contriubtors
- Run
python3 manage.py contributors sync
- Make a PR to request these changes in
- Done :)
Note: This README.md is a living document and might be updated over time. Always refer to the latest version when contributing and developing.