ucla-cli


Nameucla-cli JSON
Version 0.0.10 PyPI version JSON
download
home_pagehttps://github.com/daviddavini/ucla-cli
SummaryNone
upload_time2024-07-04 11:16:54
maintainerNone
docs_urlNone
authorDavid Davini
requires_python<4.0,>=3.8
licenseMIT
keywords ucla course web-scraper cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # UCLA CLI

[![PyPI - Version](https://img.shields.io/pypi/v/ucla-cli.svg)](https://pypi.org/project/ucla-cli)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ucla-cli.svg)](https://pypi.org/project/ucla-cli)

-----

UCLA CLI is a command-line tool for scraping data from UCLA's website, such as:
- Course schedule information (list classes by department/requirement, class days/times)
- Course enrollment info (spots left, waitlists, etc.)
- and more! (whatever else I decide to add)

![image](https://github.com/daviddavini/ucla-cli/assets/22968625/813a61af-0b55-4a1c-aece-f7c279eb7bb6)

Why would you ever want this?
- *Scriptability* - Web browsers are notoriously unscriptable, forcing you to go through tedious routines
every day, click after click. With a command-line tool, it's easy to write scripts that automate boring tasks
or empower you.
  - For example, you could script up an enrollment notifier (i.e. a free Coursicle replacement) 
using UCLA CLI in just a few lines!
- *Hacker Vibes* - Be honest, you've been seeking a bit more terminal in your life.

## Installation

```console
pip install ucla-cli
```

## Getting Started
```console
ucla classes 23F --subject MATH
```

## Development

### Design Goals

- *Front-end* - This project just aims to be a front-end for UCLA's website, meaning faithfully retrieving the 
user-facing data from the website in a similar manner/structure as the website provides it.
- *Unix tool* - This project aims to be a "good" CLI by following the conventions/philosophy of (modern) Unix 
command-line tools (in regards to option parsing, interactability, output format, etc.)

### Related projects
- Nathan Smith (creator of hotseat.io) has a 
[post](https://nathansmith.io/posts/scraping-enrollment-data-from-the-ucla-registrar-part-one/#fnref:10)
that describes scraping UCLA's course schedule. He uses the same scraping strategy but implemented in Go
(with support for multiprocessing!).

## License

`ucla-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/daviddavini/ucla-cli",
    "name": "ucla-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "ucla, course, web-scraper, cli",
    "author": "David Davini",
    "author_email": "dndavini3.14@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/10/30/2b78d5c1c634de37405aba565015f6d3b6e86759f93f74eeb1cf3849c0b5/ucla_cli-0.0.10.tar.gz",
    "platform": null,
    "description": "# UCLA CLI\n\n[![PyPI - Version](https://img.shields.io/pypi/v/ucla-cli.svg)](https://pypi.org/project/ucla-cli)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ucla-cli.svg)](https://pypi.org/project/ucla-cli)\n\n-----\n\nUCLA CLI is a command-line tool for scraping data from UCLA's website, such as:\n- Course schedule information (list classes by department/requirement, class days/times)\n- Course enrollment info (spots left, waitlists, etc.)\n- and more! (whatever else I decide to add)\n\n![image](https://github.com/daviddavini/ucla-cli/assets/22968625/813a61af-0b55-4a1c-aece-f7c279eb7bb6)\n\nWhy would you ever want this?\n- *Scriptability* - Web browsers are notoriously unscriptable, forcing you to go through tedious routines\nevery day, click after click. With a command-line tool, it's easy to write scripts that automate boring tasks\nor empower you.\n  - For example, you could script up an enrollment notifier (i.e. a free Coursicle replacement) \nusing UCLA CLI in just a few lines!\n- *Hacker Vibes* - Be honest, you've been seeking a bit more terminal in your life.\n\n## Installation\n\n```console\npip install ucla-cli\n```\n\n## Getting Started\n```console\nucla classes 23F --subject MATH\n```\n\n## Development\n\n### Design Goals\n\n- *Front-end* - This project just aims to be a front-end for UCLA's website, meaning faithfully retrieving the \nuser-facing data from the website in a similar manner/structure as the website provides it.\n- *Unix tool* - This project aims to be a \"good\" CLI by following the conventions/philosophy of (modern) Unix \ncommand-line tools (in regards to option parsing, interactability, output format, etc.)\n\n### Related projects\n- Nathan Smith (creator of hotseat.io) has a \n[post](https://nathansmith.io/posts/scraping-enrollment-data-from-the-ucla-registrar-part-one/#fnref:10)\nthat describes scraping UCLA's course schedule. He uses the same scraping strategy but implemented in Go\n(with support for multiprocessing!).\n\n## License\n\n`ucla-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": null,
    "version": "0.0.10",
    "project_urls": {
        "Bug Tracker": "https://github.com/daviddavini/ucla-cli/issues",
        "Documentation": "https://github.com/daviddavini/ucla-cli#readme",
        "Homepage": "https://github.com/daviddavini/ucla-cli",
        "Repository": "https://github.com/daviddavini/ucla-cli"
    },
    "split_keywords": [
        "ucla",
        " course",
        " web-scraper",
        " cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa6abe882e157fcb833da26c8005cdd23b4b373b65b97f126c792a8257862003",
                "md5": "19af9e524ecdb33f722a0889e52116f5",
                "sha256": "86bf65ae24f1497f37ec86e0d6b5cfc76ab743599c1909ad57939a9c83cf9b43"
            },
            "downloads": -1,
            "filename": "ucla_cli-0.0.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "19af9e524ecdb33f722a0889e52116f5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 15400,
            "upload_time": "2024-07-04T11:16:53",
            "upload_time_iso_8601": "2024-07-04T11:16:53.719024Z",
            "url": "https://files.pythonhosted.org/packages/fa/6a/be882e157fcb833da26c8005cdd23b4b373b65b97f126c792a8257862003/ucla_cli-0.0.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "10302b78d5c1c634de37405aba565015f6d3b6e86759f93f74eeb1cf3849c0b5",
                "md5": "1386ca67f78c53efe132db0771c6eb96",
                "sha256": "a4014d2498d500173cc909a8cbebf0f4f6d980da108759d6a4673c3b07f30d30"
            },
            "downloads": -1,
            "filename": "ucla_cli-0.0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "1386ca67f78c53efe132db0771c6eb96",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 12260,
            "upload_time": "2024-07-04T11:16:54",
            "upload_time_iso_8601": "2024-07-04T11:16:54.990400Z",
            "url": "https://files.pythonhosted.org/packages/10/30/2b78d5c1c634de37405aba565015f6d3b6e86759f93f74eeb1cf3849c0b5/ucla_cli-0.0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-04 11:16:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "daviddavini",
    "github_project": "ucla-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "ucla-cli"
}
        
Elapsed time: 1.51632s