SharpScheduler is a WPF desktop application for managing learning tasks and schedules. Built with modern C# and .NET, it helps students and developers organize their weekly learning goals with an intuitive interface for task management, progress tracking, and intelligent suggestions.
- π Weekly Schedule: Calendar view with day-by-day task organization
- π Task Management: Create, edit, delete, and track learning tasks with difficulty levels
- π Progress Tracking: Real-time completion statistics and visual progress indicators
- π§ Smart Suggestions: AI-powered learning topic recommendations with category filtering
- π€ User Profiles: Personal learning goals and progress tracking
- πΎ Data Persistence: JSON-based file management with sample datasets
- π Task-Suggestion Flow: Convert tasks to suggestions and suggestions back to scheduled tasks
- π Analytics: Detailed insights into learning patterns and progress
- Framework: .NET 9.0
- UI: Windows Presentation Foundation (WPF)
- Architecture: MVVM (Model-View-ViewModel)
- Language: C# 12
- Data: JSON serialization with System.Text.Json
- Binding: ObservableCollection with INotifyPropertyChanged
SharpScheduler/
βββ Models/ # Data models and entities
β βββ LearningTask.cs # Task record with scheduling interface
β βββ Suggestion.cs # Learning topic suggestions
β βββ User.cs # User profile and goals
β βββ ApplicationData.cs # Data container for persistence
βββ Services/ # Business logic and data services
β βββ DataService.cs # File operations and data persistence
β βββ SuggestionService.cs # Suggestion management and analytics
βββ Views/ # UI windows and dialogs
β βββ TaskDetailsWindow.xaml # Task editing dialog
β βββ SuggestionDetailsWindow.xaml # Suggestion management
β βββ AnalyticsWindow.xaml # Progress analytics
βββ Converters/ # XAML data converters
β βββ CompletionToBrushConverter.cs
β βββ NullToBoolConverter.cs
βββ MainWindow.xaml # Main application interface
βββ App.xaml # Application resources and styling- .NET 9.0 SDK or later
- Visual Studio 2022 or VS Code with C# extension
- Windows 10/11 (WPF requirement)
-
Clone or download the repository
-
Navigate to the project directory:
cd SharpScheduler -
Build the project:
dotnet build
-
Run the application:
dotnet run
- Launch the application
- Go to File β Open and select
sample.jsonfor pre-loaded sample data - Explore the different tabs:
- Weekly Schedule: View tasks by day
- Task Management: Add/edit tasks
- Progress: View completion statistics
- Suggestions: Browse learning recommendations
- Profile: Set learning goals
- Add Task: Click "Add Task" in Task Management tab
- Edit Task: Double-click any task to open details window
- Complete Task: Check the completion checkbox (only for current/past dates)
- Delete Task: Use the delete button in task details window
- Send to Suggestions: Convert completed tasks to reusable suggestions
- Browse: View all available learning topic suggestions
- Filter: Use category dropdown to filter suggestions
- Search: Find suggestions by keywords or title
- Add to Schedule: Convert suggestions to scheduled tasks
- Create New: Add custom learning suggestions
- Weekly View: See completion status by day
- Statistics: View overall completion percentage and streaks
- Analytics: Access detailed progress reports and insights
- Future Task Protection: Tasks scheduled for future dates cannot be marked complete
- Visual Feedback: Disabled checkboxes with helpful validation messages
- User-Friendly: Clear explanations when attempting invalid actions
- 20+ Learning Topics: Curated suggestions for C# and .NET development
- Category Organization: Topics grouped by area (Fundamentals, Advanced, WPF, etc.)
- Conversion Flow: Easy conversion between tasks and suggestions
- Search & Filter: Find relevant topics quickly
- Instant Feedback: UI updates immediately when tasks are completed or modified
- Progress Tracking: Live completion statistics and progress bars
- Data Persistence: Changes saved automatically to JSON files
This application demonstrates modern C# and WPF development practices:
- C# Records: Immutable data models with value semantics
- Async/Await: Non-blocking operations for file I/O and UI responsiveness
- MVVM Pattern: Clean separation of concerns with data binding
- ObservableCollection: Automatic UI updates when data changes
- Custom Converters: XAML data transformation for visual indicators
- JSON Serialization: Modern System.Text.Json for data persistence
- Exception Handling: Graceful error recovery with custom exceptions
SharpScheduler serves as a comprehensive example of:
- WPF Application Development: Complete desktop application with modern UI
- MVVM Architecture: Proper implementation of Model-View-ViewModel pattern
- Data Binding: Two-way binding, converters, and collection binding
- Async Programming: Responsive UI with background operations
- File Management: JSON persistence with error handling
- User Experience Design: Intuitive interfaces with validation and feedback
Perfect for learning modern .NET desktop development patterns and best practices!
The application supports complete file management:
- New: Create a fresh schedule
- Open: Load existing JSON files
- Save: Save current progress
- Save As: Export to new file
Sample data is included in sample.json for quick testing.
SharpScheduler - Streamlining your learning journey with smart task management! π