A command-line interface (CLI) tool for randomly selecting students from a class list with persistent tracking and undo functionality. Built using Python with curses for the terminal user interface.
- Random student selection
- Persistent tracking between sessions
- Pick order history
- One-step undo/restore
- Visual terminal interface
- Session duration tracking
- Real-time statistics
- Clone the repository:
git clone https://github.com/sk7-dev/Random_Student_Picker.git
cd Random_Student_Picker- Install required packages:
pip install pandas curses-menu-
Create your students CSV file (see File Format)
-
Run the program:
python picker.py- Prepare your student list in CSV format
- Run the program
- Use keyboard controls to:
- Pick random students
- Undo mistakes
- Reset when needed
- All selections are automatically saved
Create a CSV file named students.csv with this structure:
Name
John Doe
Jane SmithName: Student name (required)LastPicked: Timestamp of selection (program managed)PickOrder: Selection order number (program managed)
| Key | Action |
|---|---|
ENTER |
Pick random student |
Z |
Undo last action |
R |
Reset all picks |
Q |
Quit program |
- Total student count
- Picked students count
- Remaining students
- Last 5 selections with timestamps
-
History Tracking
- Maintains last 5 picks
- Stores timestamps
- Tracks pick order
-
Undo Functionality
- One-step restore
- Covers picks and resets
- Complete state restoration
-
Session Management
- Duration tracking
- Cross-session persistence
- Pick order preservation
- Missing file detection
- Automatic column creation
- Empty data management
- Duplicate pick prevention
- Multiple undo steps
- Custom CSV file selection
- Export session statistics
- Multiple class list support
- Customizable display colors
This project is licensed under the MIT License - see the LICENSE file for details.