LabLens: AI-Assisted Programming Lab Report Reviewer
Review programming lab reports more systematically with AI-assisted analysis.
Overview
LabLens is a web application designed to assist programming laboratory assistants (asisten praktikum) in reviewing student practical reports. It combines PDF processing, structured report analysis, and a large language model (LLM) to identify potential omissions and inconsistencies in programming lab reports.
Instead of manually reviewing every report section from scratch, laboratory assistants can use LabLens to obtain an organized overview of a report, including missing sections, potential technical issues, prioritized findings, and a review score.
LabLens is built around the structure and needs of programming laboratory reports, rather than serving as a general-purpose chatbot.
The Problem
In programming courses, practical reports typically contain several interconnected components: an introduction, flowchart, pseudocode, source code, analysis, output, and conclusion.
Reviewing these components requires more than checking whether every section exists. Assistants may also need to identify blank or incomplete sections, compare pseudocode against the implementation, and determine whether the report provides sufficient evidence of the student's work.
When these checks are performed manually across many submissions, the process can become repetitive and difficult to standardize. Important omissions or inconsistencies may also be overlooked.
Students need feedback that helps them understand which parts of their reports require further attention, while assistants need a more organized way to identify potential problems.
Our Solution
LabLens provides an AI-assisted workflow for reviewing programming lab reports in PDF format.
Users upload a report, and the backend processes the document, identifies its relevant sections, and analyzes the extracted content. The system then presents the results in a structured report, helping users focus on areas that may require closer inspection.
The goal is not to replace human assessment. LabLens acts as a review assistant that helps surface potential issues and makes the initial inspection process more systematic.
How It Works
PDF Upload: The user submits a programming lab report through the web interface.
Document Processing: The backend uses PyMuPDF to extract document content for analysis.
Section Identification: The application organizes the report around its expected components: Introduction, Flowchart, Pseudocode, Code, Analysis, Output, and Conclusion.
AI-Assisted Analysis: The extracted report content is evaluated using an LLM through the Groq API. The analysis looks for potential omissions and inconsistencies that can be identified from the available document content.
Structured Results: LabLens presents the analysis as a review report containing findings, severity levels, missing sections, a score, a priority assessment, and a score breakdown.
Human Review: Laboratory assistants can use these findings to decide which sections deserve closer manual inspection.
Key Features
1. Structured PDF Report Analysis
LabLens processes programming lab reports and organizes their content into recognizable sections, giving reviewers a clearer starting point for inspection.
2. Missing and Apparently Empty Section Detection
The system flags sections that appear to be missing or empty, where detectable from the processed PDF content. This helps reviewers identify incomplete submissions that may need attention.
3. Pseudocode and Source Code Review
LabLens can flag potential inconsistencies between pseudocode and source code. For example, an analysis may identify differences in branching structures or a switch case that appears not to be assigned or handled as expected.
These findings are intended to guide further inspection, not to guarantee that every programming logic error will be detected.
4. Prioritized Findings
Potential issues are organized by severity, including LOW, MEDIUM, and HIGH. A report-level priority helps reviewers decide where to begin, while the individual findings provide more specific points to inspect.
5. Review Score and Score Breakdown
LabLens generates a structured score and score breakdown to summarize the analysis. These values serve as review aids rather than definitive academic grades or guarantees of report correctness.
Technology Stack
- Frontend: Next.js and React
- Backend: Python and FastAPI
- PDF Processing: PyMuPDF
- AI Analysis: Groq API with the LLM configured in the backend
- Frontend Deployment: Vercel
- Backend Infrastructure: Linux virtual machine (VM)
- Backend Connectivity: Cloudflare Tunnel
System Architecture and Deployment
LabLens uses a separated frontend and backend architecture.
The Next.js frontend is deployed on Vercel and is accessible at https://app.aspraklablens.me. The Python FastAPI backend runs on a Linux VM, while Cloudflare Tunnel provides the configured connection between the externally accessible API endpoint and the backend service. The backend communicates with the Groq API to perform AI-assisted analysis.
The resulting analysis is returned to the frontend and displayed to the user as a structured report.
This architecture separates the user interface, document processing, and AI analysis into distinct components, making the application easier to maintain and extend.
Target Users
Primary users
- Programming laboratory assistants who review student practical reports.
- Students who want to identify potential omissions and inconsistencies before submitting their reports.
Potential institutional users
- Programming courses and educational laboratories seeking more systematic report-review workflows.
Real-World Impact
LabLens aims to make programming lab report reviews more organized and consistent. By highlighting potential omissions and technical inconsistencies, it can help assistants direct their attention toward reports or sections that need closer inspection.
For students, structured findings can make it easier to understand which parts of a report may need improvement.
The project's longer-term potential is to support more effective feedback workflows in programming education. Its actual effect on review time, accuracy, and grading consistency would need to be evaluated through testing with laboratory assistants and real report submissions.
Responsible Use and Limitations
LabLens is an AI-assisted review tool, not an automated grading authority. Its findings and scores may be incomplete or incorrect, and the extracted content may not represent every aspect of a PDF accurately.
Flowchart interpretation, programming logic, and the correctness of a student's work may require human judgment. Final academic decisions should remain with the responsible instructor or laboratory assistant.
Log in or sign up for Devpost to join the conversation.