-
Install .NET SDK
- Download the latest .NET SDK from Microsoft .NET.
- Follow the installation instructions for your operating system (Windows, macOS, Linux).
-
Create a New Blazor WebAssembly Project
- Open a command-line terminal.
- Run the following command to create a new Blazor WebAssembly project:
dotnet new blazorwasm -o FlashcardApp
- Navigate to the project directory:
cd FlashcardApp
-
Set Up ASP.NET Core Backend
- Create a new ASP.NET Core Web API project:
dotnet new webapi -o FlashcardApp.Server
- Modify the
.slnfile to include both the Blazor WebAssembly project and the ASP.NET Core project.
- Create a new ASP.NET Core Web API project:
-
Run the Projects
- Start the Web API project:
cd FlashcardApp.Server dotnet run - Start the Blazor WebAssembly project:
cd ../FlashcardApp dotnet run
- Start the Web API project:
-
Download Visual Studio
- Go to the Visual Studio website.
- Download the Community version (it's free).
-
Install Workloads
- During installation, select the following workloads:
.NET desktop developmentASP.NET and web development.NET Core cross-platform development
- During installation, select the following workloads:
-
Create and Open Projects
- Open Visual Studio and click Create a new project.
- Choose Blazor WebAssembly App or ASP.NET Core Web API as needed.
-
Download Visual Studio Code
- Go to the Visual Studio Code website.
- Download and install VS Code for your operating system.
-
Install Extensions
- Recommended extensions for this project:
C#- Official C# extension for .NET developmentC# Dev Kit- Improved .NET development experienceREST Client- To test APIs
- Recommended extensions for this project:
-
Using Visual Studio Code
- Open your project folder using File > Open Folder.
- Use the integrated terminal to run commands:
dotnet run
Functionality:
- Users can log in and log out of the application.
- Implements password hashing for security.
- Uses JWT (JSON Web Tokens) for authentication to ensure secure, stateless sessions.
- The backend manages user credentials, while the front end handles login forms and token storage.
Functionality:
- Admin users can add new members using their email and password.
- Provides an interface to manage user data (e.g., password reset, account deletion).
- Uses secure input fields and backend validation to ensure data integrity.
Functionality:
- Displays all flashcard topics available for study.
- Users can browse topics by category.
- Shows brief descriptions of each topic and the number of flashcards available.
Functionality:
- Backend database stores flashcards, categorized by topics.
- CRUD (Create, Read, Update, Delete) operations available for managing flashcards.
- Each flashcard includes a question, answer, and optional hints.
Functionality:
- Users can select a topic and review flashcards in a study mode.
- Provides an intuitive interface to flip through cards, mark them as "known" or "unknown," and revisit them.
- Uses adaptive learning techniques to help users focus on flashcards they struggle with.
Functionality:
- Users can take a quiz on a selected topic.
- Randomly selects flashcards from the repository to form a test.
- Tracks correct and incorrect answers, providing feedback after each question.
- Users can view results and analyze their performance.
Functionality:
- Tracks user's mastery of each topic based on their study and testing results.
- Displays progress bars and skill levels for each topic.
- Encourages consistent practice by providing rewards (badges, achievements) as users improve their mastery.
- You Don't Know JS (Book Series) - Good for understanding JavaScript concepts, which may be helpful in understanding web mechanics.
- Frontend Masters - Courses on web development.