Skip to content

feat: add flashcard game feature#966

Open
HarshithaKollipara wants to merge 11 commits into
vicharanashala:mainfrom
HarshithaKollipara:flashcard-feature
Open

feat: add flashcard game feature#966
HarshithaKollipara wants to merge 11 commits into
vicharanashala:mainfrom
HarshithaKollipara:flashcard-feature

Conversation

@HarshithaKollipara

Copy link
Copy Markdown

No description provided.

MeenakshiArunsankar and others added 11 commits April 14, 2026 09:15
Replace nested quantifier regex /^(https?:\/\/\S+\s*)+$/ with
/^https?:\/\/\S+(\s+https?:\/\/\S+)*\s*$/ in validateQuestionText()
to eliminate exponential backtracking (CWE-1333 / ReDoS).

Introduced in: 3b8c5d4 (Feat: Crowd Question submission)
…charanashala#923)

Co-authored-by: Nandan Prabhudesai <nandanprabhudesai@gmail.com>
* feat: add crowdsourced question pipeline module

* chore: normalize file permissions for crowdsourced module

* Potential fix for pull request finding 'CodeQL / Inefficient regular expression'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* chore: add fetch single course enrollment data and watch hours query inside cohort repository - tempRes()

* add query to fetch item wise watch hour data of enrolled users in a cours

* feat: add feedback submission data of a course

* feat: add query to fetch enrollment wise feedback submissions

* Cap GuruSetu watch-time in feedback export query

---------

Co-authored-by: Abiram-k <abiramk0107@gmail.com>
* ci: strengthen PR merge testing pipeline

- fix(linter.yml): change target branch from 'main' to 'combined-updates';
  split into lint-backend and lint-frontend jobs with path conditions

- feat(jest-test.yml): add pull-requests:write permission and post vitest
  coverage summary as PR comment via davelosert/vitest-coverage-report-action

- feat(pr-checks.yml): new workflow - TypeScript tsc --noEmit type-check for
  backend (Node 23) and frontend (Node 20) on every PR to combined-updates

- feat(codeql.yml): new workflow - CodeQL security scan (javascript-typescript)
  on PRs and pushes to combined-updates

- feat(pr-smoke-e2e.yml): new workflow - smoke.spec.ts against staging on PRs;
  skips if STAGING_FRONTEND_URL secret absent; uploads report as artifact

- feat(commit-msg): add husky commit-msg hook running commitlint
- feat(package.json): add commitlint packages and config-conventional preset

- fix(.gitignore): add root .firebase/ to ignored paths

* fix(pr-smoke-e2e): remove secrets context from job if condition

secrets context is not available in job-level if expressions;
use vars.STAGING_FRONTEND_URL (repository variable) instead

* fix(codeql): upgrade CodeQL actions v3 to v4

* chore(codeql): remove custom CodeQL workflow in favour of GitHub default setup

* fix(backend): resolve pre-existing TypeScript errors caught by pr-checks

- fix(cohortsRepository): close missing } on resetHpforCohort body; add
  resetHpForStudent stub method (was called by service but not implemented)
- fix(ICohortsRepository): declare resetHpForStudent in interface
- fix(cohortsService): remove stray tempRes() debug call from listCohorts;
  declare local variables (courseVersionName, instructorEnrollments,
  enrolledVersionIds, enrolledCohortIds) that were used but never declared
- fix(ISettings): add optional crowdsourcedQuestionSubmissionEnabled field
  used by StudentQuestionService

* Update .github/workflows/pr-smoke-e2e.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(vite.config.ts): add coverage reporters json-summary, json, html for vitest coverage report action

Agent-Logs-Url: https://github.com/vicharanashala/vibe/sessions/ff1c6382-230a-4b77-827d-22dd0be5b748

Co-authored-by: MeenakshiArunsankar <45432051+MeenakshiArunsankar@users.noreply.github.com>

* Update .github/workflows/jest-test.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…ping or encoding (vicharanashala#945)

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* fix: Add quick fix to clamp progress to 100 percentage

* Port stashed changes to new branch

* Progress summary quiz scores updated and progress percent greater than 100 fixed

* Potential fix for pull request finding 'CodeQL / Incomplete string escaping or encoding'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: handle 404 (already stopped) gracefully in stopItem

- Skip retries in useStopItem when server returns 404
- Treat 404 as idempotent success at all stopItem call sites
  (quiz.tsx, video.tsx, article.tsx, hooks.ts)
- Fix duplicate const progress declaration in CourseCard.tsx

---------

Co-authored-by: Rishav <rishavkumar.nit@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* fix: Add quick fix to clamp progress to 100 percentage

* Port stashed changes to new branch

* Progress summary quiz scores updated and progress percent greater than 100 fixed

* Potential fix for pull request finding 'CodeQL / Incomplete string escaping or encoding'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: handle 404 (already stopped) gracefully in stopItem

- Skip retries in useStopItem when server returns 404
- Treat 404 as idempotent success at all stopItem call sites
  (quiz.tsx, video.tsx, article.tsx, hooks.ts)
- Fix duplicate const progress declaration in CourseCard.tsx

* fix: skip previous item check in stop API when linear progression is disabled

---------

Co-authored-by: Rishav <rishavkumar.nit@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* fix: Add quick fix to clamp progress to 100 percentage

* Port stashed changes to new branch

* Progress summary quiz scores updated and progress percent greater than 100 fixed

* Potential fix for pull request finding 'CodeQL / Incomplete string escaping or encoding'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: handle 404 (already stopped) gracefully in stopItem

- Skip retries in useStopItem when server returns 404
- Treat 404 as idempotent success at all stopItem call sites
  (quiz.tsx, video.tsx, article.tsx, hooks.ts)
- Fix duplicate const progress declaration in CourseCard.tsx

* fix: skip previous item check in stop API when linear progression is disabled

* fix: track actual play seconds and expire idle watch sessions

- Add duration and isExpired fields to IWatchTime interface
- Frontend tracks real play seconds (not wall-clock) via playedSecondsRef
- Idle timer (5 min): auto-expires paused sessions with isExpired=true and resets for next play
- watchedSeconds and isExpired sent on every stopItem call
- stopItemTracking stores duration and isExpired on the watch record
- isValidWatchTime: expired sessions return false; prefer duration over wall-clock diff
- Analytics aggregations prefer duration field, fall back to endTime-startTime for old records
- Expired sessions excluded from all watch hour totals
- Re-watches now tracked: startItem always creates a new watch record

* fix: avoid unsafe currentCourse assertion in stop guard

---------

Co-authored-by: Rishav <rishavkumar.nit@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added frontend Changes to the frontend of the project dependencies Modifications to any frontend or backend external dependencies backend labels Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend dependencies Modifications to any frontend or backend external dependencies frontend Changes to the frontend of the project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants