Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Muslimo is an Islamic learning platform with a Duolingo-style path UI and a production-minded backend foundation for web today and Expo/iOS/Android next.
This repo is no longer just a frontend demo plus a JSON file backend.
It now includes:
SIRA_DATABASE_URLSahabi, Prayer, Quran, and moreInstall frontend dependencies:
npm install
Run the Expo app:
npm run start
Run the backend API:
npm run backend
Bootstrap the database from scratch:
npm run backend:bootstrap
Run migrations only:
npm run backend:migrate
Seed catalog content only:
npm run backend:seed
Legacy JSON backend, if you need it temporarily:
npm run backend:legacy
App typecheck and unit tests (XP, streaks, hearts, lesson flow):
npm run typecheck
npm test
Backend API tests (use a throwaway SQLite database):
pip install -r backend/requirements-dev.txt
npm run test:backend
GitHub Actions runs all three on every pull request and on pushes to main.
Local development uses SQLite by default:
To switch to PostgreSQL, set:
SIRA_DATABASE_URL=postgresql+psycopg://user:password@localhost:5432/sira_path
and run:
npm run backend:migrate
Main routes now include:
/api/auth/register/api/auth/login/api/auth/logout/api/session/api/profile/me (DELETE removes the account and its data)/api/topics/api/topics/{topic_slug}/branches/api/branches/{branch_slug}/lessons/api/lessons/{lesson_slug}/api/lessons/{lesson_slug}/completion/api/questions/{question_id}/attempts/api/review-queue/api/subscriptions/plans/api/subscriptions/entitlements/api/subscriptions/sync (blocked in production)/api/subscriptions/revenuecat/webhook/api/analytics/eventsThe content model now supports:
Sahabi branchesPrayer branches including WuduThe current seed data intentionally creates large trees so the app stops behaving like a tiny prototype.
Lessons can also come straight from Obsidian notes: npm run import:notes -- "<vault folder>" turns each note into a branch and each ## heading into a lesson with its questions. See docs/obsidian-import.md.
EXPO_PUBLIC_API_BASE_URL is not set. To ship to the stores, follow docs/release.md.