IST-Website - IST Tutoring Portal for python

Overview

IST Tutoring Portal

This portal is a web based interface to handle student help requests in the University of Nebraska at Omaha Computer Science Learning Center.

Table of Contents

  • Table of Contents
  • Use
    • Home Page
    • Students
      • Open Ticket
      • Status
    • Tutor Login
    • Logout
    • Tutors
      • Edit User
      • View Tickets
        • Claim/Close Ticket
        • Reopen Ticket
    • Administrators
      • Administration Console
        • Messages
        • Courses
        • Course Sections
        • Semesters
        • Professors
        • Problem Types
        • Tutors
      • Reports
        • Download Report
        • Ticket Details
  • Appendix A. Setup and Installation

Use

Home Page

Logged in: Homepage

Logged out with message: Homepage with Message

The home page is the first page displayed to the user. In the final version of the system it will be located at https://tutoring.ist.unomaha.edu/. The home page includes links to the Open Ticket and View Tickets pages in the body. The toolbar also contains a link to the Status page and either Tutor Login or Logout based on whether the user is logged in. Additionally, the Computer Science Learning Center logo above the toolbar is a link to the homepage.

If a tutor is logged in an extra Tutor dropdown will be in the toolbar with links for the Edit User and View Tickets pages. If an administrator is logged in, an Admin dropdown will be available in addition to the Tutor dropdown. The Admin console contains an Admin Console link to the administration console, and a Reports link to the reports page.

The toolbar and logo are displayed on all pages, but have been omitted from screenshots to save space.

Students

Students do not need to log in to the system. While not logged in, two features are accessible, opening tickets and the status page.

Open Ticket

Open Ticket Page

A ticket can be opened by clicking the Open Ticket button on the home page. This opens the Open Ticket form.

On the form, a student must enter their Email, First Name, Last Name, Course and Section, Assignment Name, Specific Question, and Problem Type.

The Email, First Name, and Last Name are the personal contact information for the student requesting the session. If a group is requesting tutoring only the contact information for the group leader should be entered.

The Course selection filters the Section options based on the course selected.

The Section selection is the course section the student is requesting tutoring for.

The Assignment Name is the name of the assignment the student is requesting help with. This is usually similar to "Assignment 1" or "Project 1".

The Specific Question is the question the student is asking or a topic they need to know more about. Students should be instructed to be as specific as possible.

The Problem Type is a selection of the categories of problems that students may encounter. This helps determine the stage of problem solving they are at.

Once all of the fields are filled out, the ticket is submitted with the Submit button. The page is protected by a CAPTCHA so students may be asked to respond to the CAPTCHA before the ticket is submitted.

Status

Status Page

The status screen gives an overview of the situation in the tutoring center. It can be accessed by clicking the Status button in the toolbar. The status screen has three sections.

The Messages section displays any current messages entered by an administrator.

The Course Availability section gives the current number of tickets and tutors in the tutoring center for courses selected by an administrator. This shows how busy the tutoring center is and whether there are tutors available to students planning on getting help.

The last section, Open Tickets only displays for logged in users. It shows the current list of open tickets.

Tutor Login

To perform any tutor or administrator actions the tutor or administrator must be logged in. To log in, click the Tutor Login button in the toolbar. This will redirect to a Google login page. Log in using the email for your account (usually an @unomaha.edu account). If this is the account's first time logging in access must be granted for the application to view the account's email address. The tutor will then be logged in if the account they used to log in is a valid, active tutor account or rejected otherwise. Either way, they will be redirected back to the application's home page and a message will be displayed indicating whether login was successful.

Logout

To logout, a tutor can click the Logout button in the toolbar. They will be logged out and redirected to the home page with a logout confirmation.

Tutors

Edit User

Edit User Page

Tutors can edit a subset of the information about themself by clicking Tutor in the toolbar, then Edit User. Administrators will be redirected to the Edit Tutor page for themself, while normal tutors will be shown a subset of the fields accessible to administrators.

Tutors can edit their First Name, Last Name, Currently Working status, and Can Tutor course proficiencies. For detailed instructions see the Tutors page description below.

View Tickets

View Tickets Page

Tutors can. The tickets list can be accessed by clicking Tutor in the toolbar, then View Tickets or by clicking View Tickets on the homepage.

The view tickets page has three sections. Open is for tickets not yet claimed by a tutor. Claimed is for tickets that have been claimed, but the session is not yet finished. Closed is for tickets for which the session has been finished.

Claim/Close Ticket

Claim/Close Ticket Page

Tickets in the Open section have a Claim button and tickets in the Claimed section have a Close button. Both of these lead to the Claim/Close page for the selected ticket.

On the Claim/Close page tutors can edit the ticket course and section, assignment name, question, problem type, claiming tutor, assisting tutor, and whether the session was successful. The Claiming Tutor is the tutor that helped the student during the session. The Assisting Tutor is for if another tutor provided input during the session. Session Duration indicates the actual amount of time that the tutor spent with a student. Was Successful indicates if the original question for the session was resolved. The purposes of the rest of the fields are described in the Open Ticket page description above. All of these fields are required except the assisting tutor.

Once the necessary fields are filled out the ticket can be assigned to the Claimed section by clicking the Claim button or the Closed section by clicking the Close button.

Reopen Ticket

Tickets in the Closed section have a Reopen button. Clicking this moves the ticket from the Closed section back to the Claimed section, altering its status accordingly. The rest of the tickets details remain the same.

Administrators

Administration Console

Admin Console Page

The administration console is where the administrator can set up tutor accounts, messages, problem types, and all of the information necessary for course sections.

The Administration Console can be accessed when logged in as an administrator by clicking Admin in the toolbar, followed by Admin Console. If the Admin option does not exist you are not logged in as an administrator.

On the Administration Console page there are links to menus for Messages, Courses, Course Sections, Semesters, Professors, Problem Types, and Tutors. By clicking each link, menus can be accessed that allow editing and viewing of objects of each type.

Before adding a Course Section, the corresponding Course, Semester, and Professor must be added. Before students can open tickets, there must be a Course Section for the current Semester and at least one Problem Type.

Admin List Page

Each menus is the same, with a + New button to create a new object and Edit buttons to change the details of an existing object. The screen for editing is the same as for creating an object, but the existing details are already filled in. The object is saved or created by clicking the submit button.

Messages

Edit Message Page

Messages display on the status screen. A message will not display before its Start Date or after its End Date. The message's Message is converted to HTML using Markdown syntax.

Messages are sorted by their end date.

Courses

Edit Course Page

Courses allow students to select sections and group tickets on the status page. The Course Number is the department and number listed in the course catalog (eg. CIST 1400). The Course Name is the name of the course in the catalog (eg. Introduction to Computer Programming). The Display on Status Page field will select the course to have its number of tickets and tutors shown on the status page if checked.

Courses are always sorted by their number.

Course Sections

Edit Section Page

Course Sections are the individual classes taught for each course. The Semester is the university semester that the course is taught during. A section will only be available for students to open tickets for during the selected semester. The Course is the course that a section belongs to. The Number is the section number in the course catalog. The Time is a description of when the class is held. The Professor is who is teaching the class.

Course Sections are sorted by their semester, and by their course number within each semester, and by their own number within each course.

Semesters

Edit Semester Page

Semesters group course sections to a university semester. The Year is the year a semester is held during. The Season is the part of the year a semester is held during. The Start Date is the first day of the semester and the End Date is the last day of the semester. Course sections for a semester will not be available for opening tickets outside of these dates.

Semesters are sorted by their start date.

Professors

Edit Professor Page

Professors are the teachers for course sections. The First Name and Last Name set the first and last name for the professor.

Professors are sorted by their last name.

Problem Types

Edit Problem Page

Problem Types are the categories of issues students may be experiencing. The description is a short summary of the type of problem.

Problem Types are sorted by their description.

Tutors

Edit Tutor Page

New Tutor Page

Tutors are the accounts for each tutor. Email is the gmail account the tutor uses to log in. The email is not editable once the tutor has been submitted! First Name and Last Name are the first and last names of the tutors. Is Active indicated is the tutor is currently employed. A tutor not marked as Is Active cannot login. Is Admin gives a tutor administrative rights. Currently Working marks a tutor as being present in the tutoring center right now. A currently working tutor is displayed on the course list under the classes they can tutor. The Can Tutor section is a checklist of the courses the tutor can tutor for.

Tutors are sorted by last name.

Reports

Reports Page

The reports page contains a summary of all of the tickets in the system. The reports can be accessed when logged in as an administrator by clicking Admin in the toolbar, followed by Reports. If the Admin option does not exist you are not logged in as an administrator.

Various filters can be applied to the list. By entering a start date only tickets opened on or after the date will be displayed. By entering an end date only tickets opened on or before the date will be displayed. By selecting a semester only tickets that belong to that semester will be displayed. By selecting a course only tickets that belong to that course will be displayed. Once he desired filters are entered clicking the Filter button will apply them to the list.

Download Report

The current report can be downloaded in a CSV format (openable in Microsoft Excel) by clicking the Download Report button. The current list of tickets will be downloaded with the same filters applied. Filters are only applied to the download if they have been applied to the list using the Filter button.

Ticket Details

Ticket Details Page

More information about a given ticket can be viewed by clicking the Details button on that ticket's row. Clicking the Delete button at the bottom of the details page will permanently delete the ticket.

Appendix A. Setup and Installation

  1. Install Python 3
    1. The application must be run using Python 3
  2. Run pip3 install -r requirements.txt (make sure you are using the version of pip for python3)
    1. If any modules fail to install they may have to be installed manually
    2. DBAPI modules for databases other than SQLite or PostgreSQL will have to be installed separately
  3. Setup a Google API for the login system
    1. https://console.developers.google.com/apis/credentials
    2. Under credentials, create credentials for an OAuth Client ID
    3. Select Web application
    4. Provide the domain the application will run at, followed by /oauth-authorized (eg. www.example.com/oauth-authorized) as the authorized redirect URI
    5. Save the client ID and secret for later
  1. Run flask run -h 0.0.0.0 -p $PORT where $PORT is the port you wish to run the server on (defaults to 5000) to create the appropriate database tables
    1. The FLASK_APP environment variable must be set to application.py
    2. The FLASK_DEBUG environment variable should be set to 0 unless you are testing the application (do not run in debug mode in a production environment)
    3. The database is specified in the DB environment variable
      • If the database is not a sqlite database, a SQLAlchemy dialect and DBAPI module may be required
      • See this page for details about SQLAlchemy dialects and DBAPIs
      • The database URI must include the database dialect (eg. postgresql://user:[email protected]/test would be a postgres database)
  2. Access the database manually to add configuration information
    1. In the configuration table the Google API client ID from earlier goes in the setting column of the row with the name GOOGLE_CONSUMER_KEY
    2. Also in configuration, the Google API client secret goes in the setting column of the row with the name GOOGLE_CONSUMER_SECRET
    1. In the tutors table create a tutor with an email you can log into Microsoft with. Set the tutor_is_active and tutor_is_superuser columns to true
  3. Run portal.py again with the new configuration to start the site
  4. By logging in as an administrator account other objects can be created
Owner
Jean
Jean
Gobigger Explore For Python

Gobigger-Explore 🔮 GoBigger Challenge 2021 Baseline en/中文 🤖 Introduction This is the baseline of GoBigger Multi-Agent Decision Intelligence Challeng

OpenDILab 145 Dec 22, 2022
Hospitality app for ERPNext to manage hotels & restaurants.

Hospitality ERPNext Hospitality module is designed to handle workflows for Hotels and Restaurants. Manage Restaurants The Restaurant module in ERPNext

Frappe 19 Dec 26, 2022
Reproduce digital electronics in Python

Pylectronics Reproduce digital electronics in Python Report Bug · Request Feature Table of Contents About The Project Getting Started Prerequisites In

Filipe Garcia 45 Dec 20, 2021
Cardano SundaeSwap ISO SPO vote ranking script

Cardano SundaeSwap ISO SPOs vote ranking This Python 3 script uses the database populated by cardano-db-sync from the Cardano blockchain to generate a

SM₳UG 1 Nov 17, 2021
A fast Python in-process signal/event dispatching system.

Blinker Blinker provides a fast dispatching system that allows any number of interested parties to subscribe to events, or "signals". Signal receivers

jason kirtland 1.4k Dec 31, 2022
Download and process GOES-16 and GOES-17 data from NOAA's archive on AWS using Python.

Download and display GOES-East and GOES-West data GOES-East and GOES-West satellite data are made available on Amazon Web Services through NOAA's Big

Brian Blaylock 88 Dec 16, 2022
Repository to store sample python programs for python learning

py Repository to store sample Python programs. This repository is meant for beginners to assist them in their learning of Python. The repository cover

codebasics 5.8k Dec 30, 2022
Med to csv - A simple way to parse MedAssociate output file in tidy data

MedAssociates to CSV file A simple way to parse MedAssociate output file in tidy

Jean-Emmanuel Longueville 5 Sep 09, 2022
List Less Than Ten with python

List Less Than Ten with python

PyLaboratory 0 Feb 07, 2022
Attempt at creating organized collection of little handy snippets of code I'm receiving along the way

ChaosCode Attempt at creating organized collection of little handy snippets of code I'm receiving along the way I always considered coding and program

INFU 4 Nov 26, 2022
An open-source hyper-heuristic framework for multi-objective optimization

MOEA-HH An open-source hyper-heuristic framework for multi-objective optimization. Introduction The multi-objective optimization technique is widely u

Hengzhe Zhang 1 Feb 10, 2022
Files for QMC Workshop 2021

QMC Workshop 2021 This repository contains the presented slides and example files for the Quantum Monte Carlo (QMC) Workshop 5 October - 23 November,

QMCPACK 39 Nov 04, 2022
Automatically re-open threads when they get archived, no matter your boost level!

ThreadPersist Automatically re-open threads when they get archived, no matter your boost level! Installation You will need to install poetry to run th

7 Sep 18, 2022
rTorrent Crash Prevention

rTorrent Disk Checker This program is capable of the following when: - a torrent is added by any program (autodl-irssi, RSS Downloader et

16 Dec 14, 2022
NASH 2021 project... this may or may not end up working 🤷‍♂️

wavespace synthesiser this is my NASH 2021 project, which may or may not end up working 🤷‍♂️ what is going on? imagine you have a big folder of audio

Ben Hayes 12 May 17, 2022
This Open-Source project is great for sensor capture and storage solutions.

Phase 1 This project helps developers in the creation of extended realities that communicate with Arduino and require the security of blockchain stora

Wolfberry, LLC 10 Dec 28, 2022
A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme tool

Oppo/Realme Flash .OFP File on Bootloader A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme to

Italo Almeida 70 Jan 02, 2023
Projeto de análise de dados com SQL

Project-Analizyng-International-Debt-Statistics- Projeto de análise de dados com SQL - Plataforma Data Camp Descrição do Projeto : Não é que nós human

Lorrayne Silva 1 Feb 01, 2022
《practical python programming》的中文翻译

欢迎光临 大约 25 年前,当我第一次学习 Python 时,发现 Python 竟然可以被高效地应用到各种混乱的工作项目上,我立即被震惊了。15 年前,我自己也将这种乐趣教授给别人。教学的结果就是本课程——一门实用的学习 Python的课程。

编程人 125 Dec 17, 2022
How did Covid affect businesses?

NYC_Business_Analysis How did Covid affect businesses? COVID's effect on NYC businesses We all know that businesses in NYC have been affected by COVID

AK 1 Jan 15, 2022