Complete rewrite of Scry using TypeScript stack:
- Expo/React Native with Expo Router (file-based routing)
- Convex backend (serverless functions + real-time database)
- Adaptive camera system (expo-camera in Expo Go, Vision Camera in production)
- React Native Skia + fast-opencv for image processing
- GDPR-compliant auth setup with Zitadel OIDC (pending configuration)
Key features:
- Card recognition pipeline ported to TypeScript
- Perceptual hashing (192-bit color pHash)
- CLAHE preprocessing for lighting normalization
- Local SQLite cache with Convex sync
- Collection management with offline support
Removes all .NET/MAUI code (src/, test/, tools/).
💘 Generated with Crush
Assisted-by: Claude Opus 4.5 via Crush <crush@charm.land>
80 lines
2 KiB
Makefile
80 lines
2 KiB
Makefile
# Scry development commands
|
|
|
|
set shell := ["C:/Program Files/Git/usr/bin/bash.exe", "-c"]
|
|
set unstable := true
|
|
|
|
mod emu '.just/emu.just'
|
|
|
|
# Android SDK paths
|
|
|
|
android_sdk := replace(env('LOCALAPPDATA'), '\', '/') / "Android/Sdk"
|
|
adb := android_sdk / "platform-tools/adb.exe"
|
|
|
|
[private]
|
|
@default:
|
|
just --list
|
|
|
|
# Build a project
|
|
build project="src/Scry.App" target="net10.0-android":
|
|
@echo "Building {{ project }}..."
|
|
dotnet build {{ project }} -f {{ target }} -c Debug
|
|
@echo "Build complete"
|
|
|
|
# Publish a project (creates distributable)
|
|
publish project="src/Scry.App" target="net10.0-android":
|
|
@echo "Publishing {{ project }} (this takes a while)..."
|
|
dotnet publish {{ project }} -f {{ target }} -c Release
|
|
@echo "Publish complete"
|
|
|
|
# Install APK to emulator/device
|
|
install:
|
|
{{ adb }} install -r src/Scry.App/bin/Release/net10.0-android/publish/land.charm.scry-Signed.apk
|
|
|
|
# Launch the app on emulator/device
|
|
launch:
|
|
{{ adb }} shell am start -n land.charm.scry/crc64fb23cc0d511b0157.MainActivity
|
|
|
|
# Publish, install, and launch
|
|
run: (publish "src/Scry.App") install launch
|
|
|
|
# View app crash logs
|
|
logs:
|
|
{{ adb }} logcat -d | grep -iE "land.charm.scry|scry|mono|dotnet" | tail -80
|
|
|
|
# Run tests
|
|
test:
|
|
dotnet test test/Scry.Tests
|
|
|
|
# Generate the card hash database from Scryfall
|
|
gen-db: (build "tools/DbGenerator" "net10.0")
|
|
@echo "Running Database generator (this takes a while)..."
|
|
dotnet run --project tools/DbGenerator --no-build -- src/Scry.App/Resources/Raw/card_hashes.db
|
|
@echo "Completed generating the database"
|
|
|
|
# Start Expo dev server with Convex (hot reload)
|
|
dev:
|
|
bun run dev
|
|
|
|
# Start just the Expo dev server
|
|
start:
|
|
bun run dev:expo
|
|
|
|
# Start just Convex dev server
|
|
convex-dev:
|
|
bun run dev:convex
|
|
|
|
# Run Expo app on Android emulator
|
|
android:
|
|
bun run android
|
|
|
|
# Install Expo app dependencies
|
|
expo-install:
|
|
bun install
|
|
|
|
# Run hash migration to Convex
|
|
expo-migrate:
|
|
bun run migrate
|
|
|
|
# TypeScript check for Expo app
|
|
expo-typecheck:
|
|
bun run typecheck
|