v1.0 roadmap: stable personal FINKI course assistant

Aperta
#28 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@mahmutmft ci sta già lavorando.

Dal 4/11/2026.

  • #52 di @mahmutmft — aperta

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
28/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, nodejs

Direzione di ricerca

Start with docs/ROADMAP.md and choose one focused child issue, such as #51 for contribution instructions or #45 for synthetic fixtures; follow that issue’s acceptance criteria. This coordination issue is complete when all required v1 task criteria and release gates are verified, while optional #36 may remain open.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area:docs priority:high type:chore

Goal

Track all remaining pre-v1 implementation and release gates from docs/ROADMAP.md. This is a coordination issue; choose one focused child task rather than implementing the roadmap in one PR.

Verified baseline

Merged: CAS/login diagnostics, semester filters (#8), section discovery (#12), Moodle HTML (#16) and text-PDF reading (#18), saved poll choices (#20), private attendance preferences (#22), group-homework/term linking (#24/PR #25), assignment descriptions/dates (#26/PR #27). Package version is still 0.1.0; this is not a tagged v1 release.

v1 promise

Connect a supported local MCP client; discover/read supported course content; search accessible course text/PDFs with citations; inspect deadlines; ask about weekly labs and view a read-only calendar. Results expose source, scope, freshness and uncertainty. Moodle stays read-only; only explicit local preference writes are permitted. Retrieval requires no extra model API key.

Work breakdown

Scheduling and coursework
  • #29 — Read supported Moodle announcement forums with dates and citations
  • #30 — Store explicit private lab-group and term preferences
  • #31 — Extract source-backed lab timetable entries with effective dates (depends on #30)
  • #32 — Expand bounded lab recurrence and alternating teaching weeks (depends on #31)
  • #33 — Resolve lab cancellations, moved sessions and conflicting evidence (depends on #29, #32)
  • #34 — Provide cross-course weekly lab answers with scheduled/none/unknown states (depends on #30, #32, #33)
  • #35 — Add a read-only weekly and monthly lab calendar view (depends on #34)
  • #42 — Read supported quiz availability and deadline metadata without question content
  • #43 — Aggregate upcoming coursework deadlines separately from lab presentation slots (depends on #42)
Discovery, retrieval and durable local use
  • #37 — Discover Moodle folder contents with bounded read-only traversal
  • #38 — Design and implement private local cache isolation and lifecycle
  • #39 — Build bounded lexical indexes of supported course text and text PDFs (depends on #38, #37)
  • #40 — Add cross-course lexical search with evidence and scope reporting (depends on #39)
  • #41 — Refresh changed/deleted sources with resumable bounded jobs (depends on #38, #39)
Quality, contributors and release gates
  • #44 — Document and lock stable MCP tool, error and provenance contracts
  • #45 — Create a versioned synthetic MK/EN/SQ compatibility corpus
  • #46 — Add a reproducible retrieval benchmark with at least 30 queries (depends on #45, #40)
  • #47 — Audit request, pagination, response and worker resource limits
  • #48 — Perform independent v1 authorization, privacy and untrusted-content review (depends on #38, #41, #44)
  • #49 — Validate clean Windows installation and supported MCP client recovery
  • #50 — Establish one version source, changelog and reviewed v1 release procedure
  • #51 — Make first-time fork and pull-request contribution instructions accurate
Optional increment (not a v1 release blocker)
  • #36 — Export reviewed lab occurrences as an ICS file (optional v1 increment) (depends on #35)

How to contribute

Start with #51 (contribution guide) or #45 (synthetic fixtures) for a first contribution. Ready tasks use help wanted; tasks needing earlier contracts use status:blocked. Comment on the chosen issue before starting, agree the approach, fork from master and submit a focused PR. Use synthetic data and offline tests; never share faculty credentials, student rosters or private course materials. No assignee or deadline is implied.

Suggested immediate feature: #29 (read announcement forums). Scheduling follows groups/timetables → recurrence/exceptions → weekly answers → calendar. Retrieval proceeds independently through folders/storage → indexing/search → refresh/benchmark.

Release exit criteria

All 22 required task acceptance criteria verified (optional #36 excluded), complete retrieval/scheduling fixtures, at least 30 benchmark queries with target >=90% answerable top-five recall and valid citations, supported clean Windows/client checks, account isolation and resource bounds tested, required CI passing and independent review recorded. Revalidate final contracts and compatibility after all feature changes. A human explicitly approves exact version/tag and release notes; no publication occurs from issue/milestone closure.

Outside v1

Hosted/multi-user services, other institutions, semantic/vector search, guaranteed OCR, external calendar synchronization, automatic monitoring/reminders, arbitrary crawling, submissions and forum posting. Keep missing/unread evidence unknown; absence of search results is never proof of no lab.

Lingua principale
JavaScript
Stelle
0
Fork
0
Merge medio
1h 20m
PR unite (30g)
14

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mahmutmft/courses-mcp

Tutte le issue di mahmutmft/courses-mcp

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.