{"id":15091082,"url":"https://github.com/lukewait/classroom-manager-app","last_synced_at":"2026-01-04T18:04:51.464Z","repository":{"id":250516811,"uuid":"833458140","full_name":"LukeWait/classroom-manager-app","owner":"LukeWait","description":"A Windows Forms application for managing data with a focus on dataGridView manipulation, providing interactive editing of classroom data stored in CSV files. Developed as part of a TAFE QLD assignment.","archived":false,"fork":false,"pushed_at":"2024-07-28T07:18:01.000Z","size":3848,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T10:46:16.656Z","etag":null,"topics":["csharp","csv","data-management","datagridview","gui","windows-forms"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LukeWait.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T05:18:31.000Z","updated_at":"2024-07-28T07:18:04.000Z","dependencies_parsed_at":"2024-07-28T04:32:09.864Z","dependency_job_id":"6f710608-39b4-4fc3-b451-42389240e5e0","html_url":"https://github.com/LukeWait/classroom-manager-app","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"555bfad32c77c25a22503df4231a0f0f6a7efc7e"},"previous_names":["lukewait/classroom-manager-app"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fclassroom-manager-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fclassroom-manager-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fclassroom-manager-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fclassroom-manager-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LukeWait","download_url":"https://codeload.github.com/LukeWait/classroom-manager-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244945595,"owners_count":20536295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","csv","data-management","datagridview","gui","windows-forms"],"created_at":"2024-09-25T10:35:28.664Z","updated_at":"2026-01-04T18:04:51.411Z","avatar_url":"https://github.com/LukeWait.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Classroom Manager App\n## Description\nA Windows Forms application for managing classroom data with a focus on dataGridView manipulation.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/LukeWait/classroom-manager-app/raw/main/ClassroomManager/images/classroom-manager-app-screenshot.png\" alt=\"App Screenshot\" width=\"600\"\u003e\n\u003c/p\u003e\n\n## Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n- [Development](#development)\n- [License](#license)\n- [Acknowledgments](#acknowledgments)\n- [Source Code](#source-code)\n- [Dependencies](#dependencies)\n\n## Installation\nThis app is designed for Windows only. It leverages the .NET 5 framework, which ensures modern, efficient, and secure runtime behavior. Requirements include:\n- **Executable:** The .NET 5 runtime must be installed on the user's system.\n- **From Source:** Development tools including the .NET 5 SDK and Visual Studio 2019 (v16.8+) or later versions are necessary.\n\n### Executable\n1. Download the latest release from the [releases page](https://github.com/LukeWait/classroom-manager-app/releases).\n2. Extract the contents to a desired location.\n3. Navigate to the `bin` directory.\n4. Run the `ClassroomManager.exe` file.\n\n### From Source\nTo install and run the application from source:\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/LukeWait/classroom-manager-app.git\n    cd classroom-manager-app\n    ```\n2. Open the solution file `ClassroomManagerApp.sln` in Visual Studio.\n3. Restore NuGet packages if prompted.\n4. Build or run the solution using Visual Studio.\n\n## Usage\n1. Launch the application by running the `ClassroomManager.exe` or from source.\n2. Open a valid CSV using the `File` menu (refer to the example CSV file `classroom_data_template.csv` for the expected format when loading data into the dataGridView.)\n3. Use the GUI to manipulate the CSV file using the dataGridView interface.\n\n### Application Functions\n- **Load Data**: Load classroom data from CSV files into a dataGridView.\n- **Edit Data**: Use the dataGridView interface to add, edit, or delete data.\n  - Update Teacher, Class, Room, and Date fields.\n  - Add/remove students manually.\n  - Clear all student names.\n  - Sort alphabetically and display a list of student names.\n  - Find and highlight a student using an input field.\n- **Save Data**: Save the modified data back to CSV files.\n  - Save changes/save as a new file.\n  - Export as a binary file using random access file (RAF) techniques.\n\n## Development\nThis project was developed using Visual Studio and utilizes Windows Forms. For the best experience with Windows Forms projects that involve extensive use of the Form Designer, it is recommended to use Visual Studio as it will be the most reliable and feature-complete IDE option.\nIf you are exploring alternatives and willing to handle some design tasks manually or switch between IDEs, JetBrains Rider on Windows could be a viable option, but it might not offer the same level of designer support as Visual Studio.\n\n### Project Structure\n```sh\nclassroom-manager-app/\n├── ClassroomManager/\n│   ├── images/                             # GUI design elements\n│   ├── Properties/                         # Project properties\n│   ├── Cell.cs                             # Class representing a classroom/dataGridView cell \n│   ├── ClassroomManager.csproj             # Project file\n│   ├── ClassroomManager.xml                # XML documentation for classes and methods\n│   ├── Form1.cs                            # Main form code\n│   ├── Form1.Designer.cs                   # Main form designer code\n│   ├── Form1.resx                          # Main form resources\n│   └── Program.cs                          # Main program entry point\n├── classroom_data_template.csv             # Example CSV file used to load into dataGridView\n└── ClassroomManagerApp.sln                    # Visual Studio Solution file\n```\n\n### Data Storage\nThe application manages data by accessing a properly formatted CSV file, such as `classroom_data_template.csv`. The first four rows must contain the headings and relevant data for Teacher, Class, Room, and Date. Subsequent rows represent individual cells in the dataGridView, with columns structured as follows:\n\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth style=\"border-right:1px solid black\"\u003eColumn 1\u003c/th\u003e\n    \u003cth style=\"border-right:1px solid black\"\u003eColumn 2\u003c/th\u003e\n    \u003cth style=\"border-right:1px solid black\"\u003eColumn 3\u003c/th\u003e\n    \u003cth\u003eColumn 4\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eTeacher:\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e[Relevant Teacher Name]\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eClass:\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e[Relevant Class Name]\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eRoom:\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e[Relevant Room Number]\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eDate:\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e[Relevant Date]\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eColumn coordinate of the cell\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eRow coordinate of the cell\u003c/td\u003e\n    \u003ctd style=\"border-right:1px solid black\"\u003eCell content (e.g., student name\u003cbr\u003e or `BKGRND FILL` for a\u003cbr\u003e background-filled cell)\u003c/td\u003e\n    \u003ctd\u003eCell color (applicable only if\u003cbr\u003e `BKGRND FILL` is specified\u003cbr\u003e in column 3)\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Creating New Releases\n- **Build the Application**: Use Visual Studio to compile and package the application into an executable (.exe) file. Ensure that all dependencies and necessary files are included in the build process.\n  - Open the solution file (`ClassroomManagerApp.sln`) in Visual Studio.\n  - Restore any NuGet packages if prompted.\n  - Build the solution by selecting `Build` \u003e `Build Solution` from the menu.\n  - Locate the compiled `.exe` file in the `bin/Release` or `bin/Debug` directory, depending on your build configuration.\n\n- **Include CSV File**: Ensure that the `classroom_data_template.csv` file is included with the release. This file serves as a template for users to format their classroom data correctly.\n\n\n## License\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n## Acknowledgments\nThis project was developed as part of an assignment at TAFE Queensland for subject ICTPRG443.\n\nProject requirements and initial GUI design/codebase provided by Hans Telford.\n\n## Source Code\nThe source code for this project can be found in the GitHub repository: [https://github.com/LukeWait/classroom-manager-app](https://www.github.com/LukeWait/classroom-manager-app).\n\n## Dependencies\n- Windows 10 or later\n- [.NET 5.0](https://dotnet.microsoft.com/download/dotnet/5.0)\n- [Visual Studio 2019 (v16.8+)](https://visualstudio.microsoft.com/vs/) or [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukewait%2Fclassroom-manager-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukewait%2Fclassroom-manager-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukewait%2Fclassroom-manager-app/lists"}