{"id":35154970,"url":"https://github.com/gabrielmaialva33/jim_studio","last_synced_at":"2026-01-13T22:53:36.826Z","repository":{"id":330854184,"uuid":"1115869328","full_name":"gabrielmaialva33/jim_studio","owner":"gabrielmaialva33","description":"A comprehensive platform for music lessons that analyzes student performances and provides AI-powered feedback for musical improvement.","archived":false,"fork":false,"pushed_at":"2025-12-28T14:48:30.000Z","size":1747,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-31T03:08:32.722Z","etag":null,"topics":["elixir","liveview","music-learning","studio","timescaledb"],"latest_commit_sha":null,"homepage":"https://jimstudio.mahina.cloud","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielmaialva33.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-13T18:07:46.000Z","updated_at":"2025-12-28T14:49:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gabrielmaialva33/jim_studio","commit_stats":null,"previous_names":["gabrielmaialva33/jim_studio"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielmaialva33/jim_studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Fjim_studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Fjim_studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Fjim_studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Fjim_studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielmaialva33","download_url":"https://codeload.github.com/gabrielmaialva33/jim_studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Fjim_studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","liveview","music-learning","studio","timescaledb"],"created_at":"2025-12-28T16:48:24.052Z","updated_at":"2026-01-13T22:53:36.821Z","avatar_url":"https://github.com/gabrielmaialva33.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\".github/assets/music-studio.png\" alt=\"Jim Studio\" width=\"200\"\u003e\n  \u003cbr\u003e\n  Jim Studio - AI-Powered Music Education Platform\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA comprehensive platform for music lessons that analyzes student performances and provides AI-powered feedback for musical improvement.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.pt-BR.md\"\u003ePortugues\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Elixir-1.15+-4B275F?style=flat\u0026logo=elixir\" alt=\"Elixir\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Phoenix-1.8-FD4F00?style=flat\u0026logo=phoenixframework\" alt=\"Phoenix\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TimescaleDB-PostgreSQL_17-FDB515?style=flat\u0026logo=timescale\" alt=\"TimescaleDB\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tailwind-4.0-38bdf8?style=flat\u0026logo=tailwindcss\" alt=\"Tailwind CSS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/NVIDIA_NIM-AI_Powered-76B900?style=flat\u0026logo=nvidia\" alt=\"NVIDIA NIM\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=flat\" alt=\"License\" /\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#sparkles-features\"\u003eFeatures\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#art-architecture\"\u003eArchitecture\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#computer-technologies\"\u003eTechnologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#package-installation\"\u003eInstallation\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#rocket-usage\"\u003eUsage\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## :sparkles: Features\n\n### Performance Analysis\n\n- **Audio Transcription** - Convert student performances to text using NVIDIA Parakeet CTC\n- **AI Feedback** - Intelligent musical analysis powered by LLaMA 3.1\n- **Semantic Search** - Find similar performances using vector embeddings with Qdrant\n- **Progress Tracking** - Monitor improvement over time with detailed metrics\n\n### Course Management\n\n- **Multi-Instrument Support** - 47+ instruments across categories (strings, wind, percussion, keyboard, voice, electronic)\n- **Structured Curriculum** - Courses with modules, lessons, and materials\n- **Live \u0026 Recorded Lessons** - Support for live sessions, recorded content, and tutorials\n\n### Gamification System\n\n- **XP \u0026 Levels** - Experience points system for student engagement\n- **Achievements** - Unlock badges and milestones for musical accomplishments\n- **Weekly Digests** - Automated progress reports and activity summaries\n\n### Multi-Role Platform\n\n- **Students** - Take lessons, record performances, track progress\n- **Guardians** - Parent accounts with guardian-child relationships\n- **Teachers** - Create courses, provide feedback, manage students\n- **Coordinators** - Manage institutions and teacher assignments\n- **Admins** - Full system access and configuration\n\n### Billing \u0026 Subscriptions\n\n- **Stripe Integration** - Secure payment processing\n- **Credit Packages** - Flexible lesson credits system\n- **Multiple Plans** - Free, Pro, and Enterprise tiers\n\n\u003cbr\u003e\n\n## :art: Architecture\n\n### System Overview\n\n```mermaid\ngraph TD\n    User[User / Admin]\n\n    subgraph \"Jim Studio Platform\"\n        LB[Phoenix Server]\n        UI[LiveView UI]\n        API[REST API]\n        Workers[Oban Workers]\n    end\n\n    subgraph \"Data Layer\"\n        DB[(TimescaleDB)]\n        Redis[Redis Cache]\n        Qdrant[Qdrant Vector DB]\n    end\n\n    subgraph \"External Services\"\n        R2[Cloudflare R2]\n        NVIDIA[NVIDIA NIM API]\n        Stripe[Stripe Payments]\n        Firebase[Firebase Auth]\n    end\n\n    User --\u003e|HTTPS| LB\n    LB --\u003e UI\n    LB --\u003e API\n    API --\u003e Workers\n\n    Workers --\u003e DB\n    Workers --\u003e Redis\n    Workers --\u003e Qdrant\n    Workers --\u003e R2\n    Workers --\u003e NVIDIA\n\n    API --\u003e Stripe\n    API --\u003e Firebase\n```\n\n### Processing Pipeline\n\n```mermaid\nsequenceDiagram\n    participant S as Student\n    participant A as API\n    participant R2 as Cloudflare R2\n    participant T as Transcription Worker\n    participant N as NVIDIA NIM\n    participant An as Analysis Worker\n    participant Q as Qdrant\n\n    S-\u003e\u003eA: Upload Performance\n    A-\u003e\u003eR2: Store Audio File\n    A-\u003e\u003eT: Queue Transcription Job\n    T-\u003e\u003eN: Parakeet CTC\n    N--\u003e\u003eT: Transcribed Text\n    T-\u003e\u003eAn: Queue Analysis Job\n    An-\u003e\u003eN: LLaMA 3.1 Analysis\n    N--\u003e\u003eAn: Musical Feedback\n    An-\u003e\u003eQ: Store Embeddings\n    An--\u003e\u003eS: WebSocket Notification\n```\n\n\u003cbr\u003e\n\n## :computer: Technologies\n\n### Core Framework\n\n- **[Elixir](https://elixir-lang.org/)** 1.15+ - Functional programming for scalable applications\n- **[Phoenix](https://phoenixframework.org/)** 1.8 - Real-time web framework with LiveView\n- **[Ecto](https://hexdocs.pm/ecto/)** 3.13 - Database wrapper and query generator\n\n### Database \u0026 Storage\n\n- **[TimescaleDB](https://www.timescale.com/)** - Time-series optimized PostgreSQL\n- **[Redis](https://redis.io/)** - In-memory caching with Redix\n- **[Qdrant](https://qdrant.tech/)** - Vector database for semantic search\n- **[Cloudflare R2](https://www.cloudflare.com/products/r2/)** - Object storage for media files\n\n### AI \u0026 Machine Learning\n\n- **[NVIDIA NIM](https://developer.nvidia.com/nim)** - AI inference microservices\n  - Parakeet CTC for audio transcription\n  - NV-EmbedQA for text embeddings\n  - LLaMA 3.1 for performance analysis\n\n### Authentication \u0026 Payments\n\n- **[Guardian](https://github.com/ueberauth/guardian)** - JWT authentication\n- **[Firebase Auth](https://firebase.google.com/products/auth)** - Social authentication\n- **[Stripe](https://stripe.com/)** - Payment processing\n\n### Background Processing\n\n- **[Oban](https://getoban.pro/)** 2.17 - Job processing with persistence\n\n### Frontend\n\n- **[Phoenix LiveView](https://hexdocs.pm/phoenix_live_view/)** - Server-rendered real-time UI\n- **[Tailwind CSS](https://tailwindcss.com/)** 4.0 - Utility-first styling\n- **[Heroicons](https://heroicons.com/)** - Beautiful hand-crafted icons\n\n\u003cbr\u003e\n\n## :package: Installation\n\n### Prerequisites\n\n- **[Elixir](https://elixir-lang.org/)** 1.15+\n- **[Docker](https://www.docker.com/)** \u0026 Docker Compose\n- **[NVIDIA API Key](https://developer.nvidia.com/)** for AI features\n\n### Quick Start\n\n1. **Clone the repository**\n\n```bash\ngit clone https://github.com/gabrielmaialva33/jim-studio.git\ncd jim-studio\n```\n\n2. **Start infrastructure**\n\n```bash\ndocker-compose up -d\n```\n\nThis starts TimescaleDB (5432), Redis (6380), and Qdrant (6335/6336).\n\n3. **Install dependencies**\n\n```bash\nmix deps.get\n```\n\n4. **Configure environment**\n\n```bash\ncp .env.example .env\n```\n\nFill in your credentials:\n```env\nDATABASE_URL=postgresql://postgres:postgres@localhost:5432/jim_studio_dev\nREDIS_URL=redis://localhost:6380\nGUARDIAN_SECRET_KEY=your-secret-key-min-32-chars\nNVIDIA_API_KEY=your-nvidia-api-key\nR2_ACCESS_KEY_ID=your-r2-access-key\nR2_SECRET_ACCESS_KEY=your-r2-secret-key\nSTRIPE_SECRET_KEY=your-stripe-secret-key\n```\n\n5. **Setup database**\n\n```bash\nmix ecto.setup\n```\n\n6. **Start the server**\n\n```bash\nmix phx.server\n```\n\n7. **Open in browser**\n\nNavigate to [http://localhost:4000](http://localhost:4000)\n\n\u003cbr\u003e\n\n## :rocket: Usage\n\n### Student Experience\n\n1. Browse available **Courses** and enroll\n2. Access lesson materials and video content\n3. Record and upload your **Performance**\n4. Receive AI-powered analysis and feedback\n5. Track your progress and earn **Achievements**\n\n### Teacher Dashboard\n\n1. Create **Courses** with structured modules\n2. Upload lesson materials and recordings\n3. Review student performances\n4. Provide personalized feedback\n\n### Performance Analysis\n\n1. Student uploads audio recording\n2. System transcribes audio using NVIDIA Parakeet\n3. AI analyzes musical elements (timing, pitch, dynamics)\n4. Detailed feedback delivered via WebSocket\n5. Performance stored with vector embeddings for comparison\n\n\u003cbr\u003e\n\n## :hammer_and_wrench: Commands\n\n```bash\nmix deps.get        # Install dependencies\nmix ecto.setup      # Create, migrate, and seed database\nmix phx.server      # Start development server\nmix test            # Run test suite\nmix test path:line  # Run specific test\nmix format          # Format code\nmix credo           # Check code quality\nmix ecto.reset      # Reset database\nmix assets.build    # Build frontend assets\nmix precommit       # Run pre-commit checks\n```\n\n\u003cbr\u003e\n\n## :memo: License\n\nThis project is under the **MIT** license. See [LICENSE](./LICENSE) for details.\n\n\u003cbr\u003e\n\n## :handshake: Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the project\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cbr\u003e\n\n## :busts_in_silhouette: Author\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://avatars.githubusercontent.com/u/26732067\" alt=\"Maia\" width=\"100\" style=\"border-radius: 50%;\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Made with :heart: by \u003cstrong\u003eMaia\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"mailto:gabrielmaialva33@gmail.com\"\u003egabrielmaialva33@gmail.com\u003c/a\u003e\n  \u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"https://github.com/gabrielmaialva33\"\u003e@gabrielmaialva33\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/gabrielmaialva33/gabrielmaialva33/master/assets/gray0_ctp_on_line.svg?sanitize=true\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eJim Studio - Empowering Musical Growth Through AI\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u0026copy; 2017-present \u003ca href=\"https://github.com/gabrielmaialva33/\" target=\"_blank\"\u003eMaia\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmaialva33%2Fjim_studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielmaialva33%2Fjim_studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmaialva33%2Fjim_studio/lists"}