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
Software that extracts spreadsheets from various .pdf files to .csv

Extração de planilhas de diversos arquivos .pdf para .csv O código inteiro foi desenvolvido em Python. Foi utilizado o pacote "tabula" e a biblioteca

Marcos Silva 2 Jan 09, 2022
Open source style Deep Dream project

DeepDream ⚠️ If you don't have a gpu with cuda, the style transfer execution time will be much longer Prerequisites Python =3.8.10 How to Install sud

Patrick martins de lima 7 May 17, 2022
Pre-1.0 door/chest sound injector for Minecraft

doorjector Pre-1.0 door/chest sound injector for Minecraft. While the game is running, doorjector hotswaps the new sounds for the old right before the

Sam 1 Nov 20, 2021
Python Create Your Own Tool Series

Python Create Your Own Tool Series Hey there! This is an additional Github repository that contains the final product files for each video in my Youtu

Joe Helle 21 Dec 02, 2022
An example module hooking system, will be used in PySAMP.

An example module hooking system, will be used in PySAMP.

2 May 01, 2022
Excel cell checker with python

excel-cell-checker Description This tool checks a given .xlsx file has the struc

Paul Aumann 1 Jan 04, 2022
Data on COVID-19 (coronavirus) cases, deaths, hospitalizations, tests • All countries • Updated daily by Our World in Data

COVID-19 Dataset by Our World in Data Find our data on COVID-19 and its documentation in public/data. Documentation Data: complete COVID-19 dataset Da

Our World in Data 5.5k Jan 03, 2023
Batch obfuscator based on the obfuscation method used by the trick bot launcher

Batch obfuscator based on the obfuscation method used by the trick bot launcher

SlizBinksman 2 Mar 19, 2022
Ant Colony Optimization for Traveling Salesman Problem

tsp-aco Ant Colony Optimization for Traveling Salesman Problem Dependencies Python 3.8 tqdm numpy matplotlib To run the solver run main.py from the p

Baha Eren YALDIZ 4 Feb 03, 2022
Multiple GNOME terminals in one window

Terminator by Chris Jones [email protected] and others. Description Terminator was

GNOME Terminator 1.5k Jan 01, 2023
Basic code and description for GoBigger challenge 2021.

GoBigger Challenge 2021 en / 中文 Challenge Description 2021.11.13 We are holding a competition —— Go-Bigger: Multi-Agent Decision Intelligence Challeng

OpenDILab 183 Dec 29, 2022
Null safe support for Python

Null Safe Python Null safe support for Python. Installation pip install nullsafe Quick Start Dummy Class class Dummy: pass Normal Python code: o =

Paaksing 13 Nov 17, 2022
Gaia: a chrome extension that curates environmental news of a company

Gaia - Gaia: Your Environment News Curator Call for Code 2021 Gaia: a chrome extension that curates environmental news of a company Explore the docs »

4 Mar 19, 2022
My solutions to Advent of Code 2021 (written in Python)

Advent of Code 2021 This repository contains my solutions for the 2021 edition of Advent of Code. Please do not expect perfectly polished solutions, m

Nils 2 May 29, 2022
A tool to quickly create codeforces contest directories with templates.

Codeforces Template Tool I created this tool to help me quickly set up codeforces contests/singular problems with templates. Tested for windows, shoul

1 Jun 02, 2022
Ingest openldap data into bloodhound

Bloodhound for Linux Ingest a dumped OpenLDAP ldif into neo4j to be visualized in Bloodhound. Usage: ./ldif_to_neo4j.py ./sample.ldif | cypher-shell -

Guillaume Quéré 71 Nov 09, 2022
Ultimate Score Server for RealistikOsu

USSR Ultimate Score Server for RealistikOsu (well not just us but it makes the acronym work.) Also I wonder how long this name will last. What is this

RealistikOsu! 15 Dec 14, 2022
Movie recommend community

README 0. 초록 1) 목적 사용자의 Needs를 기반으로 영화를 추천해주는 커뮤니티 서비스 구현 2) p!ck 서비스란? "pick your taste!" 취향대로 영화 플레이리스트(이하 서비스 내에서의 명칭인 '바스켓'이라 함)를 만들고, 비슷한 취향을 가진

2 Dec 08, 2021
Tools for downloading and processing numerical weather predictions

NWP Tools for downloading and processing numerical weather predictions At the moment, this code is focused on downloading historical UKV NWPs produced

Open Climate Fix 6 Nov 24, 2022
A simple PID tuner and simulator.

PIDtuner-V0.1 PlantPy PID tuner version 0.1 Features Supports first order and ramp process models. Supports Proportional action on PV or error or a sp

3 Jun 23, 2022