This project is an AI-assisted report processing pipeline. It takes student exam files, extracts marks and metadata, caches the results locally, and generates charts and presentations.
Core Python logic for the main local workflow.
orchestrator.pycontrols the processing pipeline and server-side state.docling_converter.pyconverts source documents into markdown.local_mem.pymanages the on-disk cache and assignment history.setup_agent.pyprepares or refreshes the generated agent project.wait_for_server.pywaits for the local server to become ready.
Model Context Protocol servers used by the pipeline.
file_watcher.pymonitors input files and validates the scan set.vision_extractor.pyextracts structured student data from documents and images.plot_renderer.pyturns extracted data into charts and presentation assets.
Generated Google ADK agent project.
This looks like a template agent scaffold with its own app code, tests, deployment terraform, and evaluation assets. It is separate from the report-processing pipeline and appears to be the general agent workspace used by agents-cli.
Second generated agent project, likely the agent that handles scanning or report extraction.
It mirrors my-agent/ with app code, tests, deployment files, and eval data. The root launcher can sync this folder through agents/setup_agent.py, so it is part of the generated agent tooling rather than the handwritten pipeline.
Source files placed here for processing.
The batch launcher creates this folder if needed. It is the incoming report folder for PDFs, images, or related inputs.
Generated results are written here.
This is the destination for charts, reports, and other exported artifacts.
Persistent local cache and history.
This stores processed exam data, cached extraction results, and past assignment history so repeated runs can skip work.
Static HTML pages for the browser interface.
description_page.htmlanddescription_page_enhanced.htmlprovide the analysis/configuration interface.history_page.htmlandhistory_page_enhanced.htmlshow prior runs and cached results.
High-level tests for the local workflow.
test_local_workflow.py exercises the cache, orchestrator payload building, extraction schema, and renderer behavior.
run.batis the Windows launcher. It checks Python, creates the working folders, installs dependencies if needed, starts the orchestrator, and opens the browser UI.factory_reset.pyclearsInput/,Output/, andLocal_Mem/, then resets the JSON state files.analyze_instruction.jsonstores the current analysis request or processing instructions.All_stud_details.jsonappears to hold the student dataset or historical student records.project_info.mdis a human-readable project summary and presentation brief.requirements.txtdefines the Python dependencies for the local pipeline.
- A user places files in
Input/or uploads them through the UI. run.batstarts the orchestrator inagents/orchestrator.py.mcp_servers/file_watcher.pyvalidates the input set.docling_converter.pyconverts documents to markdown when needed.vision_extractor.pyextracts structured marks and student details.local_mem.pycaches the result inLocal_Mem/.plot_renderer.pygenerates charts and output artifacts inOutput/.- The UI pages in
UI/display progress and history.
The repository is split into three layers:
- The root contains launch scripts, state files, and user-facing configuration.
agents/andmcp_servers/contain the actual pipeline logic.my-agent/andscan-agent/are generated ADK agent projects and deployment scaffolding.
One important detail: the project uses both uppercase and lowercase folder names in different places, such as Input/ versus input/, and Output/ versus output/. That works on Windows but can be brittle on case-sensitive systems.