{"id":13501799,"url":"https://github.com/mingrammer/pyreportcard","last_synced_at":"2025-04-22T16:31:12.304Z","repository":{"id":53531577,"uuid":"75397271","full_name":"mingrammer/pyreportcard","owner":"mingrammer","description":":traffic_light: A report card for Python application","archived":false,"fork":false,"pushed_at":"2021-03-25T23:09:28.000Z","size":2535,"stargazers_count":97,"open_issues_count":16,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-31T20:41:16.115Z","etag":null,"topics":["analysis","python","quality","report-card","reporting","repository"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mingrammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-02T13:18:35.000Z","updated_at":"2024-08-12T19:26:22.000Z","dependencies_parsed_at":"2022-09-15T01:02:36.220Z","dependency_job_id":null,"html_url":"https://github.com/mingrammer/pyreportcard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fpyreportcard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fpyreportcard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fpyreportcard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingrammer%2Fpyreportcard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mingrammer","download_url":"https://codeload.github.com/mingrammer/pyreportcard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223900316,"owners_count":17222028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["analysis","python","quality","report-card","reporting","repository"],"created_at":"2024-07-31T22:01:50.799Z","updated_at":"2024-11-10T00:40:31.244Z","avatar_url":"https://github.com/mingrammer.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cbr\u003e\u003cbr\u003e\n\n\u003ch1 align=\"center\"\u003ePython Report Card\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.python.org/3/index.html\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.6-blue.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.python.org/dev/peps/pep-0008\"\u003e\u003cimg src=\"https://img.shields.io/badge/code%20style-PEP8-brightgreen.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/mingrammer/pyreportcard\"\u003e\u003cimg src=\"https://travis-ci.org/mingrammer/pyreportcard.svg?branch=master\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Analyze and report the python projects which are on Github\n\u003c/p\u003e\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003e Inspired by [Go Report Card](https://github.com/gojp/goreportcard)\n\nA report card for your Python applications. This analyzes the source code quality (pep8, pyflakes and bandit etc.) of the Python projects which are hosted on GitHub, checks for license and readme files, and provides some statistics. Then shows the results on the web.\n\nYou can see our planning for future versions in [here](https://github.com/mingrammer/pyreportcard/projects/1) too.\n\n## ScreenShots\n\n![main](screenshots/main.png)\n\n![report](screenshots/report.png)\n\n## Features\n\n* [x] Supports checking the code quality using PEP8 and Pyflakes linting tools\n* [x] Supports counting the code lines and calculates some stats\n* [x] Supports checking the license file\n* [x] Provides a grade system\n* [x] Provides a pyreportcard web server\n* [ ] Supports checking the compatibility of Python 2 and 3\n* [ ] Supports checking the security issues\n* [ ] Supports customizable analyzing using own configuration file\n* [ ] Serves it as web service\n* [ ] Provides ranking system\n* [ ] Provides badge link of repository grade\n\n## Install and Run\n\n* Clone this repository.\n* Run `pip install -r requirements.txt` to install all dependencies (If you don't have `pip`, install `pip` first)\n* Install the [MongoDB](https://www.mongodb.com/) that is used for our backend database.\n* You must configure the secret values in `config_secret.py`. Firstly, copy the example secret file to create secret file by `cp config_secret.py.example config_secret.py`, and then fill out the secret values with yours.\n\n```python\nclass SecretConfig:\n    SECRET_KEY = '...'\n\n    MONGO_DBNAME = 'reportcard'\n    MONGO_HOST = '...'\n    MONGO_PORT = ...\n    # MONGO_USER = '...'\n    # MONGO_PASSWORD = '...'\n```\n\n* Run server by `python3 run.py`.\n* Go `127.0.0.1:5000` and just use it.\n\nIt is also possible to run the app and MongoDB in isolated environment using\nDocker and [`docker-compose`](https://docs.docker.com/compose/). Follow the\ninstructions above up until setting the secret values. Then, create a `.env` file\ncomprises of environment variables for configuring the app in the container.\nAn example of `.env` is provided below:\n\n```bash\necho \"DEBUG=1\" \u003e\u003e .env\necho \"FLASK_DEBUG=1\" \u003e\u003e .env\necho \"FLASK_ENVIRONMENT=development\" \u003e\u003e .env\n```\n\nTo run the app and MongoDB, build the app and run them using `docker-compose`.\nBy default, the app will bind to port `5000` and can be accessed via `localhost`,\ne.g. `127.0.0.1:5000`. If the port conflicted with other running apps, feel free\nto modify the port binding in `docker-compose.yml` and re-run the app.\n\n```bash\ndocker-compose up --build -d\n```\n\n\u003e Reminder: If you are going to run the app in production, do not forget to turn\n\u003e off DEBUG flags in `.env` file and set the environment to `production`.\n\n## Tests\n\n*Note: We have a test code for only vcs module now. We'll add more tests for all features soon*\n\n```bash\npython3 -m unittest discover tests\n```\n\n## Dependencies\n* [PEP8](http://pep8.readthedocs.io/en/release-1.7.x/)\n* [Pyflakes](https://github.com/PyCQA/pyflakes)\n* [PyMongo](https://github.com/mongodb/mongo-python-driver)\n* [Flask](https://github.com/pallets/flask)\n* [MongoDB](https://github.com/mongodb/mongo)\n\n## License\nThe content of this project itself is licensed under the Creative Commons Attribution 3.0 license, and the underlying source code used to format and display that content is licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingrammer%2Fpyreportcard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmingrammer%2Fpyreportcard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingrammer%2Fpyreportcard/lists"}