Usage Guide

Getting Started

GradeForge is a command-line interface (CLI) application for managing student records, grades, and academic performance. This guide will walk you through the basic usage of the tool.

Installation

# Clone the repository
git clone https://github.com/username/gradeforge.git

# Navigate to the project directory
cd gradeforge

# Run the application
python gradeforge.py

User Interface (CLI)

The command-line interface is managed by the run(self) method within the GradeForge class (gradeforge.py). It presents a text-based menu to the user.

Main Menu Options

========================================
Main Menu:
1. Add New Student
2. Assign Subject to Student
3. Input Grades for Subject
4. View Student Performance Summary
5. Generate Full Student Report
6. List All Students
7. List Available Subjects (Templates)
8. Export All Data to CSV
9. Save Data
10. Delete Student
0. Exit
========================================
Enter your choice:

Basic Workflow

  1. Add a Student

    Select option 1 from the main menu. You'll be prompted to enter the student's name, ID, and type (High School, College, or Generic). For College students, you'll also need to specify a major.

  2. Assign Subjects

    Select option 2 to assign a subject to a student. You'll need to provide the student ID and select from available subject templates or create a new one.

  3. Input Grades

    Select option 3 to input grades for a specific subject. You'll need to provide the student ID, subject code, and then enter grade details (description and score/letter grade).

  4. View Performance

    Select option 4 to view a summary of a student's performance, including subject averages, overall average/GPA, and academic status.

  5. Generate Reports

    Select option 5 to generate a detailed report for a specific student, including all enrolled subjects, grades, and performance metrics.

  6. Save Data

    Select option 9 to save all data to the gradeforge_data.json file. Data is also automatically saved when exiting the application (option 0).

Always save your data before exiting the application to prevent data loss. While the application attempts to save data automatically on exit, it's a good practice to save manually using option 9.

Example Workflow

Here's an example of a typical workflow:

  1. Start gradeforge.py. Data is loaded if gradeforge_data.json exists.
  2. Select "1. Add New Student"
    • Enter name "John Doe", ID "JD001", type "2" (College), major "History".
    • System confirms: "Student John Doe (JD001) added successfully as CollegeStudent."
  3. Select "7. List Available Subjects". (Assume HIST101 exists as a template).
  4. Select "2. Assign Subject to Student"
    • Enter student ID "JD001".
    • Enter subject code "HIST101".
    • Enter credit hours "3" for this student's enrollment.
    • System confirms assignment.
  5. Select "3. Input Grades for Subject"
    • Enter student ID "JD001", subject code "HIST101".
    • Enter description "Essay 1", letter grade "A".
    • System confirms grade added.
    • Enter description "Final Exam", letter grade "B+".
    • System confirms grade added. Enter "done".
  6. Select "4. View Student Performance Summary"
    • Enter student ID "JD001".
    • System displays GPA and academic status for John Doe.
  7. Select "9. Save Data". System confirms data saved to gradeforge_data.json.
  8. Select "0. Exit". System saves data again and exits.