https://github.com/sugarvoid/chawk
A python wrapper of the blackboard api.
https://github.com/sugarvoid/chawk
api-wrapper blackboard blackboard-ultra
Last synced: 9 months ago
JSON representation
A python wrapper of the blackboard api.
- Host: GitHub
- URL: https://github.com/sugarvoid/chawk
- Owner: sugarvoid
- License: mit
- Created: 2025-08-07T16:12:24.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-09-09T21:19:06.000Z (9 months ago)
- Last Synced: 2025-09-10T00:58:47.726Z (9 months ago)
- Topics: api-wrapper, blackboard, blackboard-ultra
- Language: Python
- Homepage: https://pypi.org/project/chawk/
- Size: 32.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Chawk
A python wrapper of the blackboard api to simplify admin tasks such as managing courses.
> [!WARNING]
> This project is a work in progress.
# Setup
You will need to create an application to get the needed keys. You can request access to the Blackboard REST APIs through the [Developer Portal](https://developer.blackboard.com/).
# Example of using the library
```python
from chawk.blackboard_client import BlackboardClient
base_url = "https://blackboard.xxxx.edu"
client_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxx"
# Create client
client = BlackboardClient(client_id, client_secret, base_url, "example.log")
# Example usage
print(client.user.does_user_exist("00000_0"))
print(client.course.does_course_exist("00000_1"))
client.course.enroll_user(username="wilson1234", course_id="math101213", role="Student")
```
# Current Functions
## User
```python
create_user(username: str, f_name: str, l_name: str, email: str, password: str) -> None
does_user_exist(username: str) -> bool
update_email(username: str, email: str) -> None
update_availability(username: str, availability: str) -> None
update_data_source(username: str, data_source_id: str) -> None
get_course_role(username: str, course_id: str) -> str
add_institution_roles(username: str, roles: list) -> None
get_enrollments(username: str) -> list[Course]
```
## Course
```python
add_child_course(course_id: str, child_id: str) -> None
enroll_user(username: str, course_id: str, role: str = "Student") -> None
does_course_exist(course_id: str) -> bool
remove_user_from_course(username: str, course_id: str) -> None
get_course_student_list(course_id: str) -> list
create_empty_course(course_id: str, course_name: str) -> None
copy_course_exact(master_id: str, copy_id: str) -> None
delete_course(course_id: str) -> None
change_user_availability(student_id: str, course_id: str, available: str = "No")
update_course_title(course_id: str, new_name: str) -> None
update_course_term(course_id: str, term_id: str) -> None
update_course_availability(course_id: str, availability: str) -> None
rename_course(course_id: str, new_name: str) -> None
get_users_in_course_by_role(course_id: str, role: str = "") -> list[str]
```
## Discussion
```markdown
```
## Gradebook
```python
update_grade(course_id: str, column_id: str, username: str, new_value: str) -> None
update_column_due_date(course_id: str, column_id: str, due_date: str) -> None
create_gradebook_column(course_id: str, column_name: str, description: str, score: int) -> None
```