Skip to content

Latest commit

Β 

History

105 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RepetiGo API

.NET License API Status

RepetiGo is a modern, intelligent spaced repetition learning platform that helps users memorize information efficiently using scientifically-proven memory techniques. Built with .NET 9 and featuring AI-powered content generation.

πŸ“‹ Prerequisites

Required Software

Optional Tools

  • Visual Studio 2022 (with .NET desktop development workload) or Visual Studio Code
  • SQL Server Management Studio (SSMS) for database management (if using local SQL Server)
  • Postman or similar tool for API testing

πŸš€ Quick Start

1. Clone the Repository

git clone <repository-url>
cd RepetiGo

2. Restore Dependencies

dotnet restore

3. Required Files Setup

File Location:

  • Place the gen-lang-client-0042585374-cee6dd59fb76.json file in the RepetiGo.Api folder (same directory as Program.cs).
  • Place the appsettings.json file in the same directory as well.
  • Place the launchSettings.json file in the Properties folder of the RepetiGo.Api project.
RepetiGo/
β”œβ”€β”€ RepetiGo.Api/
β”‚   β”œβ”€β”€ Properties/launchSettings.json ← Place here
β”‚   β”œβ”€β”€ gen-lang-client-0042585374-cee6dd59fb76.json  ← Place here
β”‚   β”œβ”€β”€ Program.cs
β”‚   β”œβ”€β”€ appsettings.json ← Place here
β”‚   └── ...

4. Run the Application

# From the root directory
cd RepetiGo.Api
dotnet run

The API will be available at:

  • HTTP: http://localhost:5147
  • Swagger UI: http://localhost:5147/swagger (in Development mode)

πŸ§ͺ Running Tests

Run All Tests

# From the root directory
cd RepetiGo.Api.Tests
dotnet test

πŸ“± Using the API

Launch Profiles

The project has two launch profiles configured in Properties/launchSettings.json:

HTTP Profile

dotnet run --launch-profile http
  • URL: http://localhost:5147
  • Environment: Development

API Documentation

  • Swagger UI: http://localhost:5147/swagger (Development only)
  • OpenAPI Spec: http://localhost:5147/openapi/v1.json

πŸ› Troubleshooting

Common Issues

1. SSL Certificate Issues

# Trust the development certificate
dotnet dev-certs https --trust

2. Port Already in Use

  • The application uses ports 5147 (HTTP) and 7213 (HTTPS)
  • Kill any processes using these ports if needed
  • Ports can be changed in Properties/launchSettings.json

3. Package Restore Issues

# Clear NuGet cache
dotnet nuget locals all --clear

# Restore packages
dotnet restore --force

πŸ—οΈ Project Structure

Main Projects

Key Components

Features Available

  • βœ… User Registration & Authentication
  • βœ… Email Verification
  • βœ… Password Reset
  • βœ… Deck Management
  • βœ… Flashcard Creation & Management
  • βœ… AI-Powered Card Generation (Google Gemini)
  • βœ… Image Upload (Cloudinary)
  • βœ… Spaced Repetition Algorithm (SM-2)
  • βœ… Review System
  • βœ… User Settings
  • βœ… Rate Limiting
  • βœ… Caching (Redis)

🧠 Spaced Repetition System

The application implements a custom SM-2 algorithm with the following default settings:

  • Learning Steps: "25m 1d" (25 minutes, then 1 day)
  • Graduating Interval: 3 days
  • Easy Interval: 4 days
  • Starting Easiness Factor: 2.5

πŸ“Š Database Schema

Core Tables

  • AspNetUsers: User accounts and authentication
  • Decks: Flashcard collections
  • Cards: Individual flashcards with SRS data
  • Reviews: Review history and performance tracking
  • Settings: User preferences and SRS configuration

πŸ“ž Support

If you encounter any issues:

  1. Check the troubleshooting section above
  2. Review the application logs in the console
  3. Ensure all prerequisites are installed
  4. Verify the application is running on the correct ports

πŸ” Testing the Application

Quick Test Steps

  1. Start the application: dotnet run
  2. Open browser to: http://localhost:5147/swagger
  3. Try the registration endpoint with sample data
  4. Check email verification (logs will show the verification link)
  5. Test login with verified account
  6. Create a deck and add cards
  7. Test the AI card generation features

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

The application is fully configured and ready to run! πŸš€

About

RepetiGo is a modern, intelligent spaced repetition learning platform that helps users memorize information efficiently using scientifically-proven memory techniques. Built with .NET 9 and featuring AI-powered content generation.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages