-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplan.txt
More file actions
121 lines (104 loc) · 4.61 KB
/
plan.txt
File metadata and controls
121 lines (104 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Exam Scheduling Generator Application Plan
## Overview
Create a comprehensive GUI application for teachers to generate and manage exam schedules. The application will build upon the existing constraint programming approach but add more features and a user-friendly interface.
## Core Features
1. Course/Subject Management
- [✓] Add/edit/delete subjects with details (course code, name, type, semester, etc.)
- [✓] Assign subjects to semesters
- [✓] Import/export subject lists
2. Exam Schedule Generation
- [✓] Generate optimized exam schedules using constraint programming
- [✓] Configure exam parameters (start date, exam types, gap between exams)
- [✓] Room allocation for exams
- [✓] Handle different exam types (theory, practical, internal, external)
- [✓] Skip scheduling exams on Sundays
3. Schedule Visualization
- [✓] Calendar view of the generated schedule
- [✓] List view with filtering options
- [✓] Visual indicators for potential conflicts
- [✓] Edit existing schedule items
- [✓] Add new items to existing schedules
4. Export Options
- [✓] Export to PDF
- [✓] Export to CSV format
- [✓] Print functionality (via PDF)
## Technical Implementation
### Phase 1: Basic Setup and UI Framework
- [✓] Set up the project structure
- [✓] Create the main application window using tkinter
- [✓] Implement navigation between different sections
- [✓] Design the basic UI components
### Phase 2: Subject Management Module
- [✓] Create database schema for subjects
- [✓] Implement UI for adding/editing subjects
- [✓] Add functionality to assign subjects to semesters
- [✓] Implement import/export functionality
### Phase 3: Schedule Generation Algorithm
- [✓] Port the constraint programming algorithm from the notebook
- [✓] Enhance the algorithm with additional constraints and options
- [✓] Implement progress tracking during generation
- [✓] Add error handling and suggestions for constraint resolution
### Phase 4: Database Implementation
- [✓] Migrate from SQLite to MySQL database
- [✓] Create proper database connection handling
- [✓] Implement error handling for database operations
- [✓] Create configuration file for database credentials
### Phase 5: Schedule Visualization and Editing
- [✓] Implement calendar view for the schedule
- [✓] Create detailed list view with sorting/filtering
- [✓] Add conflict detection and visualization
- [✓] Implement schedule editing capabilities
- [✓] Add functionality to manually add new exam items to schedules
### Phase 6: Export and Reporting
- [✓] Implement PDF export with customizable templates
- [✓] Add CSV export functionality
- [✓] Create print-friendly views
- [✓] Add schedule sharing options
### Phase 7: Final Touches
- [✓] Add user preferences and settings
- [✓] Implement data backup and restore
- [✓] Add help documentation
- [✓] Polish UI and improve user experience
## Technologies
- Python 3.x
- tkinter for GUI
- OR-Tools for constraint programming
- MySQL for local database
- Pandas for data manipulation
- ReportLab for PDF generation
- Matplotlib for visualizations
## Timeline
- Phase 1: 1 day ✓
- Phase 2: 1-2 days ✓
- Phase 3: 2-3 days ✓
- Phase 4: 1-2 days ✓
- Phase 5: 1 day ✓
- Phase 6: 1 day ✓
- Phase 7: 1 day ✓
Total estimated time: 7-10 days for complete implementation ✓
## Completed Features
- [✓] MySQL database integration with configuration file
- [✓] Skip Sunday scheduling feature
- [✓] Edit functionality for schedule items
- [✓] Add functionality for manually adding exam items to schedules
- [✓] Export to CSV and PDF
- [✓] Context menu for deleting schedule items
- [✓] Zoom functionality in View menu (zoom in, zoom out, reset zoom)
- [✓] Font selection in Edit menu
- [✓] Status bar toggle in View menu
- [✓] Tools menu with quick access to common applications (Notepad, Calculator, etc.)
- [✓] Keyboard shortcuts for all menu items
- [✓] Enhanced About dialog with logo
- [✓] Refresh functionality to reload data
- [✓] Export options for rooms and subjects
- [✓] Room IDs included in PDF exports
- [✓] Proper navigation between tabs
- [✓] Version updated to 2.0.0
- [✓] Comprehensive Help documentation with tabbed interface
- [✓] Form reset functionality for new schedules
- [✓] Calendar and list views for schedules
- [✓] Theme customization with 12 different visual themes
- [✓] Preferences dialog for database and application settings
- [✓] Fixed navigation when opening existing schedules
- [✓] Proper storage and retrieval of schedule items from database
- [✓] Screenshots added to documentation