Skip to content

andrenormanlang/csharp-ai-powered-scheduler-wpf-desktop-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SharpScheduler - Learning Task Management Application

Overview

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.

πŸš€ Key Features

  • πŸ“… 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

πŸ› οΈ Technology Stack

  • 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

πŸ—οΈ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • .NET 9.0 SDK or later
  • Visual Studio 2022 or VS Code with C# extension
  • Windows 10/11 (WPF requirement)

Installation

  1. Clone or download the repository

  2. Navigate to the project directory:

    cd SharpScheduler
  3. Build the project:

    dotnet build
  4. Run the application:

    dotnet run

Quick Start

  1. Launch the application
  2. Go to File β†’ Open and select sample.json for pre-loaded sample data
  3. 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

πŸ“– Usage Guide

Managing Tasks

  • 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

Working with 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

Tracking Progress

  • Weekly View: See completion status by day
  • Statistics: View overall completion percentage and streaks
  • Analytics: Access detailed progress reports and insights

✨ Key Features Explained

Smart Task Validation

  • 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

Intelligent Suggestions

  • 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

Real-Time Updates

  • 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

πŸ› οΈ Technical Highlights

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

🎯 Educational Value

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!

πŸ“„ File Operations

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! πŸš€

About

A C# and WPF desktop scheduling assistant πŸ—“οΈ designed to streamline task management and optimize daily routines with AI-powered features. πŸ€–πŸ’»βœ¨

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors