Giter VIP home page Giter VIP logo

qupo's People

Contributors

georgimld avatar gonzochic avatar hlavacek avatar jzakotnik avatar leonox avatar mathiashoeld avatar melissaschmidt0302 avatar stezido avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

webclinic017

qupo's Issues

Take env variable from environment instead of env file

In deployment the env variables in the api service are not set. They are set via a config file taking from the .env file. In deployment the .env file doesn't exist, so they have to be taken directly from the environment. Restructure the api service to take the variables directly from the environment and not require an env file.

Error handling

  • Handle errors in the backend properly with error messages.
  • Show in frontend if the calculation didn't go throught (e.g. with snackbar) and handle the ui, so it wouldn't result into breaking the app
  • Sometimes symbols are not found and therefore not processed. If in a calculation request there are no or only one symbol found, the calculation can not be done. A proper error message and feedback for the user which symbols didn't work should be provided.

Add sqlite as database to project

  • Add sqlite as dependency to requirements file of api
  • Connect local sqlite file to backend code
  • Add possibility for user to choose whether a sqlite databse should be used at all (e.g. CLI parameter)

Extend filtering of views

Currently only basic filtering to search through indices, countries or industries is in place. Extend filtering capabilities to search for single symbols and company names on each view. Show all indices, countries, industries filtered accordingly that contain the symbol or the company name fow which is searched for.

  • filter with symbol.name
  • filter with symbol.symbol
  • when search by symbol - set extended view true

Company names

  • When adding symbols (<StocksCollection /> component) only searching for symbols is possible. Include also the capability to search via company names for the correct symbols.
  • Show company names in chart instead of the symbols

Repo Documentation

Add some documentation to the repo. Check if the charts of the db structure are up-to-date and show proper architecture charts with an explanation in an .md file. If necessary make some refactoring changes and/or add some comments, so that the code base is easier to understand.

Generate list of stock ticker symbols

  • Find reliable source for collection of stock ticker symbols (e.g. DAX)
  • Generate a list of valid stock ticker symbols based on collection
  • Use list as input for #2

Add information in UI

  • Show more information about the companies
  • Explain the Upright Project of the net impact ratio
  • Create an info page

Add additional components to chart page

Once calculated the results, the parameters should be able to be adjusted via the UI. A button should be provided to recalculate the results with the changed parameters (risk_weight, esg_weight).

Prevent sending symbols to api that can't be found by yahoo

A lot of symbols that are send to the api are not being found by the yahoo library. Maybe exchange the library of the symbols to provide working symbols or find another solution to prevent sending symbols to the api that can't be processed.

Fetch stock data from yahoo finance for stock ticker symbol

  • Fetch data from yahoo finance for given time frame (e.g. 01.01.2018 - 31.12.2018)
  • If "save to DB" is enabled (see #1)
    • Check if data for given stock in given time frame is available in the DB
    • If yes, get data from DB
    • If no, get data from yahoo finance online and save data to DB
    • If partial data is available, fetch all data from yahoo finance and update DB entry

Add example builder/list of stocks

  • Identify lists of stocks that can be used as example inputs/problems
  • Generate small workflow where the user can choose different indices and number of stocks and a list of stocks for data fetching is automatically generated by #3

Make api open for several request at a time

Once a request is sent to the api, the api is busy and doesn't take any further requests anymore. In deployment this is a problem. The health check in the helm charts for the api is currently disabled due to this.

Rebuild the api to take several requests and then change the helm chart to allow the health check on the api /health endpoint.

Persist job results

Idea: Make different setups (stock symbols, time frame, input parameters) identifiable and save the job result to the database. If the same setup is requested at a later point, the calculation does not have to be run again, but rather just read from the DB.

Add explanations for each model

It is not clear which model is doing what and where they are coming from (for example the qiskit algorithm is from IBM). The UI could show some information on that.

Allow recalculation of classic models on slider change

On the /portfolio page when moving the sliders and thereby changing the values of esg_weight and risk_weight the classical models should be recalculated on change and not on button calculate click. So the results shown in the chart can be changed faster.

Fix running the application without db

When starting the application with the setting use_db=False, the sqlite db is not used. In some functionalities this leads to bugs, e.g. when sending a request for calculating the osqp algorithm.

Show already calculated results

On the portfolio page (or maybe also somewhere else) show already calculated results in a list sorted by entry created, so that the latest calculation is the first entry in the list. Following details should be shown in the list:

  • the stocks that were included in the calculation
  • the timeframe that was chosen
  • the weights (risk, esg)
  • the calculated models

benchmark solvers

compare result quality and efficiency

  • PyPO vs OSQP
  • classical vs quantum inspired (Azure)
  • classical vs QC (IonQ)

Allow selection of symbols

Instead of only being able to choose from a set of symbols depending on the view, create a component to allow a selection of single symbols and then Continue with these symbols to calculate the models.

Inspect quandl library

The behavior of the quandl library is not as expected. Make sure the call to the nasdaq api returns a big enough dataset to extract the net_impact_ratio. Maybe look for another python package to make the call.

Refactor backend

Restructure and rename: following the Clean Code guidelines. Look through comments and To-Dos and solve all issues regarding refactoring.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.