summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2022-04-11 16:24:24 +0800
committerFrederick Yin <fkfd@fkfd.me>2022-04-11 16:24:24 +0800
commit579662f919502caf605c1e053685084d8dfe7498 (patch)
tree88af31e29735928c243b5f5ccbfa8a9bcea4200c /README.md
parent22dc4f825a7c3dcab5601c5d4d7df042d39454bc (diff)
Add README
Diffstat (limited to 'README.md')
-rw-r--r--README.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f71bdbc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,43 @@
+# Kanvas
+
+Kanvas is a plasmoid that syncs announcements and assignments from your
+university's Canvas®™© LMS to your Plasma desktop. It lacks features and
+configs, and I would not say it is not production-ready.
+
+Kanvas is written in QML. It is the first QML application I wrote and
+I have not touched JavaScript in two years, so the code sucks.
+
+Right now, it looks like this:
+
+![Screenshot](img/screenshot_0.1.png)
+
+## Development
+
+First obviously you need the Plasma framework. If you have zero Plasma
+development experience like me, here are some useful links:
+
+- [Techbase: Plasma 5](https://techbase.kde.org/Development/Tutorials/Plasma5)
+- [Developer: Plasma Widget Testing](https://develop.kde.org/docs/extend/plasma/widget/testing/)
+
+My workflow as of now is a simple Makefile. Run `make install` to install
+the plasmoid to your `~/.local/share/plasma/plasmoids/`, then `make` to
+run it in a window (`plasmawindowed`). Each time you `make`, the plasmoid
+in `.local/` will be updated.
+
+At startup you will see sample announcement/assignments. They are for
+layout tweaking in the early stages of development. Before doing anything
+you will need to configure the plasmoid. Right click the "Kanvas" heading
+and click "Configure Kanvas". Go to the "Canvas" tab and fill out your
+Canvas domain and OAuth2 token. Click "Fetch courses", then follow
+instructions on the UI. Click "OK" to save. The configuration will be
+saved for plasmawindowed every time you debug, but kept separate from the
+rest of Plasma; if you add the widget to your desktop it has to be
+configured again.
+
+## Todo
+
+- [ ] Placeholders when a list is empty
+- [ ] Placeholders when machine is offline
+- [ ] Sort assignments by urgency
+- [ ] More friendly course list in config dialog
+- [ ] Remember finished tasks