fcc2zim


Namefcc2zim JSON
Version 1.1.1 PyPI version JSON
download
home_page
SummaryMake ZIM files from freeCodeCamp courses
upload_time2023-12-18 07:51:52
maintainer
docs_urlNone
author
requires_python<3.12,>=3.11
licenseGPL-3.0-or-later
keywords fcc freecodecamp kiwix offline openzim zim
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # freeCodeCamp scraper

This scraper downloads selected [freeCodeCamp](https://www.freecodecamp.org/) courses and puts it in a
[ZIM](https://openzim.org) file, a clean and user friendly format for storing content for offline usage.

[![CodeFactor](https://www.codefactor.io/repository/github/openzim/freecodecamp/badge)](https://www.codefactor.io/repository/github/openzim/freecodecamp)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![codecov](https://codecov.io/gh/openzim/freecodecamp/branch/main/graph/badge.svg)](https://codecov.io/gh/openzim/freecodecamp)
[![PyPI version shields.io](https://img.shields.io/pypi/v/fcc2zim.svg)](https://pypi.org/project/fcc2zim/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fcc2zim.svg)](https://pypi.org/project/fcc2zim/)
[![Docker](https://ghcr-badge.deta.dev/openzim/freecodecamp/latest_tag?label=docker)](https://ghcr.io/openzim/freecodecamp)
## Architecture
This project consists of two major components:

- `zimui` - A Vue.JS application specially crafted to:
    - be embeded inside the ZIM and serve as main entry point (through compilation for offline usage with Vite)
    - present FCC curriculum, including solving exercices
    - be compatible with most ZIM readers
- `scraper` - The Python tool that build FCC ZIM. It is responsible to:
    - fetch FCC curriculum and package it into a proper format
    - embed client can read, as well as our zim builder

## Dependencies

Aside Node.JS and Python dependencies which are managed, other binary dependencies comes from Python [zimscraperlib](https://github.com/openzim/python-scraperlib/)


## Development

See [CONTRIBUTING.md](CONTRIBUTING.md).

### Prerequisites

- Node 20.x
- Python 3.11

### Running scraper locally

You have to:
- build the `zimui` frontend which will be embededed inside the ZIM (and redo it every time you make modifications to the `zimui`)
- run the `scraper` to retrieve FCC curriculum and build the ZIM

Sample commands:
```
cd zimui
yarn install
yarn build
cd ../scraper
hatch run fcc2zim --language eng --course "regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects" --name "fcc_en_javascript" --title "freeCodeCamp Javascript" --description "FCC Javascript Courses"
```

### Running scraper with Docker

Run from official version (published on GHCR.io) ; ZIM will be available in the `output` sub-folder of current working directory.

```
docker run --rm -it -v $(pwd)/output:/output ghcr.io/openzim/freecodecamp:latest fcc2zim --language eng --course "regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects" --name "fcc_en_javascript" --title "freeCodeCamp Javascript" --description "FCC Javascript Courses"
```

## Course Options and Limitations

Currently this scraper only supports Javascript challenges. A list of courses is passed to the scraper as a comma seperated list of 'course slugs'.

You can find a list of course slugs in the [freeCodeCamp curriculum folder](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/curriculum/challenges/english/02-javascript-algorithms-and-data-structures)

In docker example above, see the `--course` argument : `regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects`

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "fcc2zim",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<3.12,>=3.11",
    "maintainer_email": "",
    "keywords": "fcc,freecodecamp,kiwix,offline,openzim,zim",
    "author": "",
    "author_email": "Kiwix <dev@kiwix.org>",
    "download_url": "https://files.pythonhosted.org/packages/9b/04/9751ed554e4ff61b4f18ae0ee15ab69dad8934e2c5f239f98d6760ba654c/fcc2zim-1.1.1.tar.gz",
    "platform": null,
    "description": "# freeCodeCamp scraper\n\nThis scraper downloads selected [freeCodeCamp](https://www.freecodecamp.org/) courses and puts it in a\n[ZIM](https://openzim.org) file, a clean and user friendly format for storing content for offline usage.\n\n[![CodeFactor](https://www.codefactor.io/repository/github/openzim/freecodecamp/badge)](https://www.codefactor.io/repository/github/openzim/freecodecamp)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![codecov](https://codecov.io/gh/openzim/freecodecamp/branch/main/graph/badge.svg)](https://codecov.io/gh/openzim/freecodecamp)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/fcc2zim.svg)](https://pypi.org/project/fcc2zim/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fcc2zim.svg)](https://pypi.org/project/fcc2zim/)\n[![Docker](https://ghcr-badge.deta.dev/openzim/freecodecamp/latest_tag?label=docker)](https://ghcr.io/openzim/freecodecamp)\n## Architecture\nThis project consists of two major components:\n\n- `zimui` - A Vue.JS application specially crafted to:\n    - be embeded inside the ZIM and serve as main entry point (through compilation for offline usage with Vite)\n    - present FCC curriculum, including solving exercices\n    - be compatible with most ZIM readers\n- `scraper` - The Python tool that build FCC ZIM. It is responsible to:\n    - fetch FCC curriculum and package it into a proper format\n    - embed client can read, as well as our zim builder\n\n## Dependencies\n\nAside Node.JS and Python dependencies which are managed, other binary dependencies comes from Python [zimscraperlib](https://github.com/openzim/python-scraperlib/)\n\n\n## Development\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Prerequisites\n\n- Node 20.x\n- Python 3.11\n\n### Running scraper locally\n\nYou have to:\n- build the `zimui` frontend which will be embededed inside the ZIM (and redo it every time you make modifications to the `zimui`)\n- run the `scraper` to retrieve FCC curriculum and build the ZIM\n\nSample commands:\n```\ncd zimui\nyarn install\nyarn build\ncd ../scraper\nhatch run fcc2zim --language eng --course \"regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects\" --name \"fcc_en_javascript\" --title \"freeCodeCamp Javascript\" --description \"FCC Javascript Courses\"\n```\n\n### Running scraper with Docker\n\nRun from official version (published on GHCR.io) ; ZIM will be available in the `output` sub-folder of current working directory.\n\n```\ndocker run --rm -it -v $(pwd)/output:/output ghcr.io/openzim/freecodecamp:latest fcc2zim --language eng --course \"regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects\" --name \"fcc_en_javascript\" --title \"freeCodeCamp Javascript\" --description \"FCC Javascript Courses\"\n```\n\n## Course Options and Limitations\n\nCurrently this scraper only supports Javascript challenges. A list of courses is passed to the scraper as a comma seperated list of 'course slugs'.\n\nYou can find a list of course slugs in the [freeCodeCamp curriculum folder](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/curriculum/challenges/english/02-javascript-algorithms-and-data-structures)\n\nIn docker example above, see the `--course` argument : `regular-expressions,basic-javascript,basic-data-structures,debugging,functional-programming,object-oriented-programming,basic-algorithm-scripting,intermediate-algorithm-scripting,javascript-algorithms-and-data-structures-projects`\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "Make ZIM files from freeCodeCamp courses",
    "version": "1.1.1",
    "project_urls": {
        "Donate": "https://www.kiwix.org/en/support-us/",
        "Homepage": "https://github.com/openzim/freecodecamp"
    },
    "split_keywords": [
        "fcc",
        "freecodecamp",
        "kiwix",
        "offline",
        "openzim",
        "zim"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93dae4237d00264e05e4040a19eedc55747775d09efd4140f6fbe11e85304df4",
                "md5": "673b68e2e9578f072d6deb8647b38955",
                "sha256": "7941564c0454e566c319012e618f5faa3529e72054d20e130ebb4df4f5311fa9"
            },
            "downloads": -1,
            "filename": "fcc2zim-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "673b68e2e9578f072d6deb8647b38955",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.12,>=3.11",
            "size": 14509,
            "upload_time": "2023-12-18T07:51:51",
            "upload_time_iso_8601": "2023-12-18T07:51:51.029428Z",
            "url": "https://files.pythonhosted.org/packages/93/da/e4237d00264e05e4040a19eedc55747775d09efd4140f6fbe11e85304df4/fcc2zim-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b049751ed554e4ff61b4f18ae0ee15ab69dad8934e2c5f239f98d6760ba654c",
                "md5": "74811e972ef2f4eca224e3b4b82b85a6",
                "sha256": "02d22dee7fe0aae6adc235c09557586dfaab3a1578217cec5d2efac0b91cb5b8"
            },
            "downloads": -1,
            "filename": "fcc2zim-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "74811e972ef2f4eca224e3b4b82b85a6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.12,>=3.11",
            "size": 20102,
            "upload_time": "2023-12-18T07:51:52",
            "upload_time_iso_8601": "2023-12-18T07:51:52.663509Z",
            "url": "https://files.pythonhosted.org/packages/9b/04/9751ed554e4ff61b4f18ae0ee15ab69dad8934e2c5f239f98d6760ba654c/fcc2zim-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-18 07:51:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openzim",
    "github_project": "freecodecamp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "fcc2zim"
}
        
Elapsed time: 3.02192s