Developed by Group 6:
Syifa Maulidina (2304140046)
Hammam Jitapsara (2304140050)
Aisyah Qurrota A'yun (2304140057)
Saskia Khaerani (2304140061)
Arif Satria Tama (2304140063)
Supervised by:
Subhan, S.Pd., M.Pd., M.Kom.
π GitHub Repository: Group Divider
#Introduction
Creating student groups manually can be time-consuming and, at times, unfair. In our software engineering project, we built Group Divider, a modern desktop application built with PyQt5 to simplify and enhance the fairness of group formation. This tool not only shuffles students randomly but also supports exporting combinations and viewing previously saved results.
#Key Features
β Add & Manage Students: Input student names easily via a form interface.
π Randomize Combinations: Shuffle and generate group combinations based on user input.
π’ Custom Group Size & Quantity: Define how many groups and how many combinations to generate.
πΎ Save & Load CSV: All combinations and student lists are saved in CSV format for reuse.
π View Past Results: Review any combination in a clean, readable format.
#How It Works
The app is divided into three main tabs:
#1. π₯ Student Management
Users can add students one by one, remove selected names, or load/save lists to a .csv file. The interface uses a custom-styled list box and entry field for a pleasant user experience.
#2. β¨ Group Creation
After entering the number of groups and desired number of combinations, the app calculates and generates possible groupings. It uses Pythonβs random.shuffle() and slicing to ensure fair and balanced distribution.
shuffled_students = #3. π View Groups
Previously saved groupings are loaded and displayed using PyQtβs QTextEdit, allowing users to easily browse and select any saved combination.
#Design and Tech Stack
Language: Python 3
GUI Framework: PyQt5
Persistence: CSV file handling
UI Customization: Styled with in-app CSS for buttons, text fields, and layouts
We adopted a modular OOP structure in the code. Core logic is encapsulated in methods such as generate_combinations(), calculate_combinations(), and view_groups(), enhancing code readability and maintenance.
#Why This Tool Matters
This tool is particularly useful for educators or team leaders who frequently need to divide groups fairly and efficiently. Rather than relying on manual selection or basic spreadsheets, Group Divider offers:
Speed
Fair randomization
Storage and reusability of results
By visualizing group structures clearly, it encourages transparency and reduces bias in group assignments.
#Try It Yourself!
This project is open-source and available on GitHub:
π GitHub: https://github.com/hammamjeunnes/group-divider
Feel free to fork, modify, or use it in your own classrooms or collaboration settings.
Thank you for reading! We hope this tool helps streamline group organization in your learning environment.
Jitapsara