UBC-MDS / software-review-2022

0 stars 0 forks source link

Submission group 17: pystockwatch (Python) #41

Open sy25wang opened 2 years ago

sy25wang commented 2 years ago

Submitting Author: Affrin Sultana @Affrin101 Pavel Levchenko @plevchen Helin Wang @helingogo Shi Yan Wang @sy25wang

Package Name: pystockwatch One-Line Description of Package: Simple interface for checking stock price and volume change Repository Link: https://github.com/UBC-MDS/pystockwatch Version submitted: v2.0.0

Editors: Affrin Sultana @Affrin101 Pavel Levchenko @plevchen Helin Wang @helingogo Shi Yan Wang @sy25wang

Reviewers: Jiwei Hu @hjw0703 Rowan Sivanandam @Rowansiv Vadim Taskaev @vtaskaev1 Wenjia Zhu @PANDASANG1231

Archive: TBD
Version accepted: TBD

Description

Scope

* Please fill out a pre-submission inquiry before submitting a data visualization package. For more info, see notes on categories of our guidebook.

Technical checks

For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:

Publication options

JOSS Checks - [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: Do not submit your package separately to JOSS*

Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?

This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.

Code of conduct

P.S. *Have feedback/comments about our review process? Leave a comment here

Editor and Review Templates

Editor and review templates can be found here

vtaskaev1 commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing: 1.5 hours


Review Comments

Well done, Group 17, on an interesting and concise package! As you stated, its simplicity makes it relevant for an audience looking to perform quick computation and analysis based on stocks they may be tracking. Below are some recommendations and suggestions that point to possible minor improvements that could facilitate its usage and interpretability:

  1. Although this may be due to some issue on my end, I have been unable to run profit_viz() function locally. Running profit_viz('AAPL', '2015-01-01', '2021-12-31', 'SP500') returns the following: profit_viz('AAPL', '2015-01-01', '2021-12-31', 'SP500'). You have entered an invalid benchmark ticker! Try again. (I have set up a new conda environment to test this). This is the reason why I have not ticked the functionality box above.
  2. This is more of an observation. I found the documentation and comments format to be consistent and intuitive throughout both the source files and across the tests. This is much appreciated - it makes it easy to quickly grasp the purpose of each chunk of code, and follow the overall internal process that each function follows.
  3. Tests and exception handling is well-composed as it covers most important classic edge cases. A minor observation is that this package's code coverage is likely to be considered rather high at 82%. However, there may be room for further improvement to make it more appealing to potential new users.
  4. The output from volume_viz() contains useful summary information, but it is a little difficult to interpret at first glance. As a suggestion, perhaps it may be preferable to present this information in the form of a line plot rather than a bar plot.
  5. Visually, aligning the plot output formatting of volume_viz() and profit_viz() could help make the aesthetics of the package more consistent. In addition, adding a title and axis labels to the plots generated could help users export these plots while retaining all relevant underlying context information.

I can definitely see how a simple package like this can be quite valuable to a finance professional with minimal programming knowledge for quickly generating insight from time-sensitive data. Note that of these comments pertain to rather minor potential improvements - this package is otherwise well-structured package. Great work!

Rowansiv commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing:


Review Comments

  1. Overall the package is simple to use and understand to well done on that. The functions appear to work as they should and are easy to follow.
  2. In your readthedocs examples, the graph for visualising the volume change trend of stock appears to be missing.
  3. Great use of colour in your visualisations,
  4. Well done on taking into account all possible errors and coding defensively against them. I tried to break the functions by giving them random inputs but it was able to provide the exact cause of the error and tell me what to do.
  5. I really like that you made the plots interactive so that each data point can be hovered over to give the exact value at that date.
  6. Might be helpful to have a section where people are able to contact members of the project team via email to discuss the package.
hjw0703 commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing: 1 hours


Review Comments

Guys, I really like your package as I would identify myself as one of your potential users. There are some things you might take into consideration in the future:

  1. The test coverage could be improved as it has only 82 percent coverage until now.
  2. The function to visualize the profit percentage change trend of a stock against market benchmark would be more informative if company's name could be clearly displayed in the figure.
  3. The plot size in readme.md file could be adjusted to make them more clear and attractive to users.
  4. The project to do list is still open while I guess most of them has already done, close those issues would be more organized in the repo.
  5. I expect to see the output for each functions in readme file but some of them are not shown, it would be more clear to users if all the output are displayed.
PANDASANG1231 commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

Functionality

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing: 1 hour


Review Comments

  1. The Whole project is very easy to use, and it is valueable for a finance professional to use. Well done!
  2. One suggestion is that, for a financial user such as quant researcher, it will be better if the package can show all the open, high, low, close in the visualization
  3. vol_viz might be a little difficult to interpret at first glance, but I think it is very professional. It is just the way financial institution visualize volume data. It is quite clear and professional, well done.
  4. For both visualization, a clear title will even make your work better.
  5. There are two functions' result is not shown in the readme. I understand those two are auxiliary functions, but it will be better if you show the dataframe anyway.

Anyway, it is a fantastic project considering there are only four functions here. Really nice work guys.