{"id":15575392,"url":"https://github.com/aschonfeld/index_builder","last_synced_at":"2026-01-19T09:34:32.073Z","repository":{"id":37070573,"uuid":"127649575","full_name":"aschonfeld/index_builder","owner":"aschonfeld","description":"Build and compete for best index","archived":false,"fork":false,"pushed_at":"2022-12-07T10:46:54.000Z","size":2376,"stargazers_count":3,"open_issues_count":24,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T07:40:09.661Z","etag":null,"topics":["flask","jinja","pandas","python","react","react-redux","webpack"],"latest_commit_sha":null,"homepage":"http://aschonfeld.pythonanywhere.com/index-builder","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aschonfeld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-01T16:30:20.000Z","updated_at":"2024-07-10T01:09:14.000Z","dependencies_parsed_at":"2023-01-23T16:45:27.955Z","dependency_job_id":null,"html_url":"https://github.com/aschonfeld/index_builder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aschonfeld/index_builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschonfeld%2Findex_builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschonfeld%2Findex_builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschonfeld%2Findex_builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschonfeld%2Findex_builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aschonfeld","download_url":"https://codeload.github.com/aschonfeld/index_builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschonfeld%2Findex_builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28565001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","jinja","pandas","python","react","react-redux","webpack"],"created_at":"2024-10-02T18:31:11.110Z","updated_at":"2026-01-19T09:34:32.056Z","avatar_url":"https://github.com/aschonfeld.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Index Builder [![Build Status](https://travis-ci.org/aschonfeld/index_builder.svg?branch=master)](https://travis-ci.org/aschonfeld/index_builder) [![Coverage Status](https://coveralls.io/repos/github/aschonfeld/index_builder/badge.svg?branch=master)](https://coveralls.io/github/aschonfeld/index_builder?branch=master) [![BCH compliance](https://bettercodehub.com/edge/badge/aschonfeld/index_builder?branch=master)](https://bettercodehub.com/)\n\nThis is a nice little interactive survey using completely randomized data in which users can:\n- create unique usernames\n- select factors by giving them a weight, pro/anti direction \u0026 supporting reasons\n- lock-in selections in order to see what kind of index your combination of factors have built\n- compare performance of your index against some default indexes as well as other users\n- an admin user can:\n  - view interesting breakdowns of all factor selections made by users as well as make these breakdowns available for users to see\n  - archive off user selections for further future analysis and to reset the app for another round of users\n\n## Demo\n\nLive demo (choose any username you'd like): [index-builder](http://aschonfeld.pythonanywhere.com/index-builder)\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\nOnce you've checked out this project you must make sure you have the following installed:\n\nInclude instructions on setting up virtualenv\n\nTo get up and running perform the following:\npip install -r requirements.txt\n\nIn order to install scipy I had to run the following:\nsudo apt-get install gfortran libopenblas-dev liblapack-dev python-dev\npip install scipy==0.15.1\neasy_install numpy==1.9.2\neasy_install pandas==0.16.2\n\nYou'll need node, npm \u0026 yarn installed\nyarn install\nnpm run build\n\n### Prerequisites\n\n* pip\n* easy_install\n* virtualenv\n* node\n* npm\n* yarn\n\n### Installing\n\n\nSetting up your virtual environment\n\n```\n1) mkdir -p ~/pyenvs\n2) virtualenv ~/pyenvs/index_builder\n3) source ~/pyenvs/index_build/bin/activate\n4) pip install -r requirements.txt\n5) sudo apt-get install gfortran libopenblas-dev liblapack-dev python-dev (assuming you're running linux)\n6) pip install scipy==0.15.1\n7) easy_install numpy==1.9.2\n8) easy_install pandas==0.16.2\n```\n\nBuilding the javascript\n\n```\n1) yarn install\n2) npm run build\n```\n\nRunning the Flask back-end\n\n```\npython index_builder/server.py --HOST 0.0.0.0 --PORT 8080 --AUTH true\n```\n\nRunning the Flask back-end with gunicorn\n\n```\ngunicorn server:app --config gunicorn_config.py --bind 0.0.0.0:8080 -w 8 -t 120 --limit-request-line 8190 --log-file=- --access-logfile ~/stdout --error-logfile ~/stderr  --log-level=info\n```\n\nBuilding the javascript files in \"watch\" mode (this is good for development so it will hot swap changes)\n\n```\nnpm run watch\n```\n\n## Running the tests\n\nPython tests\n\n```\npython setup.py test\n```\n\nAll JS tests\n\n```\nnpm run test\n```\n\nSpecific JS tests\n\n```\nTEST=static/__tests__/factor_viewer/*-test.jsx npm run test-file\n```\n\nJS coverage report\n\n```\nnpm run test-with-coverage\n```\n\nJS Duplication report\n\n```\nnpm run report-duplicate-code\n```\n\nJS formatting\n\n```\nnpm run format\n```\n\nJS linting\n\n```\nnpm run lint -s\n```\n\n\n## Deployment\n\nYou can run this application on a larger scale using gunicorn\n```\nexport AUTH=true (if you want authentication turned on)\ngunicorn server:app --config gunicorn_config.py --bind 0.0.0.0:8080 -w 8 -t 120 --limit-request-line 8190 --log-file=- --access-logfile ~/stdout --error-logfile ~/stderr  --log-level=info\n\n```\n\nTBA: notes on docker deployment\n\n## Built With\n\n* [Flask](http://flask.pocoo.org/) - The back-end web framework used\n* [jinja](http://jinja.pocoo.org/) - Core HTML templating\n* [yarn](https://yarnpkg.com/en/) - JS Dependency Management\n* [Webpack](https://webpack.js.org/) - JS Bundler\n* [React](https://reactjs.org/) - Core JS library our components are built on\n\n## Authors\n\n* **Andrew Schonfeld** - *Initial work* - [plutoplate](https://github.com/aschonfeld/plutoplate)\n\nSee also the list of [contributors](https://github.com/aschonfeld/index_builder/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Acknowledgments\n\n* [Wilfred Hughes](https://github.com/Wilfred) was truly an inspiration and a driving force behind many of the solutions to initial infrastructure headaches\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschonfeld%2Findex_builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faschonfeld%2Findex_builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschonfeld%2Findex_builder/lists"}