Metadata-Version: 2.1
Name: finalynx
Version: 0.0.1
Summary: A command line investment assistant to organize your portfolio and simulate its future to reach your life goals.
Home-page: https://github.com/MadeInPierre/finary_assistant
Author: Pierre Laclau (MadeInPierre)
Author-email: pielaclau@gmail.com
License: GNU General Public Version 3
Description: <h1 align="center">
          <a href="https://github.com/MadeInPierre/finary_assistant">
            <img src="https://github.com/MadeInPierre/finary_assistant/raw/main/doc/logo_assistant_transparent.png" width="400" />
          </a>
          <br>Finary Assistant<br>
        </h1>
        
        <!-- <h4 align="center">
          Minimalistic investment portfolio organizer with real-time sync from your <a href="http://zsh.org" target="_blank">Finary</a> account
        </h4> -->
        
        <div align="center">
          <sub>Built with ❤︎ by
          <a href="https://www.buymeacoffee.com/MadeInPierre">Pierre Laclau</a>
          and <a href="https://github.com/MadeInPierre/finary_assistant/graphs/contributors">contributors</a>. 
          Logo generated by <a href="https://midjourney.com">Midjourney</a>.
        </div>
        <br>
        
        Finary Assistant is a command-line tool to organize your investments portfolio and get automated monthly investment recommendations based on your future life goals. 
        This tool synchronizes with your [Finary](https://finary.com/) account to show real-time investment values.
        
        Don't have Finary yet? You can sign up using my [referral link](https://finary.com/referral/f8d349c922d1e1c8f0d2) :sparkles: (or through the [default](https://finary.com/signup) page).
        
        <p align="center">
          <img src="https://github.com/MadeInPierre/finary_assistant/raw/main/doc/screenshot.png" width="500" />
        </p>
        
        ## ✨ Features
        
        1. **✅ Portfolio:** Organize your assets, set targets, and sync with your Finary account.
        2. **⏳ Analyzer:** Generate global statistics and graphs to understand each line and folder.
        3. **⏳ Simulator:** Define your life goals and events, simulate your portfolio's future.
        4. **⏳ Assistant:** Get monthly recommendations on where to invest next to meet your goals.
        5. **🙏 Extensions:** Make this tool work for other people's situations. Contributions needed!
        6. **🙏 Optional:** Nice but out-of-my-skills or time-consuming features. Any volunteers?
        
        You can check the [current development status](./doc/TODO.md). Contributions are warmly welcome!
        
        ## 🚀 Installation
        ### Users
        If you don't plan on touching the code, simply run (with python 3.8 and pip installed):
        ```sh
        pip install finary_assistant
        ```
        
        And you're done! Now create your own copy of the [`demo.py`](./examples/demo.py) example anywhere. You can try to run the demo first to make sure everything works. Now go customize it for your own needs 🚀
        
        **Pro Tip:** _Why not setup a script to autorun this project in a new terminal at startup? Could be a nice view_ 🤭
        
        ### Contributors
        1. Clone this repository using the `--recursive` option to include [`finary_api`](https://github.com/lasconic/finary):
        ```sh
        git clone --recursive https://github.com/MadeInPierre/finary_assistant.git
        # If you forgot --recursive: git submodule update --init --recursive
        ```
        2. Install the project in editable mode:
        ```sh
        cd finary_assistant && pip install -e .
        ```
        3. Try the assistant with:
        ```sh
        python examples/demo.py
        ```
        If you see a template portfolio tree and your investments detected from Finary, then welcome to the (small) team! 🎉 Now create your own copy of the demo file and go customize it for your own needs (the name `assistant_config` is recommended as it is ignored from git):
        ```sh
        cp examples/demo.py assistant_config.py # <- Your own portfolio here
        ```
        
        ## ⚙️ Usage 
        The goal is to declare a tree structure of your entire portfolio investments independently from their host envelopes (e.g. PEA, AV, CTO, etc). Define your own asset-based global strategy without feeling constrainted by keeping similar assets in common envelopes. Once your entire portfolio strategy is defined here, find the best envelope for each line and add them to your Finary account (manual or automatic sync). Assistant will fetch each line and display your full portfolio with real-time amounts.
        
        To create your portfolio, start with a `Portfolio` object which holds a nested list of `Line`, `Folder`, and `SharedFolder` objects:
        - `Line` represents each individual investment. Set the `key` parameter as the name shown in your Finary account if different from the display name.
        - `Folder` holds a group of lines or subfolders to create a structure.
        - `SharedFolder` accepts a `Bucket` object which groups multiple lines as a single object. You can reference the same bucket multiple times in the tree and set different `bucket_amount` for each shared folder. Each folder will only take the provided amount and let others use the rest.
        
        Finally, any object in the structure accepts an optional `Target`. See the implementation guidelines below.
        
        #### Example
        
        Here is an example of a portfolio structure:
        ```python
        # Create a list of Lines that will be considered as a single Line.
        my_bucket = Bucket([
          Line('My Asset 1', key='name_in_finary'),
          Line('My Asset 2', key='name_in_finary'),
          # ...
        ])
        
        # Define your entire portfolio structure
        portfolio = Portfolio('My Portfolio', children=[
          # Add a list of `Line`, `Folder`, and `SharedFolder` objects
          Folder('Short term', children=[
            Line('My Asset 3', key='name_in_finary'),
            SharedFolder('My Folder', bucket=my_bucket, bucket_amount=1000),
            # ...
          ]),
          Folder('Long term', children=[
            # Folders can be displayed as Expanded (default), Collapsed, or as a Line
            Folder('Stocks', display=FolderDisplay.COLLAPSED, children=[
              SharedFolder('My Folder', bucket=my_bucket), # display what's left in the bucket
              # ...
            ]),
            # ...
          ])
        ])
        ```
        
        #### Targets
        Any node in the tree accepts an optional `target` parameter. See the full list of available targets [here](./finary_assistant/portfolio/targets.py). Here is an example:
        
        ```python
        Folder('Stocks', target=TargetMin(2000, tolerance=500), children=[
          Line('ETF World', key='Amundi ETF ...', target=TargetRatio(80, tolerance=5)), 
          # ... Other lines with the remaining 20% of the Stocks folder.
        ])
        ```
        
        ## 👨‍💻 Contributions
        This repository is at a very early stage. If you'd like to contribute, please open an issue and ask me to write a detailed documentation! For new features or bug fixes, please fork the repository and use a feature branch. Pull requests, [issues](https://github.com/MadeInPierre/finary_assistant/issues/new) and [open discussions](https://github.com/MadeInPierre/finary_assistant/discussions/new) are warmly welcome!
        
        Unfortunately, I won't have time to make this tool work for everyone by default, but you are welcome to extend this project yourself (or [hire me](https://www.buymeacoffee.com/MadeInPierre/commissions) if you can't develop it yourself). Pull requests are welcome to create a useful tool for everyone!
        
        ## 📄 License
        This project is under the [GPLv3 License](./LICENSE) meaning anyone can use, share, extend, and contribute to this project as long as their changes are integrated to this repo or also published using GPLv3. Please contact me for any specific licensing requests.
        
        ## 💌 Donations
        [<img align="right" src="https://www.mathisplumail.com/wp-content/uploads/2021/04/coffee.png" width="161" />](https://www.buymeacoffee.com/MadeInPierre)
        This is a personal project I have fun with on my free time. If you found it useful and wish to support my work, you can [buy me a coffee](https://www.buymeacoffee.com/MadeInPierre)! It would give me the motivation to keep improving it further :smile: Thank you!
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Description-Content-Type: text/markdown
Provides-Extra: dev
