Skip to content

adityasahu1109/CMS-tkinter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMS-tkinter Project Analysis

The CMS-tkinter project is a Course Management System built using Python's tkinter library for the graphical user interface and JSON for data persistence. Here's a comprehensive breakdown of how it works:

Core Functionalities

Student Management

The system provides complete student lifecycle management with the following core functions:

  • Add Student: Creates new student records with ID, name, and semester information
  • Delete Student: Removes student records from the system
  • View Students: Displays all registered students with their basic information

Course Registration System

The system implements a sophisticated course management system with business rules:

  • Course Registration: Allows students to register for courses with type validation (DC/DE)
  • Course Limits: Enforces business rules limiting students to maximum 4 DC courses and 2 DE courses
  • Course Dropping: Enables students to drop registered courses
  • Course Viewing: Displays all courses a specific student is registered for

Data Validation

The system includes comprehensive validation mechanisms:

  • Duplicate student ID prevention
  • Course type validation ensuring only "DC" or "DE" types are accepted
  • Duplicate course registration prevention

User Interface Components

Layout Structure

The GUI uses a grid-based layout with organized sections:

  • LabelFrame containers for grouping related functionality
  • Fixed window size to maintain consistent layout

Interactive Sections

The interface is organized into six main functional areas:

  1. Add Student Section: Input fields for student ID, name, and semester
  2. Register Course Section: Fields for student ID, course ID, and course type
  3. Drop Course Section: Interface for removing course registrations
  4. Delete Student Section: Simple interface for student removal
  5. View Students Section: Button to display all students
  6. View Courses Section: Interface to view courses for a specific student

User Feedback System

The application uses messagebox dialogs to provide immediate feedback for all user actions

Data Persistence Mechanisms

Storage Architecture

The system uses a dual-layer data architecture:

  • Runtime Storage: Global dictionary (students) for in-memory operations
  • Persistent Storage: JSON file (students.json) for permanent data storage

Data Operations

  • Load Operation: Reads existing data from JSON file at application startup
  • Save Operation: Writes current state to JSON file after every data modification
  • Automatic Persistence: Every CRUD operation automatically triggers data saving

Data Structure

The JSON storage follows a hierarchical structure where each student record contains:

  • Basic information (ID, name, semester)
  • Nested courses object mapping course IDs to course types

Application Lifecycle

The main application flow follows this pattern:

  1. Data Loading: Application starts by loading existing data
  2. GUI Creation: Main window with all interface components is created
  3. Event Loop: Tkinter mainloop handles user interactions

Notes

The CMS-tkinter project is a well-structured educational management application that demonstrates good separation of concerns between data management, business logic, and user interface. The system enforces academic constraints (course limits) while providing a user-friendly interface for managing student-course relationships. The JSON-based persistence ensures data survives application restarts, making it suitable for real-world educational institution use cases at a small to medium scale.

About

A Course Management System based on python using tkinter module as part of College Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages