Skip to content

This is a python project for managing a roster of individuals and assigning them to randomly to small groups

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
license.txt
Notifications You must be signed in to change notification settings

gmstoner/courseMgr

Repository files navigation

Course Manager

This project is for managing a course roster and small groups. It is expected the user will have some experience with python and MySQL.

First the project imports an excel(XLSX) file. The function is configured for the default file generated by my university's system. The function ignores the student ID column and generates a unique UUID instead for each student. Each time it reviews the excel file and add/drops students accordingly. A sample excel file is provided. Names were genereated with FakeNameGenerator (http://www.fakenamegenerator.com/)

Second to put students into groups, the program prompts the user to input a grouping name and how many students per group. Then it randomly assigns on the roster groups. These records are added to the MySQL database and then can be used in a variety of ways. As such, expertise in using MySQL is required.

The Course Manager is only part of a suite of tools I've developed for managing the courses I teach.

Getting Started

These instructions will get you a copy of the project up and running on your local machine.

This project is not meant to be deployed to a web server or production environment.

Prerequisites

What things you need to install the software and how to install them

###MySQL

Create a local or remotely hosted MySQL database with the following schema.

You will need to update dbConnector.py with the database name, host, and login credentials.


-- ----------------------------
--  Table structure for `grouping`
-- ----------------------------
DROP TABLE IF EXISTS `grouping`;
CREATE TABLE `grouping` (
  `group_id` varchar(30) NOT NULL,
  `group_type` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`group_id`)
) ;

-- ----------------------------
--  Table structure for `grouping_member`
-- ----------------------------
DROP TABLE IF EXISTS `grouping_member`;
CREATE TABLE `grouping_member` (
  `group_id` varchar(30) DEFAULT NULL,
  `related_id` varchar(50) DEFAULT NULL
) ;


-- ----------------------------
--  Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `user_id` varchar(50) NOT NULL,
  `first_name` varchar(25) DEFAULT NULL,
  `last_name` varchar(25) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `program` varchar(100) DEFAULT NULL,
  `level` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ;

Python Env Setup

Install a virtual (or containerized) Python environment, for example:

Create a virtual environment:

# Standard Python venv
$ python3 -m venv venv

# Alternatively - you can use "conda"

Activate the virtual environment:

$ source venv/bin/activate

Upgrade pip and get all Python dependencies with:

$ pip3 install --upgrade pip
$ pip3 install -r requirements.txt

Run the CourseMgr

Download and copy your roster as roster.xlsx to this folder

Remember to activate the virtual environment:

$ source venv/bin/activate
$ python3 main.py

Authors

License

This project is licensed under the MIT License - see the LICENSE.txt file for details

About

This is a python project for managing a roster of individuals and assigning them to randomly to small groups

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
license.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages