ktumon


Namektumon JSON
Version 1.0.1 PyPI version JSON
download
home_page
SummaryApp to monitor notifications published by KTU
upload_time2022-12-26 17:42:49
maintainer
docs_urlNone
author
requires_python>=3.11
licenseThe MIT License (MIT) Copyright (c) 2022 Anantha Narayanan N Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords ktu ktumon kerala
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# KTU Mon

## Introduction

KTU Mon is an application that was developed as a desperate attempt at trying to get myself up to date with the recent notifications published by KTU.  

Once upon a time I missed registering for few backlog exams because I put way too much trust in the elected UUC's of my college. I had hoped they would continue providing updates through their Instagram page, only to realize one day that they've deleted the whole damn account and I had missed my backlog exams.  
Those UUC's were useless to say the least (ആരംഭ ശൂരത്വം മാത്രം).  

Although I have dropped out from this University and no longer need the app, I have decided to add useless enhacements and publish this application as a package so that other students out there studying in KTU might find it useful.  

Since this is Open Source code, you can try to understand the engineering behind this over-engineered webscraper and please feel free to post bugs, issue fixes, contribute improvements etc.  

Thanks,  
Anantha

## Installation & Usage

> The recommended way to install is through pipX  

1. Get pipX from pip

    ```
    python -m pip install --user pipx
    ```

2. Make sure that pipX is on PATH by going to it's installed folder ```C:\Users\{USER_NAME}\AppData\Roaming\Python\Python3x\Scripts``` and executing

    ```
    pipx ensurepath
    ```

3. Restart the terminal and run pipX by typing ```pipx```

4. If that didn't work, then manually add the ```pipx.exe``` file in the location ```C:\Users\{USER_NAME}\AppData\Roaming\Python\Python3x\Scripts``` to PATH

5. After that you can install KTU Mon by typing the following into the terminal

    ```
    pipx install ktumon
    ```

6. After installing, you can run it by typing ```ktumon``` in the terminal.  
    > It is recommended that you do not run it immediately. Instead set it up to make it run during startup and restart the system.

7. But inorder for the application to run at startup you'll need to add the executable ```ktumon.exe``` from the location ```C:\Users\{USER_NAME}\AppData\Roaming\Python\Python3x\Scripts``` to the Startup folder.

8. Press Windows logo key + R to open the Run prompt and type ```shell:startup``` this will open up the Startup folder. Paste in the shortcut of the ```ktumon.exe``` executable in there.

9. Now restart the system.  
The first run would take some time to set up the local database and fetch the latest data from KTU, so please be patient. You'll be getting a desktop notification once the application has finished setting up.

## Technical Stuff

The application runs as a system tray icon making use of Pystray. We use a local sqlite database for our database related stuff.

We spawn new threads to run the timer that checks for notifications at set intervals.

The application's Web GUI runs on Uvicorn ASGI Web Server with FastAPI as Web Framework using the Jinja2 Templating Engine and the frontend is completely made using Bootstrap CSS Framework.

The Pystray Process is used to spawn a new Process for running Uvicorn on demand. The spawned Uvicorn Process automatically opens up the default browser to show the Web GUI.

We use a WebSocket connection with the frontend to the backend to determine whether or not to terminate the spawned Uvicorn Process.

The spawned Uvicorn Process is terminated as soon as the User closes the Web GUI tab or the whole Browser itself.

## Development & Contribution

In order to develop and contribute, fork this project and clone it to your local machine.  
We use Visual Studio Code for development and recommend you to use it as well.

You should have Python 3.11 or above.  
We recommennd working with a virtual environment to isolate the packages.

You can install ```virtualenv``` for that purpose

```
pipx install virtualenv
```

Then within the cloned repository run the following command to create a virtual environment

```
virtualenv venv
```

After which change the interpreter within Visual Studio Code to point to the Python Interpreter contained within the created virtual environment.

Now create a new terminal in Visual Studio Code and you'll see that the virtual environement is activated.  

>You can see ```(venv)``` in the shell prompt of the terminal.

After which type in the following command to install an editable module of the project you are working on

```
pip install -e .[dev]
```

After making any changes to the code you can always run it whenever by executing ```ktumon```  

Whenever you are modifying the code, most of the time you won't have to rebuild and reinstall the editable module and that is the advantage of this approach.

Now you're all set!

The following command is used to build the distribution packages

```
python -m build
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ktumon",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "",
    "keywords": "ktu,ktumon,kerala",
    "author": "",
    "author_email": "Anantha Narayanan N <ananthanryn@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e2/58/c8c065623ffad6b6cd3b0ed38181e396c16f676ddfedf5c1d64ea4c457fb/ktumon-1.0.1.tar.gz",
    "platform": null,
    "description": "\r\n# KTU Mon\r\n\r\n## Introduction\r\n\r\nKTU Mon is an application that was developed as a desperate attempt at trying to get myself up to date with the recent notifications published by KTU.  \r\n\r\nOnce upon a time I missed registering for few backlog exams because I put way too much trust in the elected UUC's of my college. I had hoped they would continue providing updates through their Instagram page, only to realize one day that they've deleted the whole damn account and I had missed my backlog exams.  \r\nThose UUC's were useless to say the least (\u0d06\u0d30\u0d02\u0d2d \u0d36\u0d42\u0d30\u0d24\u0d4d\u0d35\u0d02 \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02).  \r\n\r\nAlthough I have dropped out from this University and no longer need the app, I have decided to add useless enhacements and publish this application as a package so that other students out there studying in KTU might find it useful.  \r\n\r\nSince this is Open Source code, you can try to understand the engineering behind this over-engineered webscraper and please feel free to post bugs, issue fixes, contribute improvements etc.  \r\n\r\nThanks,  \r\nAnantha\r\n\r\n## Installation & Usage\r\n\r\n> The recommended way to install is through pipX  \r\n\r\n1. Get pipX from pip\r\n\r\n    ```\r\n    python -m pip install --user pipx\r\n    ```\r\n\r\n2. Make sure that pipX is on PATH by going to it's installed folder ```C:\\Users\\{USER_NAME}\\AppData\\Roaming\\Python\\Python3x\\Scripts``` and executing\r\n\r\n    ```\r\n    pipx ensurepath\r\n    ```\r\n\r\n3. Restart the terminal and run pipX by typing ```pipx```\r\n\r\n4. If that didn't work, then manually add the ```pipx.exe``` file in the location ```C:\\Users\\{USER_NAME}\\AppData\\Roaming\\Python\\Python3x\\Scripts``` to PATH\r\n\r\n5. After that you can install KTU Mon by typing the following into the terminal\r\n\r\n    ```\r\n    pipx install ktumon\r\n    ```\r\n\r\n6. After installing, you can run it by typing ```ktumon``` in the terminal.  \r\n    > It is recommended that you do not run it immediately. Instead set it up to make it run during startup and restart the system.\r\n\r\n7. But inorder for the application to run at startup you'll need to add the executable ```ktumon.exe``` from the location ```C:\\Users\\{USER_NAME}\\AppData\\Roaming\\Python\\Python3x\\Scripts``` to the Startup folder.\r\n\r\n8. Press Windows logo key + R to open the Run prompt and type ```shell:startup``` this will open up the Startup folder. Paste in the shortcut of the ```ktumon.exe``` executable in there.\r\n\r\n9. Now restart the system.  \r\nThe first run would take some time to set up the local database and fetch the latest data from KTU, so please be patient. You'll be getting a desktop notification once the application has finished setting up.\r\n\r\n## Technical Stuff\r\n\r\nThe application runs as a system tray icon making use of Pystray. We use a local sqlite database for our database related stuff.\r\n\r\nWe spawn new threads to run the timer that checks for notifications at set intervals.\r\n\r\nThe application's Web GUI runs on Uvicorn ASGI Web Server with FastAPI as Web Framework using the Jinja2 Templating Engine and the frontend is completely made using Bootstrap CSS Framework.\r\n\r\nThe Pystray Process is used to spawn a new Process for running Uvicorn on demand. The spawned Uvicorn Process automatically opens up the default browser to show the Web GUI.\r\n\r\nWe use a WebSocket connection with the frontend to the backend to determine whether or not to terminate the spawned Uvicorn Process.\r\n\r\nThe spawned Uvicorn Process is terminated as soon as the User closes the Web GUI tab or the whole Browser itself.\r\n\r\n## Development & Contribution\r\n\r\nIn order to develop and contribute, fork this project and clone it to your local machine.  \r\nWe use Visual Studio Code for development and recommend you to use it as well.\r\n\r\nYou should have Python 3.11 or above.  \r\nWe recommennd working with a virtual environment to isolate the packages.\r\n\r\nYou can install ```virtualenv``` for that purpose\r\n\r\n```\r\npipx install virtualenv\r\n```\r\n\r\nThen within the cloned repository run the following command to create a virtual environment\r\n\r\n```\r\nvirtualenv venv\r\n```\r\n\r\nAfter which change the interpreter within Visual Studio Code to point to the Python Interpreter contained within the created virtual environment.\r\n\r\nNow create a new terminal in Visual Studio Code and you'll see that the virtual environement is activated.  \r\n\r\n>You can see ```(venv)``` in the shell prompt of the terminal.\r\n\r\nAfter which type in the following command to install an editable module of the project you are working on\r\n\r\n```\r\npip install -e .[dev]\r\n```\r\n\r\nAfter making any changes to the code you can always run it whenever by executing ```ktumon```  \r\n\r\nWhenever you are modifying the code, most of the time you won't have to rebuild and reinstall the editable module and that is the advantage of this approach.\r\n\r\nNow you're all set!\r\n\r\nThe following command is used to build the distribution packages\r\n\r\n```\r\npython -m build\r\n```\r\n",
    "bugtrack_url": null,
    "license": "The MIT License (MIT)  Copyright (c) 2022 Anantha Narayanan N  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "App to monitor notifications published by KTU",
    "version": "1.0.1",
    "split_keywords": [
        "ktu",
        "ktumon",
        "kerala"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "10e5a453ff5975866054a5b3ceed834e",
                "sha256": "c7b58f9651e79f094fc3a626c32a9519706d07404dcac799c9ac5a165cd424da"
            },
            "downloads": -1,
            "filename": "ktumon-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "10e5a453ff5975866054a5b3ceed834e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 1016071,
            "upload_time": "2022-12-26T17:42:46",
            "upload_time_iso_8601": "2022-12-26T17:42:46.253418Z",
            "url": "https://files.pythonhosted.org/packages/b1/75/b026148b5ed8cfd1ca4c9d55a58f923bfdb912918f5a8d4c854fb671cf79/ktumon-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "fa60a10a259412935c3b5f19cf1da222",
                "sha256": "177134fae441d9e0212e55d741e626795bd350a58ccdb7413fcabab4a7c15c77"
            },
            "downloads": -1,
            "filename": "ktumon-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "fa60a10a259412935c3b5f19cf1da222",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 1011278,
            "upload_time": "2022-12-26T17:42:49",
            "upload_time_iso_8601": "2022-12-26T17:42:49.380804Z",
            "url": "https://files.pythonhosted.org/packages/e2/58/c8c065623ffad6b6cd3b0ed38181e396c16f676ddfedf5c1d64ea4c457fb/ktumon-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-26 17:42:49",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "ktumon"
}
        
Elapsed time: 0.45288s