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.
- .NET 9.0 SDK - Download here
- Git for version control
- 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
git clone <repository-url>
cd RepetiGodotnet restoreFile Location:
- Place the
gen-lang-client-0042585374-cee6dd59fb76.jsonfile in theRepetiGo.Apifolder (same directory asProgram.cs). - Place the
appsettings.jsonfile in the same directory as well. - Place the
launchSettings.jsonfile in thePropertiesfolder of theRepetiGo.Apiproject.
RepetiGo/
βββ RepetiGo.Api/
β βββ Properties/launchSettings.json β Place here
β βββ gen-lang-client-0042585374-cee6dd59fb76.json β Place here
β βββ Program.cs
β βββ appsettings.json β Place here
β βββ ...
# From the root directory
cd RepetiGo.Api
dotnet runThe API will be available at:
- HTTP:
http://localhost:5147 - Swagger UI:
http://localhost:5147/swagger(in Development mode)
# From the root directory
cd RepetiGo.Api.Tests
dotnet testThe project has two launch profiles configured in Properties/launchSettings.json:
dotnet run --launch-profile http- URL:
http://localhost:5147 - Environment: Development
- Swagger UI:
http://localhost:5147/swagger(Development only) - OpenAPI Spec:
http://localhost:5147/openapi/v1.json
# Trust the development certificate
dotnet dev-certs https --trust- 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
# Clear NuGet cache
dotnet nuget locals all --clear
# Restore packages
dotnet restore --forceRepetiGo.Api: Main API projectRepetiGo.Api.Tests: Unit and integration tests
- Controllers: API endpoints in
RepetiGo.Api/Controllers - Services: Business logic in
RepetiGo.Api/Services - Models: Data models in
RepetiGo.Api/Models - Data: Database context and migrations in
RepetiGo.Api/Data
- β 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)
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
- 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
If you encounter any issues:
- Check the troubleshooting section above
- Review the application logs in the console
- Ensure all prerequisites are installed
- Verify the application is running on the correct ports
- Start the application:
dotnet run - Open browser to:
http://localhost:5147/swagger - Try the registration endpoint with sample data
- Check email verification (logs will show the verification link)
- Test login with verified account
- Create a deck and add cards
- Test the AI card generation features
This project is licensed under the MIT License - see the LICENSE file for details.
The application is fully configured and ready to run! π