WheatonCS / Lexos

Python/Flask-based website for text analysis workflow. Previous (stable) release is live at:
http://lexos.wheatoncollege.edu
MIT License
118 stars 20 forks source link

Future works after Fall 2017 #677

Open czhang03 opened 6 years ago

czhang03 commented 6 years ago

This is just a temp issue and will be added to wiki eventually

convert all functionality to ajax

I don't know what functionality is not ajax yet, but we need to convert all functionality to ajax, I don't think there are many of them.

design a testable receiver

currently receiver is not testable, we need to make sure our receiver parses the request correctly.

an ideal receiver will return a Dict[str, str] (which is the data structure of our current request.json and request.form) and return a parsed object.

better type hinting with numpy and panda.

We need to keep close communication with numpy and panda team in terms of the type hinting. so far, there is no support for type hinting for numpy and panda at all. the numpy has started a officially supported type stub: https://github.com/numpy/numpy_stubs. There is no action in the panda team: https://github.com/pandas-dev

separate the stateless part of file manager into the FileManagerModel.

that will make the untestable part of file manager significantly shorter.

clean up and redesign LexosFile class.

I don't think LexosFile class is touched at all in the past few years. I think there has to be some outdated functionality and functionality that is not consistent with our style and ideology.

add mypy and pydocstyle in to the CI checker.

I think pydocstyle will be doable in one summer, mypy integration will be harder. because mypy has much stronger type checks than Pycharm. I imagine there will not be many technical difficulties. It is just fixing type hinting here and there.

a stricter requirement.txt

we need to specify version rules for some of the major package we are using, like numpy and pandas. We don't want to stay on the old version for too long, also we don't want newer version to break our build.

Rewrite Tokenizor

Migrate All Functionality To Receiver and Model System

Migrate Wiki to a doc repo and render it using GitHub page.

See an example for dotnet doc: https://github.com/dotnet/docs

Because of the rendering limitation, automation limitation, and team management limitation of Scalar and GitHub Wiki, me and @scottkleinman decided it better to organize our doc using a separate repo, and use the GitHub page associated with that repo to render the docs.

GitHub wiki lacks the basic automation and team management functionality as a separate GitHub repo:

currently a good rendering engine is hexo this engine is fully written in JavaScript, which @scottkleinman should be familiar with. Here is some of the very useful plugins:

Unfortunately hexo by default is used for blogs which means that it doesn't support hierarchical structure by default, however our docs needs to be structured, for example back-end developer guide should be under developer guide. I think we can easily twick the structure to change that.

I have not tried or heard of any website rendering engine written in python.

mleblanc321 commented 6 years ago

whoa ... but good list, cheng