TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
A free, offline-capable Android FSL practice app: learn a sign, perform it in front of your camera, and get Correct / Needs correction / Recapture feedback. 130 signs, 15 modules.
EducationHTML · JavaScriptGitHub @fpaulpalisOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A static, one-page marketing site for the FSLAMES Android app. Plain HTML +
Tailwind CSS v4 (compiled at build time) + a few lines of vanilla JS. It lives
in website/ and does not touch the Flutter app.
cd website
npm install
npm run build # compiles CSS + copies index.html and public/ into dist/
npm run dev # serves dist/ (default: http://localhost:3000)
The download buttons point at downloads/fslames-v2.0.0.apk. To test the real
APK locally, copy it in (the folder is git-ignored):
copy ..\fslames-mobile-app\build\app\outputs\flutter-apk\fslames-v2.0.0-20261023.apk downloads\fslames-v2.0.0.apk
public/config.js is the single place the download destination lives:
window.FSLAMES_APK = {
url: "https://github.com/fpaulpalis/fslames-app/releases", // <- redirect target
version: "2.0.0",
size: "126 MB",
updated: "October 2026",
requires: "Android 10+",
};
Every "Download APK" button (header, hero, download section, footer) reads from
this object. If url is left empty, the buttons flip to a harmless
"APK coming soon" state instead of a broken link.
Before deploying: the APK is ~126 MB, so it cannot be committed to GitHub
(100 MB push limit) or served from most static hosts. Recommended: upload
build/app/outputs/flutter-apk/fslames-v2.0.0-20261023.apk as a GitHub
Release asset, then paste its download URL into config.js.
*.apk and node_modules are ignored).website/. The bundled website/vercel.json sets:
npm installnpm run builddist/ and refreshes
work (static pages; cleanUrls also serves /privacy and /terms).public/config.js and redeploy.website/
├── index.html # the landing page
├── how-to-play.html # Quick Start Guide: Practice
├── privacy.html # Privacy Policy (text from lib/features/auth/policy_texts.dart)
├── terms.html # Terms and Conditions (same source)
├── package.json # build tooling (Tailwind CSS v4)
├── vercel.json # Vercel build/output settings
├── src/
│ ├── styles.css # Tailwind theme + bespoke styles (colors from the app)
│ └── main.js # nav toggle, reveal-on-scroll, APK config wiring
├── scripts/copy-assets.mjs
├── public/
│ ├── config.js # APK download configuration (edit before deploy)
│ └── img/ # logo, Learn-scene background, frog mascot, app mockups
└── downloads/ # local APK copy (git-ignored)
Optional QA: node qa/qa.mjs drives a headless Chrome over CDP to check
overflow and capture screenshots at 390 / 768 / 1280 px (--full for
full-page captures).
lib/core/theme/app_colors.dart,
lib/widgets/learning_path.dart, lib/widgets/frog_mascot.dart).docs/screenshot_plate_plan.md),
drop PNG/JPG replacements into public/img/ and swap the <img src>s in
index.html.