Backend (encoach_ai_course):
- workbook_attempt model + scoring + REST endpoints for student attempts
- dialogue_parser splits scripts by speaker, classifies gender, strips labels
- media_service: multi-voice TTS via Polly/ElevenLabs, ffmpeg concatenation,
manual media upload endpoint (audio/image/video) with size validation
- source_indexer: OCR fallback (pytesseract + pdf2image) for scanned PDFs,
page-streaming to stay under memory limit
- exercise_extractor + rag_context for RAG-grounded interactive workbooks
- course_plan_pipeline: v2 generator that grounds week material on indexed
sources and persists grounded_on_json metadata
- security: access rules for new models
Backend (encoach_lms_api):
- branches model + controller (entity-scoped LMS branches)
- classroom_ext + course_ext (assignment + section workflow)
- classrooms controller: students/teachers/assign-course endpoints
Frontend:
- StudentDashboard: surface assigned AI course plans alongside enrollments;
enrolled-courses stat now counts plans+enrollments
- InteractiveWorkbook + PlanReader components
- AdminCoursePlanDetail: media drawer with upload buttons (audio/image/video),
hidden file inputs, upload mutation
- AdminBranches page + sidebar entry
- coursePlan/lms/classrooms services + types updated for new endpoints
- i18n: studentDash.myCoursePlans/noCoursePlans (en + ar)
Infra & docs:
- odoo.conf: bump memory limits to 4G/5G for OCR + sentence-transformers
- .gitignore: ignore *.tsbuildinfo
- docs/ASSIGNMENT_WORKFLOW.{md,pdf}
- smoke_*.py end-to-end tests for assignment workflow, entity isolation,
course-plan RAG pipeline
Made-with: Cursor
116 lines
1.6 KiB
Plaintext
116 lines
1.6 KiB
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
*.egg-info/
|
|
*.egg
|
|
dist/
|
|
build/
|
|
eggs/
|
|
*.whl
|
|
|
|
# Virtual environments & conda
|
|
venv/
|
|
.venv/
|
|
env/
|
|
miniconda3/
|
|
.conda-envs/
|
|
.conda-pkgs/
|
|
|
|
# PostgreSQL data
|
|
pgdata/
|
|
pgdata_bak_*/
|
|
|
|
# Frontend build cache
|
|
frontend/.vite/
|
|
frontend/dist/
|
|
frontend/node_modules/
|
|
*.tsbuildinfo
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Environment / secrets — never commit
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
*.pem
|
|
*.key
|
|
|
|
# Frontend (pushed separately)
|
|
new_project/encoach_frontend_new_v1/
|
|
|
|
# Large archives / zips
|
|
*.zip
|
|
*.tar.gz
|
|
*.tar.bz2
|
|
|
|
# Logs
|
|
*.log
|
|
odoo.log
|
|
|
|
# Docker
|
|
*.tar
|
|
|
|
# Node modules
|
|
node_modules/
|
|
frontend/node_modules/
|
|
|
|
# Local dev artifacts
|
|
miniconda3/
|
|
pgdata/
|
|
.conda-envs/
|
|
.conda-pkgs/
|
|
|
|
# Odoo core source (cloned separately)
|
|
odoo/
|
|
|
|
# Local Odoo config and data
|
|
odoo.conf
|
|
/data/
|
|
|
|
# Session files
|
|
sessions/
|
|
|
|
# Filestore
|
|
filestore/
|
|
|
|
# Enterprise / extra addons (not part of this repo)
|
|
addons_enterprise/
|
|
addons_extra/
|
|
new_project/enterprise-17/
|
|
|
|
# Third-party modules
|
|
# OpenEduCat Community (LGPL-3) is vendored under `backend/openeducat_erp-19.0/`
|
|
# and must be tracked — `addons_path` in odoo.conf / odoo-docker.conf relies on
|
|
# it, and database dumps mark 12 openeducat_* modules as installed. Excluding
|
|
# this folder previously caused restores on the VPS to fail with "module not
|
|
# found" errors.
|
|
new_project/openeducat_erp-19.0/
|
|
new_project/openeducat_erp-19.0.zip
|
|
new_project/openeducate_enterprise-17.zip
|
|
new_project/encoach_frontend_new_v1-main.zip
|
|
|
|
# Local tools
|
|
new_project/.tools/
|
|
|
|
# Coverage / test output
|
|
.coverage
|
|
htmlcov/
|
|
.tox/
|
|
|
|
# Poetry
|
|
poetry.lock
|
|
|
|
# Odoo DB backups (local only, not source-controlled)
|
|
backups/
|