A C# Windows Forms application for managing customer appointments with multi-language support, time zone handling, and comprehensive reporting capabilities.
This application was developed as part of the WGU C969 - Software II course. It demonstrates advanced C# programming concepts including database integration, localization, lambda expressions, and exception handling.
- Customer Management: Full CRUD operations for customer records with validation
- Appointment Scheduling: Create, modify, and delete appointments with business rule enforcement
- Multi-Language Support: Login interface available in English and Spanish
- Time Zone Handling: Automatic adjustment between user local time and Eastern Standard Time
- Calendar View: Interactive calendar for viewing appointments by date
- Reporting: Generate three types of reports using lambda expressions
- 15-Minute Alert: Notification system for upcoming appointments
- Appointments must be scheduled during business hours: 9:00 AM – 5:00 PM EST, Monday-Friday
- Prevents scheduling of overlapping appointments
- Validates all customer and appointment data before saving
- Framework: .NET Framework 4.7.2
- Language: C#
- Database: MySQL 8.0+
- IDE: Visual Studio 2022
- Libraries:
- MySql.Data (9.5.0)
- Windows Forms
- Windows Operating System
- Visual Studio 2022 (Community, Professional, or Enterprise)
- MySQL Server 8.0 or higher
- .NET Framework 4.7.2
-
Clone the repository
git clone https://github.com/yourusername/scheduler-app.git cd scheduler-app -
Set up the database
- Open MySQL Workbench
- Create a new database named
client_schedule - Run the SQL script:
Database/C969_DB_Setup.sql - (Optional) Run
Database/C969_Test_Data.sqlfor sample data
-
Configure the connection string
- Open
App.config - Update the connection string with your MySQL credentials:
<connectionStrings> <add name="client_schedule" connectionString="Server=localhost;Port=3306;Database=client_schedule;Uid=YOUR_USER;Pwd=YOUR_PASSWORD;" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
- Open
-
Build and run
- Open the solution in Visual Studio 2022
- Restore NuGet packages
- Build the solution (F6)
- Run the application (F5)
- Username:
test - Password:
test
The application includes three lambda-based reports:
- Appointment Types by Month: Shows count of each appointment type grouped by month
- User Schedules: Displays all appointments organized by user
- Appointments by Customer: Summary of total, upcoming, and past appointments per customer
The login form supports English and Spanish. The application automatically detects the system locale and displays the appropriate language. To test Spanish:
- Change Windows display language to Spanish, OR
- Modify
LoginForm.csline 25 to force Spanish:ApplyLocalization(new CultureInfo("es"));
All login attempts are recorded in Login_History.txt with the following format:
2026-02-15 14:23:45 test Success
2026-02-15 14:25:12 admin Failed