Skip to content

Repository files navigation

TA Application

A desktop app for teaching assistants to manage class rosters, track and grade assignments, and export results. Built with Python and Tkinter, backed by SQLite.

✨ Features

  • Course & roster management: Create multiple courses and import student rosters from text files.
  • Grading: Add, update, and remove scores, with optional comments and automatic grade calculation.
  • Results: Search and sort tables, visualize score distributions, and export results to CSV or Excel.
  • Course finalization: Combine assessment tables into a single grade sheet.
  • Customization: Switch between multiple color themes.

🖼️ Screenshots

Main window

Browse tables, search students, manage scores, and export or finalize a course.

Course setup


Enter a course name.

Select a roster file to import students.

Settings / themes

Change the active course and switch color themes.

Escape menu

Press Esc to quickly access Settings or exit the application.

Score histogram

Visualize the score distribution for the selected table.

Finalize course

Combine all assessment tables into a single grade sheet. Names are blacked out for privacy.

🚀 Getting Started

Requirements

Python 3.9+ is required. Python dependencies are listed in requirements.txt.

Installation

git clone https://github.com/AmirmasoudCS/TA-application.git
cd TA-application
pip install -r requirements.txt

Running

python main.py

On first launch, enter a course name and select a roster file to import students.

Roster files

Roster files are stored in data/rosters/ as plain .txt files, with one student per line:

Firstname Lastname StudentID

📁 Project Structure

📁
├── 📁 assets
│   └── 📁 screenshots
├── 📁 data
│   └── 📁 rosters
├── 📁 db
│   ├── 🐍 __init__.py
│   ├── 🐍 assessment_repository.py
│   ├── 🐍 connection.py
│   ├── 🐍 course_repository.py
│   ├── 🐍 database.py
│   ├── 🐍 models.py
│   └── 🐍 student_repository.py
├── 📁 logs
├── 📁 services
│   ├── 🐍 __init__.py
│   ├── 🐍 export_service.py
│   ├── 🐍 roster_import_service.py
│   └── 🐍 stats_service.py
├── 📁 settings
│   └── 📝 theme_config.txt
├── 📁 ui
│   ├── 📁 widgets
│   │   ├── 🐍 __init__.py
│   │   ├── 🐍 popup.py
│   │   └── 🐍 table_view.py
│   ├── 📁 windows
│   │   ├── 🐍 __init__.py
│   │   ├── 🐍 comment_window.py
│   │   ├── 🐍 course_setup_window.py
│   │   ├── 🐍 histogram_window.py
│   │   ├── 🐍 settings_window.py
│   │   └── 🐍 update_window.py
│   ├── 🐍 __init__.py
│   ├── 🐍 main_window.py
│   └── 🐍 theme.py
├── 🐍 config.py
├── ⚖️ LICENSE
├── 🐍 logging_setup.py
├── 🐍 main.py
├── 📘 README.md
└── 📝 requirements.txt

Generated using Tree Printer.

🛠️ Tech Stack

Technology Purpose
Python / Tkinter Desktop UI
SQLite Data persistence
openpyxl Excel export
matplotlib Score histograms

⚖️ License

See LICENSE.

About

Desktop app for teaching assistants to manage course rosters, track and grade assignments, and export results

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages