A comprehensive command-line application built in C# for creating, managing, and studying digital flashcards. This project uses a highly organized, layered architecture (including the Repository Pattern and Service layers) to handle complex relationships between Flashcard Stacks and Study Sessions.
- Stack Management: Create distinct "Stacks" (categories or subjects) to organize your flashcards.
- Flashcard Operations: Add, update, view, and delete individual flashcards (front/back) within specific stacks.
- Interactive Study Sessions: Run active study sessions where the application tests your knowledge of a stack and calculates your score.
- Session Tracking & Reporting: Automatically records your study sessions, tracking your score percentage and progress over time.
- Clean Architecture: Utilizes the Repository Pattern for data access, DTOs (Data Transfer Objects) for safe data passing, and specific Action Handlers to separate concerns.
- Database Integration: Powered by Entity Framework Core to persist all stacks, cards, and session history in a relational database.
- Language: C# / .NET
- Data Access: Entity Framework Core
- Architecture: Repository Pattern, Service Layer, CQRS-inspired Action Handlers
- .NET SDK (Version 8.0 or newer)
- SQL Server (or the database provider configured in your
appsettings.json)
-
Clone the repository:
git clone [https://github.com/Patryk-MM/Flashcards.git](https://github.com/Patryk-MM/Flashcards.git) cd Flashcards/Flashcards -
Configure the Database: Ensure your database connection string is properly set in the
appsettings.jsonfile. -
Apply Database Migrations: Before running the app for the first time, apply the Entity Framework migrations to build your database schema:
dotnet ef database update
-
Run the application:
dotnet run
Upon launching, follow the on-screen console menus to:
- Navigate to the Stack Manager to create a new subject (e.g., "C# Fundamentals").
- Add flashcards to your new stack (Front: "What is a record?", Back: "An immutable reference type.").
- Enter the Study Session Manager to test yourself on a stack.
- View your past study session scores and reports!