A custom Compose Multiplatform-based client for the Compass API!
API handling using Kotlass, HTML rendering using HtmlText.
Thanks to Qawaz's fork of the Material Datepicker for making it so easy to set that up in Multiplatform!
Currently in beta!
Unticked are planned features. You can also suggest features in Issues!
- Schedule
- (Experimental) desktop-style view (time between classes & class length)
- Calendar
- Day based navigation
- Date picker
- Class view
- Lesson plan
- Resources
- Click for class-filtered learning tasks
- Newsfeed
- Attachments
- Learning Tasks
- Basic sorting (WIP)
- Sort by class
- Search
- Status
- Attachments
- Upload
- Feedback
- Comments
- Event view
- Alerts
- Coursework Notifications
- Profile page
- Reports
- Tasks
For Android, precompiled APKs are available in Releases. On Desktop for now, see Compiling.
This is the default method for Android. Open the app and choose "Web (Recommended)" and log in as you would normally in Compass.
Don't use this unless you have issues with Web login (if so, please report in Issues) or are on Desktop.
- Log into compass, open the F12 menu and find the Network tab.
- Reload the page and filter by XHR. Choose a request, and copy the
Cookie
request header value. - For the domain, just copy the domain (and subdomain) from the site URL. (
*.compass.education
) - For User Id, click on a class, and copy the value of
targetUserId
from the URL. If your Compass instance doesn't have this, it can also be obtained by grabbing it from the request body ofGetMyNewsFeedPaged
.
Using either Intellij Idea or Android Studio
with the Multiplatform plugin, clone and import the repo and let Gradle install dependencies.
You'll get some errors, since you won't have Kotlass, HtmlText or compose-datetime.
Make sure to clone these too, and run their :maven:publishToMavenLocal
task first.
Once the project sync is finished, run the :desktop:compose desktop:run
gradle task to make sure it works.
Next, you can compile the APK through :android:build:assemble
.