A modern study management application built with WPF and .NET 8 to help you organize your subjects, notes, and flashcards.
- Subject Management: Create and organize different study subjects
- Note Taking: Add and manage notes for each subject
- Flashcards: Create and review flashcards with difficulty levels
- Search Functionality: Search across all your notes and flashcards
- Data Persistence: Dual-backend support:
- Database: SQL Server with Entity Framework 6
- Fallback: XML-based storage when database is unavailable
- UI Framework: WPF (Windows Presentation Foundation)
- Framework: .NET 8 (modern, long-term support)
- ORM: Entity Framework 6 with SQL Server
- Pattern: MVVM (Model-View-ViewModel)
MyStudyTimeVSC/
├── src/
│ └── MyStudyTime/
│ ├── Core/ # Helper classes (ObservableObject, RelayCommand, Converters)
│ ├── Database/ # EF6 DbContext
│ ├── MVVM/
│ │ ├── Model/ # Data models (Subject, Note, FlashCard, StudyGoal)
│ │ ├── View/ # XAML UI views
│ │ └── ViewModel/ # Binding logic
│ ├── Services/ # Data access (IDataService, EF6DataService, XmlDataService)
│ ├── Theme/ # XAML resource dictionaries
│ ├── Assets/ # Fonts and images
│ ├── App.xaml # Application root
│ ├── MainWindow.xaml # Main window
│ └── MyStudyTime.csproj # Project file
├── .vscode/
│ ├── launch.json # Debug configuration
│ └── tasks.json # Build tasks
├── .gitignore
├── MyStudyTime.sln # Solution file
└── README.md
- .NET 8 SDK or later (download from dotnet.microsoft.com)
- Visual Studio Code or any .NET IDE
- SQL Server Express (for database persistence) - optional, falls back to XML storage
# Build the project
dotnet build src/MyStudyTime/MyStudyTime.csproj
# Or use the VSCode build task
Ctrl+Shift+B# Run the application
dotnet run --project src/MyStudyTime/MyStudyTime.csproj
# Or use the VSCode run task
Ctrl+Shift+B > select "run"- Set breakpoints in VSCode
- Press
F5to start debugging (uses launch.json configuration) - The app will launch with debugger attached
By default, the application attempts to connect to SQL Server Express:
- Connection String:
Server=.\SQLEXPRESS;Database=StudyTime;Integrated Security=true; - Modify in
appsettings.jsonif needed
If SQL Server is unavailable, data automatically persists to XML files in:
%APPDATA%\MyStudyTime\
├── subjects.xml
├── flashcards.xml
└── studygoals.xml
- WPF: Modern desktop UI with data binding
- .NET 8: Current LTS release with performance improvements
- Entity Framework 6: ORM for database operations
- MVVM Pattern: Separation of concerns for maintainability
The project uses SDK-style .csproj format (modern, clean, and VSCode-friendly):
- No
packages.config— usesPackageReferencein.csproj - Automatic resource discovery
- .NET 8 with Windows Desktop support
If you see warnings about database unavailability:
- Ensure SQL Server Express is installed and running
- Check the connection string in
appsettings.json - App will automatically fall back to XML storage
# Clean and rebuild
dotnet clean src/MyStudyTime/MyStudyTime.csproj
dotnet build src/MyStudyTime/MyStudyTime.csprojdotnet restore src/MyStudyTime/MyStudyTime.csprojThis project is for personal study use.
Happy studying! 📚✨