A filesystem driver that allows you to view your Blackboard course contents as if they were normal files and folders on your system!

Related tags

Command-line bbfs
Overview

BlackboardFS

Blackboard: noun A website so bad that it might as well be a network drive.

BlackboardFS is a filesystem driver that allows you to view your Blackboard course contents as if they were normal files and folders on your system!

A banner image demonstrating how BlackboardFS maps Blackboard courses to folders

The filesystem matches Blackboard's structure as closely as possible, with the same familiar sidebar names and even the course's internal folder structure!

$ tree Blackboard/COMP3506
Blackboard/COMP3506
├── Announcements.desktop
├── Assessment
│   ├── Assignment One: Due Week 6
│   ├── Blackboard.desktop
│   └── Quiz Solutions
│       ├── Blackboard.desktop
│       ├── quiz1-sol.pdf
│       ├── quiz2-sol%281%29.pdf
│       └── quiz3-sol.pdf
├── Blackboard.desktop
├── Course Help
│   ├── Blackboard.desktop
│   └── Student services and resources
├── Course Profile (ECP).desktop
├── Course Staff.desktop
├── Ed Discussion.desktop
├── Gradescope.desktop
├── Learning Resources
│   ├── Blackboard.desktop
│   ├── Code Snippets
│   │   ├── Blackboard.desktop
│   │   ├── Week 1
│   │   ├── Week 2
│   │   ├── Week 3
│   │   └── Week 4
│   ├── COMP3506-7505-2023-plan-v3.pdf
│   ├── Course Reading List.desktop
│   ├── Lecture_Recordings.desktop
│   ├── Resources

--snip--

15 directories, 70 files

Links to external resources are exposed as .desktop files (Linux) or .webloc files (macOS) so you can easily reach Gradescope, echo360, and even get back to Blackboard's own web UI right from your file browser!

As a bonus, browsing the filesystem is significantly faster than browsing the Blackboard web UI, which is very helpful when you're stuck on slow campus WiFi.

Requirements

macOS

BlackboardFS requires macFUSE be installed on your system.

Linux

The auth window requires GTK3, WebKitGTK, and related libraries be installed on your system. Additionally, to mount the filesystem, FUSE3 is required. Make sure the following packages are installed:

Debian/Ubuntu

sudo apt install libwebkit2gtk-4.1-dev libfuse3-dev

Fedora

sudo dnf install gtk3-devel webkit2gtk4.1-devel fuse3-devel

Arch/Manjaro

sudo pacman -S webkit2gtk-4.1 fuse3

Installation

Clone this repo to a location of your choosing. Then

git submodule update && git submodule init

You can then cargo run -p bbfs-cli or cargo install --bin bbfs-cli as you wish.

Usage

This is a FUSE-based filesystem. To mount:

bbfs <mount_point>

This will spawn a browser window for you to log in with your UQ login. WE ARE ABLE TO INJECT ARBITRARY CODE INTO THIS BROWSER WINDOW, SO MAKE SURE YOU READ AND UNDERSTAND OUR CODE TO MAKE SURE WE'RE NOT STEALING YOUR CREDENTIALS (the relevant code is in cookie_monster/; everything else only gets a session token).

To unmount the filesystem:

fusermount -u <mount_point>

or on MacOS:

diskutil unmount <mount_point>
You might also like...
Sero is a web server that allows you to easily host your static sites without pain. The idea was inspired by surge.sh but gives you full control.

sero Lightning-fast, static web publishing with zero configuration and full control 📖 Table Of Contents 📖 Table Of Contents 🔧 Tools ❓ About The Pro

This tool was developed as part of a course on forensic analysis and cybersecurity. It is intended to be used as a training resource to help students understand the structure and content of job files in Windows environments.

Job File Parser Job File Parser is a Rust-based tool designed for parsing both legacy binary job files and modern XML job files used by the Windows Ta

Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.
Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.

Leetcode TUI Use Leetcode in your terminal. Why this TUI: My motivation for creating leetcode-tui stemmed from my preference for tools that are lightw

🪂 SkyFolder shares your folders on the network!
🪂 SkyFolder shares your folders on the network!

Skyfolder Easily share your files & folders on the network. Security, Simplicity, Style all built in. It's like your own personal Google Drive! Skyfol

A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.
FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.

Connect quickly to your services 🚀 FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config. Instal

A command line application which sets your wall paper with new image generating pollens once they arrive.

pollenwall Table of Contents pollenwall About Installation Binary releases Build from source Usage Command Line Arguments Running as a service MacOS L

Lightweight command line tool to quickly navigate across folders.

slingshot 0.3.0 Slingshot is a lightweight tool to browse files in the terminal. It allows the user to quickly filter through files in any directory,

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find
fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.

Owner
null
An uncluttered blackboard, ideal for simple sketches during online meetings

lavagna It's a blackboard, not a lasagna. Lavagna is a "no frills" blackboard, ideal for simple sketches during online meetings. You have just a black

Alessandro Pezzato 6 Dec 15, 2022
Testing out if Rust can be used for a normal Data Engineering Pipeline.

RustForDataPipelines Testing out if Rust can be used for a normal Data Engineering Pipeline. Check out the full blog post here. https://www.confession

Daniel B 7 Feb 17, 2023
Remote-Archive is a utility for exploring remote archive files without downloading the entire contents of the archive.

[WIP] REMOTE-ARCHIVE Remote-Archive is a utility for exploring remote archive files without downloading the entire contents of the archive. The idea b

null 4 Nov 7, 2022
Introducing Inlyne, a GPU powered yet browsless tool to help you quickly view markdown files in the blink of an eye.

Inlyne - a GPU powered, browserless, markdown + html viewer inlyne README.md --theme dark/light About Markdown files are a wonderful tool to get forma

null 308 Jan 1, 2023
FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension

FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension. With FileSorterX, you can easily keep your files organized and find what you need quickly.

Xanthus 22 Apr 4, 2023
Store your transfer.sh links, so you can remember them later and know when they will expire, but now written in Rust.

Transfer.sh helper Rusted The idea of the script is to store your transfer.sh links and simplify its usage, so you can remember them later and know wh

Reinaldo Rozato Junior 10 Nov 30, 2022
Catch Tailwindcss Errors at Compile-Time Before They Catch You, without making any change to your code! Supports overriding, extending, custom classes, custom modifiers, Plugins and many more 🚀🔥🦀

twust Twust is a powerful static checker in rust for TailwindCSS class names at compile-time. Table of Contents Overview Installation Usage Statement

null 15 Nov 8, 2023
Evaluate performance gains to expect when EVM were to compile hot contracts into machine code

Convert evm bytecode to native machine code and go vroom - just an experiment, probably broken, reach out to [email protected] to contribute / productionize.

Paradigm 105 Aug 1, 2023
An ultra-fast CLI app that fixes JSON files in large codebase or folders

minosse An ultra fast CLI app that fixes json files in large codebase or folders USAGE: minosse [OPTIONS] <input-dir> FLAGS: -h, --help Prints

Antonino Bertulla 5 Oct 17, 2022
This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

Mufeed VH 38 Dec 30, 2022