{"id":14982589,"url":"https://github.com/qcanvas/qcanvasapp","last_synced_at":"2026-02-04T04:09:45.644Z","repository":{"id":248882136,"uuid":"830044613","full_name":"QCanvas/QCanvasApp","owner":"QCanvas","description":"QCanvas is a desktop client for Canvas LMS","archived":false,"fork":false,"pushed_at":"2025-05-15T12:39:47.000Z","size":4141,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"reborn","last_synced_at":"2025-05-15T13:45:39.095Z","etag":null,"topics":["async","canvas","canvas-lms","canvas-lms-api","education","httpx","pyside6","python","qt6","qt6-widgets","sqlalchemy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/QCanvas.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-17T13:38:00.000Z","updated_at":"2025-05-15T12:39:51.000Z","dependencies_parsed_at":"2025-01-11T06:23:54.548Z","dependency_job_id":"40dcc62f-0201-4998-9d6b-677e8a9bc88d","html_url":"https://github.com/QCanvas/QCanvasApp","commit_stats":{"total_commits":301,"total_committers":2,"mean_commits":150.5,"dds":0.009966777408637828,"last_synced_commit":"3e9ca2868ddfc001f12cf433c97101c65ba84e38"},"previous_names":["qcanvas/qcanvasapp"],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/QCanvas/QCanvasApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QCanvas%2FQCanvasApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QCanvas%2FQCanvasApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QCanvas%2FQCanvasApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QCanvas%2FQCanvasApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QCanvas","download_url":"https://codeload.github.com/QCanvas/QCanvasApp/tar.gz/refs/heads/reborn","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QCanvas%2FQCanvasApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270989156,"owners_count":24680688,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["async","canvas","canvas-lms","canvas-lms-api","education","httpx","pyside6","python","qt6","qt6-widgets","sqlalchemy"],"created_at":"2024-09-24T14:05:42.174Z","updated_at":"2026-02-04T04:09:45.587Z","avatar_url":"https://github.com/QCanvas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QCanvas\n\nQCanvas is an **unofficial** desktop client for Canvas LMS.\n\nhttps://codeberg.org/QCanvas/QCanvas\n\nhttps://github.com/QCanvas/QCanvasApp\n\n# Downloads\n\n\u003ca href='https://flathub.org/apps/io.github.qcanvas.QCanvasApp'\u003e\n    \u003cimg width='240' alt='Get it on Flathub' src='https://flathub.org/api/badge?svg\u0026locale=en'/\u003e\n\u003c/a\u003e\n\nYou can download a **windows** version from [releases](https://github.com/QCanvas/QCanvasApp/releases)\n\nAn appimage version is also available from releases but is not recommended.\n\n# Development/Run from source\n\n## Prerequisites\n\n- Python 3.12\n- Poetry\n\n## Get started\n\n```bash\ngit clone https://github.com/QCanvas/QCanvasApp.git\ncd QCanvasApp\n\n# Install packages and stuff\npoetry install --with flatpak-exclude\n\n# Run QCanvas (If you run `poetry shell`, you can drop the `poetry run` part)\npoetry run qcanvas\n# Alternative\npoetry run python -m qcanvas\n```\n\n## Build custom AppImage\n\n\u003e [!WARNING]\n\u003e This is not recommended as the appimage produced by this process isn't a proper appimage. It's just a pyinstaller build bundled as an appimage.\n\n\u003e [!IMPORTANT]\n\u003e You will need [Appimagetool](https://github.com/AppImage/appimagetool)\n\n```bash\nbash ./dev_scripts/build_appimage\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqcanvas%2Fqcanvasapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqcanvas%2Fqcanvasapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqcanvas%2Fqcanvasapp/lists"}