GroupDivider Screens

Group Divider: A Smart Tool to Randomly and Fairly Form Student Teams

Using Discrete Math in Python

5.0
Hammam Jitapsara
Hammam Jitapsara 09 Jun 2025

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.

Rate this post

(Login to rate)

Leave a reply