Skip to content

KaiTheRedNinja/The-GlassRoom

Repository files navigation

Glassroom

A macOS Native Google Classroom Client

Features

  • Basic google classroom parity
    • Loading courses
    • Loading posts
    • Viewing submissions
    • Viewing class members
  • Advanced google classroom parity
    • Post creation
    • View student submissions
    • Submit in-app (Not possible rn due to API restrictions)
    • Grading
  • User Speed Improvements/Conveniences
    • Practically instant loading (via post caching)
    • Offline mode (same reason)
    • Quick open/search (so you can open courses without having to hunt for them with your mouse. Just search by name.)
    • Sorting by post type (eg. only announcements, assignements, or materials)
    • Viewing multiple courses' posts at once (bit buggy rn tho :P)
    • Post tagging
  • Customisability
    • Client-side grouping courses into folders
    • Client-side archiving of courses
    • Custom course colors/icons
    • Renaming your classes
    • Date groups for posts (eg. "Last month", "This year" in that image)
  • Accessibility
    • Bionic reading (bolds the first few characters of a word, helps adhd people focus when reading)

Speed comparisons

Category Google Classroom Web GlassRoom (cached) GlassRoom (non-cached)
Launching website/app 4.68s N/A 0.99s
Loading courses 3.50s 0.00s 1.48s
Loading posts 2.80s 0.14s 1.18s
Loading post's submission 0.90s 0.13s 0.31s

Images

Announcements and posts

image image

Aggregate view

image

Search

image image

Settings and Customisation

image image

Fancy UI option

image

Accessibility - Bionic reading

image

Building

NOTE: This MAY be outdated

Prerequisite: You have a google developer project with an API key capable of utilising Google Classroom and Drive APIs

  1. Add your own The-GlassRoom-Info.plist file at the top level of the repo, in this format:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>com.googleusercontent.apps.[YOUR_KEY_HERE]</string>
			</array>
		</dict>
	</array>
</dict>
</plist>
  1. Create Secrets (Sensitive).swift, extend the Secrets enum and override static func getGoogleClientID() -> String to return your API key
  2. Change the bundle identifier and team in the xcodeproj to your own

About

A macOS Native Google Classroom Client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages