Prerequisites
- Windows (the build target is
win-x64) - .NET 8 SDK — download here
- Node.js — used by the build script to read the version from
package.json
Architecture overview
The desktop app is built with WPF on .NET 8 using an MVVM architecture. Key properties from the project file:PublishSingleFile: bundles everything into one EXESelfContained: includes the .NET runtime — no installation required on the target machineRuntimeIdentifier: targetswin-x64
The published EXE is fully self-contained. Users do not need .NET installed to run it.
Run in development
Build a standalone EXE
Run the build script
FlashcardAI.csproj — single-file, self-contained, win-x64.Project configuration (FlashcardAI.csproj)
| Package | Purpose |
|---|---|
Google.Apis.Drive.v3 | Cloud Sync via Google Drive API |
Google.Apis.Oauth2.v2 | OAuth 2.0 authentication |
OpenCvSharp4 | Video frame extraction for AI OCR |
PdfSharpCore | PDF handling |
SkiaSharp | Image rendering |
Google Drive credentials
The official release build includes embedded OAuth credentials, so Google Drive Cloud Sync works out of the box without any additional setup.
- Go to Google Cloud Console and create a project.
- Enable the Google Drive API.
- Configure the OAuth Consent Screen.
- Create an OAuth Client ID (Desktop App) under Credentials.
- Download the JSON file, rename it to
credentials.json, and place it in the project root. The app will use this file if it exists, overriding the embedded credentials.
Build the Python app
Package the legacy Python desktop app as a standalone EXE
Build the Android app
Build the React Native app as a release APK