A Windows Forms municipal services application developed in C# to enable South African citizens to report municipal issues through a structured, user-friendly interface with validation, file attachments, progress feedback, and submission confirmation.
# Municipal Services Application — Part 1
## Module
Advanced Programming Application Development
Programming 3B Prog7312
## Part 1
Municipal Services Application for South Africa — Report Issues
## Technology
- C#
- .NET Framework 4.8
- Windows Forms
- Visual Studio 2022 recommended
## Requirements implemented
### Main Menu
The application starts with three options:
1. Report Issues — enabled and implemented.
2. Local Events and Announcements — disabled for Part 1.
3. Service Request Status — disabled for Part 1.
### Report Issues
The Report Issues Windows Form provides:
- Location input using a TextBox.
- Category selection using a ComboBox.
- Detailed description using a RichTextBox.
- Image/document attachment using OpenFileDialog.
- Submit button.
- Dynamic engagement messages.
- Dynamic ProgressBar showing completion.
- Back to Main Menu navigation.
- Validation and user feedback through MessageBox.
- Reported issues stored in a List data structure.
## How to open and compile
1. Open Windows and start Visual Studio 2022.
2. Open `MunicipalServices.sln`.
3. Allow Visual Studio to load the solution.
4. Select `Build > Build Solution`.
5. Confirm that the solution builds without errors.
6. Press `F5` or select `Debug > Start Debugging`.
## How to use
1. The Main Menu appears when the program starts.
2. Select `REPORT ISSUES`.
3. Enter the issue location.
4. Select a category.
5. Enter a detailed description.
6. Select `Attach Image / Document` if supporting media is available.
7. Watch the report completion ProgressBar update as information is entered.
8. When the required information is complete, select `Submit Report`.
9. A confirmation message displays the generated report reference.
10. Select `Back to Main Menu` to return to the startup screen.
## Data handling
Reported issues are stored during the application session in:
`AppData.ReportedIssues`
This is a `List ` and satisfies the Part 1 requirement for an appropriate data structure to organis …