
Blackboard-LMS-CLI
Command-line tool suite for Blackboard LMS
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
About The Project
user@computer:~$ bb
Usage: bb [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
activate-shell-completion Activate shell completion for your shell
announcements Commands for listing, creating, deleting and...
assignments Commands for creating, listing and...
contents Commands for listing, creating, deleting,...
courses Commands for listing courses
login Authorize user with username and password.
logout Logout user.
user@computer:~$ bb courses list
Id Course Name
_33050_1 Donn Alexander Morrison testrom
_32909_1 Sammenslått - Ingeniørfaglig systemtenkning INGA2300 INGG2300 INGT2300 (2022 VÅR)
_31606_1 INGT2300 Ingeniørfaglig systemtenkning (2022 VÅR)
_32736_1 Sammenslått - Matematiske metoder 3 for dataingeniører IMAX2150 (2021 HØST)
_28936_1 IMAT2150 Matematiske metoder 3 for dataingeniører (2021 HØST)
_27251_1 IDATT2900 Bacheloroppgave (start 2021 HØST)
Blackboard LMS CLI is a command-line tool suite that students and staff can use to communicates with the Blackboard Learn REST API. It was created because the blackboard web interface can be ineffective and awkward to use. The CLI aims to offer a simple, intuitive and effective way to execute tasks in the Blackboard LMS.
Built With
The software is written in python and built with:
- Click - A python package for creating beautiful command line interfaces in a composable way with as little code as necessary.
Getting Started
Some instructions on how to quickly make the CLI available on your computer!
Prerequisites
To run this CLI you need python and pip installed, as well as magic
library, which is installed by following the installation guide beneath.
Installation
NB! Currently, this CLI can only be installed using pip, but we are planning to support other installation methods later.
pip install Blackboard-LMS-CLI
Test if the installation was successful by running $ bb --version
command. You should see something like this:
$ bb --version
bb, version 0.1.0
Shell completion: The CLI also supports shell completion with TAB, but is currently only comaptible with bash, zsh and fish. To activate this you can follow the guide here: Click shell completion help page.
Usage
First of all, you can either login using the command:
user@computer:~$ bb login
or just execute the command you want, and you'll be logged in if you aren't already.
The CLI is designed in such a way that its commands and subcommands, is structured much alike like the Blackboard Learn REST API modules. bb
is the main command, then for example is courses
a subcommand of bb
, and at last, list
is a subcommand of courses
. See demo here
All commands contains a help page that can be accessed through adding the flag --help
, for example if I want to see the help page about creating a file content:
user@computer:~$ bb contents create file --help
Output:
Usage: bb contents create file [OPTIONS] TITLE FILE_PATH
Creates a file content.
Options:
-c, --course TEXT COURSE ID, of the course where the content exists
[required]
-f, --folder TEXT FOLDER ID, of the folder you want to create content in.
[required]
-n, --new-window
--end-date TEXT When to make content unavailable. Format: DD/MM/YY
HH:MM:SS
--start-date TEXT When to make content available. Format: DD/MM/YY
HH:MM:SS
-r, --reviewable Make content reviewable
-h, --hide-content Hide contents for students
--help Show this message and exit.
Using the --help
flag is very useful, because many commands have many possible options which can be hard to memorize in the beginnning.
Example usage of the CLI:
- List announcements demo
- Create announcement demo
- List course content demo
- Get spesific course content demo
- Create a file content demo
Dependencies
For this CLI to work you need python and pip installed on your computer. The CLI also uses the library magic.
The following libraries are required:
- Click
- colorama
- requests
- python-dotenv
- beautifulsoup4
- lxml
- shellingham
- anytree
- html2text
- python-dateutil
- tabulate
Configuration
TODO:
If the software is configurable, describe it in detail, either here or in other documentation to which you link.
At the moment, the CLI is not configurable. However, this is something we plan on adding in the future.
Ideas configurable elements:
- A setting that chooses whether ID's such as course id and content id is used as positional arguments or required options.
- If they want the responses in json or formatted by the CLI.
How to test the software
TODO:
If the software includes automated tests, detail how to run those tests.
Known issues
TODO:
Document any known significant shortcomings with the software.
Getting help
If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker, or mail us:
Mail info:
Getting involved
TODO:
This section should detail why people should get involved and describe key areas you are currently focusing on; e.g., trying to get feedback on features, fixing certain bugs, building important pieces, etc.
General instructions on how to contribute should be stated with a link to CONTRIBUTING.
Open source licensing info
TODO:
Credits and references
TODO:
- Projects that inspired you
- Related projects
- Books, papers, talks, or other sources that have meaningful impact or influence on this project
CFPB Open Source Project Template Instructions
- Create a new project.
- Copy these files into the new project
- Update the README, replacing the contents below as prescribed.
- Add any libraries, assets, or hard dependencies whose source code will be included in the project's repository to the Exceptions section in the TERMS.
- If no exceptions are needed, remove that section from TERMS.
- If working with an existing code base, answer the questions on the open source checklist
- Delete these instructions and everything up to the Project Title from the README.
- Write some great software and tell people about it.
Keep the README fresh! It's the first thing people see and will make the initial impression.