ATM Generator
  • TypeScript 85.1%
  • Rust 7.5%
  • Python 5.1%
  • JavaScript 1.7%
  • CSS 0.2%
  • Other 0.4%
Find a file
KnallerKalle 676efc517a
release: v1.0 Beta — dev → main (#64)
v1.0 Beta release candidate — platform complete.

48 commits since last main: S3/MinIO storage, smart PDF processing, video
analysis, i18n, auth, progress persistence, Feldenkrais rest-button,
share-the-felt-change flow, blackbox test suite (41/41), TTS caching +
low-TTFB replay, accessibility audit (axe-core regression guard).

Pre-merge review (P0–P3): no blockers. Blackbox 41/41 green on testing
deployment; unit 110/110; TSC clean; CI green. Auth verified on all
write paths; no secrets in diff (demo accounts are intentional for Beta).

Known residuals (non-blocking): demo accounts env-gate before production;
audio first-play TTFB backend-dependent; Launch Lessons (0/8) next workstream.
2026-08-13 21:44:06 +02:00
.development feat(a11y): axe-core regression guard + seek-bar label fix (#63) 2026-08-13 18:59:06 +02:00
.github/workflows feat: Patchlog-Viewer (Version klickbar → Release-Notes aus dem Repo) (#49) 2026-08-11 00:58:11 +02:00
.openhands/microagents chore: initialize ATM project with infrastructure and documentation 2026-03-26 23:50:37 +00:00
docs feat: add APK signing step to release workflow with keystore docs 2026-04-15 21:19:07 +00:00
public fix: unblock public/*.svg in gitignore so favicon is tracked 2026-07-07 21:52:20 +00:00
scripts feat(a11y): axe-core regression guard + seek-bar label fix (#63) 2026-08-13 18:59:06 +02:00
services/ai-backend fix: clean PoseAnalyzer rewrite + PDF footer removal + knowledge detail 2026-07-09 15:32:37 +00:00
src feat(a11y): axe-core regression guard + seek-bar label fix (#63) 2026-08-13 18:59:06 +02:00
src-tauri fix: APK critical fixes - Android DB path, auth i18n, error handling, session validation 2026-04-17 15:37:32 +00:00
.dockerignore fix(security): untrack .env.production and harden env handling 2026-07-04 22:52:24 +00:00
.env.example fix(auth): force public-origin redirects behind Coolify/Traefik 2026-07-07 17:37:23 +00:00
.env.google.example feat: Google Drive OAuth live integration (Issue #20 Phase 2) 2026-04-14 08:57:05 +00:00
.env.s3.example feat: make S3 path prefix configurable via S3_PREFIX env var 2026-07-08 21:38:06 +00:00
.eslintrc.json feat: type safety + TODO implementation + exhaustive-deps 2026-04-14 06:11:45 +00:00
.gitignore fix: unblock public/*.svg in gitignore so favicon is tracked 2026-07-07 21:52:20 +00:00
.npmrc feat(progress): idempotent "lesson explored" write (persistence) (#50) 2026-08-11 01:20:38 +02:00
.prettierrc feat: implement Tauri and Next.js project structure 2026-03-26 23:58:52 +00:00
.testing-checklist.md test(docs): Phase 4 Part 3 - Manual Testing Checklist 2026-04-04 23:02:28 +00:00
AGENTS.md docs(agents): record hybrid FastAPI architecture and base64 lesson 2026-07-04 23:20:43 +00:00
check-deployment.sh chore: add deployment status check script 2026-04-06 15:17:36 +00:00
docker-compose.yml feat(compose): integrate ai-backend service into docker-compose.yml 2026-07-06 21:55:01 +00:00
docker-compose_test.yml feat: make S3 path prefix configurable via S3_PREFIX env var 2026-07-08 21:38:06 +00:00
docker-compose_testing.yml.backup fix(docker): rename file to docker-compose_testing.yml 2026-04-06 15:27:25 +00:00
Dockerfile fix(docker): add --legacy-peer-deps to npm install for TF.js compatibility 2026-07-09 14:48:51 +00:00
GOOGLE_CLOUD_SETUP.md feat(cloud): implement Google Drive OAuth integration and cloud sync 2026-04-08 22:31:28 +00:00
LICENSE chore: initialize ATM project with infrastructure and documentation 2026-03-26 23:50:37 +00:00
next.config.js feat: integrate Tauri v2 for native desktop and mobile builds 2026-04-12 13:29:25 +00:00
package-lock.json feat(a11y): axe-core regression guard + seek-bar label fix (#63) 2026-08-13 18:59:06 +02:00
package.json feat(a11y): axe-core regression guard + seek-bar label fix (#63) 2026-08-13 18:59:06 +02:00
postcss.config.js fix(css): downgrade Tailwind CSS from v4.2.2 to v3.4.19 2026-04-05 21:25:36 +00:00
README.md docs: sync README and roadmap to shipped v0.2.1 (Phases 1-6) 2026-07-04 23:03:24 +00:00
RELEASE_NOTES_v0.2.0.md release(v0.2.0): prepare release documentation 2026-04-04 14:43:31 +00:00
RELEASE_NOTES_v0.2.1.md docs: Phase 5 Complete - v0.2.1 Release Documentation 2026-04-04 23:17:27 +00:00
tailwind.config.js feat: implement Tauri and Next.js project structure 2026-03-26 23:58:52 +00:00
tsconfig.json feat: major dependencies upgrade 2026-04-01 19:20:14 +00:00
vitest.config.ts feat(testing): Phase 4 Part 1 - Testing Framework Setup 2026-04-04 22:53:17 +00:00
vitest.setup.ts test: fix broken suite and add core unit tests + CI test job 2026-07-04 22:59:36 +00:00

ATM - Feldenkrais Awareness Through Movement

A mobile-first Tauri application for converting Feldenkrais lesson PDFs to audio content and generating new ATM (Awareness Through Movement) lessons.

Vision

ATM enables Feldenkrais practitioners to:

  • Convert PDF lesson descriptions into audio files
  • Generate new ATM lessons using AI-powered content synthesis
  • Create customized lessons for groups or individual sessions
  • Build and expand a comprehensive Feldenkrais knowledge base

Tech Stack

  • Frontend Framework: Next.js 16 (App Router, Server Components)
  • Runtime: React 19, TypeScript
  • Desktop / Mobile: Tauri v2 (Windows, macOS, Linux, Android, iOS)
  • Styling: Tailwind CSS v4
  • Authentication: NextAuth.js v5 (Auth.js) — role-based (Teacher / Student / Admin)
  • Real-time: PeerJS / WebRTC (video calling)
  • i18n: next-intl v4 (9 languages)
  • Charts: Recharts
  • Cloud Storage (optional): AWS S3 (@aws-sdk/client-s3)
  • Calendar: Google Calendar API (gapi-script)
  • Password hashing: bcryptjs
  • Package Manager: npm

Features

Current Release: v0.2.1 — Platform (Phases 1–6 Complete) ✅

Phase 1-4 Core Features (All Implemented):

PDF-to-Audio Pipeline

  • PDF Upload: Upload and manage PDF lesson documents
  • PDF Text Extraction: Extract text from PDFs using Rust backend (fast, accurate)
  • TTS Audio Generation: Convert lesson text to audio using system TTS
  • Storage Management: Monitor storage usage and cleanup orphaned files

Lesson Management

  • Lesson Library: Browse lessons in grid or list view
  • CRUD Operations: Create, read, update, delete lessons
  • Search: Quick search by title with 300ms debouncing
  • Advanced Filters: Filter by category, plays, date, difficulty, duration
  • Tag System: Assign tags to lessons for organization
  • Tag Management: Create/edit/delete tags, bulk assignment
  • Storage Monitoring: Track database size, audio file size, free space

Audio Playback

  • Full-Featured Player: Play, pause, seek, volume
  • Speed Controls: 0.5x to 2.0x playback speed
  • Timestamp Persistence: Resume where you left off
  • Per-Lesson Position: Unique timestamp per lesson
  • Progress Bars: Visual completion tracking

TTS Customization

  • Voice Selection: Choose from available system voices
  • Speed Control: 0.5x to 2.0x text-to-speech rate
  • Pitch Adjustment: 0.0 to 2.0 pitch modification
  • Rate Adjustment: 0.5 to 2.0 speaking rate
  • Per-Lesson Settings: Customize voice for each lesson
  • Voice Preview: Test voice before applying
  • User Preferences: Save default voice settings

Analytics Dashboard 🆕

  • Summary Statistics: 7 colorful metric cards
    • 📚 Total Lessons
    • ✅ Completed Lessons
    • ▶️ Total Plays
    • 📊 Average Completion %
    • ⏱️ Total Time (min)
    • 📅 Played Today
    • 📆 Played This Week
  • Weekly Activity Chart: BarChart showing 7-day play pattern
  • Category Distribution: PieChart displaying lessons by category
  • Sortable Lesson Table: Sort by Title, Completion, Plays, Last Played
    • Color-coded completion badges (green/orange/red)
    • Category tags for quick identification
    • Pagination (10 lessons per page)
  • CSV Export: Download full analytics report

User Interface

  • Toast Notifications: Non-intrusive success/error messages (replacedAlerts)
  • Progress Indicators: Loading states for long operations
  • Settings Page: 5 sections (Audio, Display, Storage, Privacy, About)
  • Mobile Navigation: Bottom navigation for small screens
  • Responsive Design: Mobile-first, works on all screen sizes

Data & Infrastructure

  • Data Persistence: SQLite database for lessons, tags, settings, audio positions
  • Cross-Platform: Windows, macOS, and Linux support
  • Tauri Commands: Secure Rust backend with 30+ commands
  • Database API: Clean TypeScript interface for data operations

Testing 🆕

  • Test Framework: Vitest + React Testing Library configured
  • Component Tests: 13 automated tests (StatCard, AnalyticsTable, ProgressBar)
  • Manual Testing Checklist: 100+ test items for validation
  • Coverage Reporting: v8 provider for test coverage metrics
  • Test Scripts: Watch mode, visual UI, CI run, coverage report

Planned Features (Phase 5-7)

  • Date range filters for analytics
  • Detailed lesson analytics view
  • Practice recommendations
  • Streak tracking and goals
  • AI-powered lesson generation
  • Interactive 3D body demonstrations
  • Voice recognition for practice feedback
  • Export to PDF (not just CSV)
  • Multi-language support

Getting Started

Prerequisites

  • Node.js 18+ and npm
  • Rust and Cargo (for Tauri)
  • Docker and Docker Compose (for deployment)
  • Coolify (for deployment)

Installation

# Clone the repository
git clone https://github.com/KnallerGmbH/ATM.git
cd ATM

# Install dependencies
npm install

# Start development server
npm run dev

Docker Deployment (Coolify + Traefik)

The application can be deployed using Coolify with Traefik reverse proxy:

Prerequisites

  • Coolify instance running
  • Traefik reverse proxy configured
  • Domain configured

Automatic Deployment

  1. Connect Coolify to the GitHub repository
  2. Select the dev branch
  3. Configure environment variables (see .env.example)
  4. Deploy - Coolify will automatically:
    • Build the Docker image
    • Configure Traefik routing
    • Setup SSL/TLS certificates
    • Start the container

Traefik Integration

The docker-compose.yml includes Traefik configuration for:

  • Automatic routing via domain name
  • SSL/TLS with Let's Encrypt
  • Health checks
  • Load balancing support

Environment Variables

Required variables (see .env.example):

  • PORT: Application port (default: 3000)
  • NODE_ENV: Environment mode
  • Coolify magic variables: SERVICE_URL, SERVICE_FQDN

Build

# Build for development
npm run build

# Build Tauri application
npm run tauri build

# Build Docker image
docker compose build

Docker Deployment (Manual)

# Build and start with Docker Compose
docker compose up -d

# View logs
docker compose logs -f

# Stop
docker compose down

Project Structure

ATM/
├── src/                   # Application source
│   ├── app/              # Next.js app router (pages + API routes + [locale] i18n)
│   ├── components/       # React components
│   ├── hooks/            # Custom React hooks
│   ├── lib/              # Core logic (auth, api, db, tts, video, ...)
│   ├── messages/         # i18n translation files (de, en, es, fr, he, pt-BR, ...)
│   ├── types/            # TypeScript types
│   └── utils/            # Pure utilities
│
├── src-tauri/            # Tauri v2 backend (Rust: lib.rs, database.rs, analytics.rs)
│   └── src/              # Rust modules (SQLite, PDF extraction, TTS)
│
├── .github/workflows/    # CI: build-check (test + Tauri build), release (multi-platform)
├── .development/         # Internal docs, roadmap, progress tracking
├── public/               # Static assets
└── ... standard Next.js / Tauri config

Development

Available Commands

Core Commands: ```bash npm run dev # Start Next.js dev server npm run build # Build for production npm start # Start production server npm test # Run tests in watch mode npm run test:ui # Visual test dashboard npm run test:coverage # Generate coverage report npm run tauri dev # Start Tauri app with dev server npm run tauri build # Build Tauri application ```

Testing Scripts: ```bash npm run test:run # Run all tests once (CI mode) npm run test:ui # Visual test dashboard npm run test:coverage # Coverage report (vitest) ```

The project uses special commands for development operations:

  • [[current state]] - Check current project state
  • [[vision]] - Review project vision
  • [[devcon]] - Continue development
  • [[verify]] - Lint and test
  • [[security audit]] - Security review
  • [[score]] - Code quality assessment

For complete documentation, see REPO.MD or .development/TOOLS.MD.

Conventional Commits

This project follows conventional commit format:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • refactor: - Code refactoring
  • test: - Test additions/changes
  • chore: - Maintenance tasks

License

© Copyright. All rights reserved. Commercial license.

Contact

For licensing and commercial inquiries, contact the project maintainers.


Status: Active Development — Release Candidate (Phases 1–6 complete) Version: v0.2.1 Latest Update: 2026-04-19