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.
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.
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`)
) ;
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
Download and copy your roster as roster.xlsx to this folder
Remember to activate the virtual environment:
$ source venv/bin/activate
$ python3 main.py
- Gates Matthew Stoner - gmstoner
This project is licensed under the MIT License - see the LICENSE.txt file for details