- TypeScript 85.1%
- Rust 7.5%
- Python 5.1%
- JavaScript 1.7%
- CSS 0.2%
- Other 0.4%
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. |
||
|---|---|---|
| .development | ||
| .github/workflows | ||
| .openhands/microagents | ||
| docs | ||
| public | ||
| scripts | ||
| services/ai-backend | ||
| src | ||
| src-tauri | ||
| .dockerignore | ||
| .env.example | ||
| .env.google.example | ||
| .env.s3.example | ||
| .eslintrc.json | ||
| .gitignore | ||
| .npmrc | ||
| .prettierrc | ||
| .testing-checklist.md | ||
| AGENTS.md | ||
| check-deployment.sh | ||
| docker-compose.yml | ||
| docker-compose_test.yml | ||
| docker-compose_testing.yml.backup | ||
| Dockerfile | ||
| GOOGLE_CLOUD_SETUP.md | ||
| LICENSE | ||
| next.config.js | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| RELEASE_NOTES_v0.2.0.md | ||
| RELEASE_NOTES_v0.2.1.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
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
- Connect Coolify to the GitHub repository
- Select the
devbranch - Configure environment variables (see
.env.example) - 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 featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Test additions/changeschore:- 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