Yamen Ahmad 82ec3debcc feat: QA fixes, new APIs (assignments, rubrics, custom exams), Generation page enhancements
- Fix ELAI video generation (correct render endpoint, script splitting for 60s limit)
- Fix speaking script generation error handling and empty response display
- Add custom exam list API (GET /api/exam/custom/list)
- Add assignments REST API (list, create, get)
- Add rubrics REST API (list, create)
- Enhance Generation page: dynamic exam structures, auto-module selection, preview dialog, audio player
- Improve submit feedback with exam ID and status in toast notifications
- Fix ExamsListPage to show both custom exams and exam sessions
- Connect RubricsPage to backend API with fallback data
- Add Dockerfile, docker-compose.yml, requirements.txt for deployment
- Fix placement, grading, scoring, and auth controllers
- Add ErrorBoundary component for frontend resilience
- Add QA report and credentials documentation

Made-with: Cursor
2026-04-12 14:26:39 +04:00

EnCoach Backend — v2

Branching Workflow

This repo is connected to the staging server via a Git post-receive hook. All deployment is automatic — but only after code review approval.

How to contribute

  1. Never push directly to main — branch protection will block it.
  2. Create a feature or fix branch:
    git checkout -b feature/your-feature-name
    
  3. Develop, commit, and push your branch:
    git push origin feature/your-feature-name
    
  4. Open a Pull Request on Gitea targeting main.
  5. Request review from devops (Talal).
  6. Once approved and merged, the staging server rebuilds and redeploys automatically.

Environment

The .env file is not committed. It lives only on the staging server at /opt/encoach/backend-v2/.env. Contact the team lead if you need a local copy of the environment variables.

Required files (push with your code)

  • Dockerfile — used by the staging server to build the container image
  • docker-compose.yml — defines the backend service (port mapping, env vars, etc.)

Pipeline test Mon Mar 30 19:42:50 +04 2026

Description
No description provided
Readme 375 MiB
Languages
Python 70.8%
HTML 22.1%
JavaScript 3.9%
SCSS 2.1%
CSS 1.1%