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...
🪂 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.

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

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

View your github contribution calander in unicode.
View your github contribution calander in unicode.

View your github contribution calander in the terminal Now in rust! gh-cal 0.1.0 marshmallow View your github contribution calander in unicode USAGE:

A git sub-command to view your git repository in the web browser
A git sub-command to view your git repository in the web browser

git-view A git sub-command to view your git repository in the web browser! About Are you also frustrated from moving your hands away from the keyboard

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.

bevy_scriptum is a a plugin for Bevy that allows you to write some of your game logic in a scripting language

bevy_scriptum is a a plugin for Bevy that allows you to write some of your game logic in a scripting language. Currently, only Rhai is supported, but more languages may be added in the future.

tmplt is a command-line interface tool that allows you to quickly and easily set up project templates for various programming languages and frameworks
tmplt is a command-line interface tool that allows you to quickly and easily set up project templates for various programming languages and frameworks

tmplt A User Friendly CLI Tool For Creating New Projects With Templates About tmplt is a command-line tool that lets users quickly create new projects

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
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
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

Akarsh 8 Aug 10, 2023