/tasks

The administrative bot. Dubbed `autobot` – handles the overall maintenance of each group, each semester.

Primary LanguagePython

ucfai's autobot

As managing a course/club is rather involved, coupled with the ever-changing-hands-nature of such a group, it becomes difficult to onboard newcomers on the processes and structures that have been settled upon by prior folks. To overcome this, @ionlights initially developed a bot to handle this. Since then, many others have contributed to expanding autobot's capabilities to handle nearly all of the managerial and distributed tasks of AI@UCF.

Documentation

This is currently under development.

We've taken time to document as thoroughly, and unobtrustively, as possible – and you can find a web-based version of the documentation at https://ucfai.org/docs/admin/bot.

Development

Code Structure

autobot
├── apis           # any external resource we need access to are defined here.
├── log.py         # logging, mixed-in with Python's `logger`
├── main.py        # package entrypoint, parsers, and high-level operations
├── meta           # OO-like containers for Groups, Coordinators, and Meetings
│   └── groups.py  # sets up specific attributes for each Group
├── safety.py      # figures out the right paths and configurations
├── templates      # these are used for creating semesters, banners, etc.
└── utils          # specific actions, since these don't quite make sense in OO

General Structure

autobot focuses on managing 4 different verticals:

  1. Generate minimal content needed for a given group's semester.
  2. Maintain and update the website to ensure content is publicly accessible.
  3. Perform routine genertion for various social platforms, e.g. uploading meetings to YouTube, generating email and instagram banners, etc.
  4. Onboard new leadership to make sure everyone has appropriate access on a variety of plaforms we use in managing AI@UCF.

Installation

Just about everything is packaged in a conda environment. To install you need to make sure you have Anaconda or Miniconda on your system. Once installed, proceed with the following:

$ conda env create -f envs/{macos,linux}.yml  # pick one of the OSes
$ conda activate ucfai-admin  # or `source activate ucfai-admin`
$ pip install -e .  # make sure you're in the same place as this README
$ autobot -h  # this should output something that looks like "help"

Since you're probably developing the autobot, make sure you have the related groups laid out like the following tree output shows:

ucfai
├── bot
├── core
├── data-science
├── intelligence
└── supplementary

Note: If you need help decrypting any files ending in .gpg, contact @ionlights.