Built for educators who shouldnβt have to choose between providing meaningful feedback and having time to teach.
π Teacher Dashboard: https://dpassist-edu.streamlit.app/
| Teacher Dashboard | Submissions Dashboard |
|---|---|
![]() |
![]() |
π₯ Watch Summary Video
The cloud-hosted version of DPAssist is currently deployed and processing real student portfolio submissions.
Digital portfolio assignments are among the most valuable β and most time-consuming β assignments a teacher can give. A single class of 25 students, each submitting a multi-page portfolio, can easily require 10β15 hours of reading, grading, and writing individual feedback.
Teachers who want to give students the chance to revise and improve before a deadline face an impossible tradeoff:
DPAssist solves this by automating the feedback loop while keeping the teacher in control of every final grade.
DPAssist is a cloud-hosted portfolio evaluation system consisting of:
Teachers may also run the system locally if desired.
From the moment a student submits a portfolio link via Google Forms, the system takes over:
The teacher uploads a rubric PDF once. After that, the workflow is automated.
Most AI grading tools produce vague feedback that sounds encouraging but provides little instructional value.
DPAssist enforces strict evaluation rules:
If validation fails, the submission is flagged rather than producing inaccurate feedback.
| Phase | Timing | Recipient | Contains |
|---|---|---|---|
| Student Feedback | Before deadline | Student | Evidence-based improvement feedback without scores |
| Teacher Draft | After deadline | Teacher | Full rubric scores, summary comments, and grading recommendations |
By withholding scores before the deadline, students focus on improving their work rather than negotiating points.
Teachers upload existing PDF rubrics with no required reformatting.
Gemini extracts:
A regex-based fallback parser provides additional resilience when AI extraction is unavailable.
Many schools restrict IMAP access.
DPAssist automatically falls back from Gmail draft creation to direct teacher email delivery when necessary, preventing silent failures.
Student submits Google Form Portfolio Link (via Google Form)
β
βΌ
βββββββββββββββββββββββ
β Google Sheets β
ββββββββββ¬βββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββ
β Render Background Worker β
β background_service.py β
ββββββββββββ¬ββββββββββββββββββ
β
ββββββ΄ββββββ
β β
βΌ βΌ
ββββββββββββ ββββββββββββ
β Scraper β β Rubrics β
ββββββ¬ββββββ ββββββ¬ββββββ
β β
βββββββ¬βββββββ
βΌ
βββββββββββββββββββββββ
β Gemini Evaluator β
β + Validator β
βββββββββββ¬ββββββββββββ
β
ββββββ΄ββββββ
β β
βΌ βΌ
Student Teacher
Feedback Draft
| File | Purpose |
|---|---|
| background_service.py | Submission monitoring and processing |
| teacher_ui.py | Streamlit teacher dashboard |
| evaluator.py | Gemini AI evaluation and validation |
| rubric_parser.py | PDF rubric extraction |
| rubric_manager.py | Rubric storage and retrieval |
| scraper.py | Portfolio content extraction |
| email_service.py | Student feedback email delivery |
| gmail_drafts.py | Teacher draft creation |
| google_sheets.py | Submission and rubric storage |
| config.py | Configuration management |
| orchestrator/ | Evaluation pipeline |
| schemas/ | Structured validation models |
| Layer | Technology |
|---|---|
| AI Evaluation | Google Gemini |
| Teacher Dashboard | Streamlit Cloud |
| Background Worker | Render |
| Storage | Google Sheets |
| Email Delivery | Gmail SMTP / Gmail Drafts |
| Scraping | BeautifulSoup4, Requests |
| Runtime | Python 3.9+ |
Production deployment uses:
No local installation is required for teachers.
Advanced users may run DPAssist locally using Python.
See TEACHER_SETUP.md for complete installation and deployment instructions.
pip install -r requirements.txt
cp .env.example .env
python teacher_ui.py
DPAssist has been tested with actual student portfolio submissions at Charlotte Latin School.
Sample units successfully processed include:
The system tracks processed submissions to prevent duplicate evaluations and duplicate email delivery.
DPAssist is currently deployed and processing live student submissions.
Production environment:
The production system consists of a Streamlit Cloud teacher dashboard and a Render-hosted background worker connected through Google Sheets.
Successfully verified in production:
The AI evaluation layer enforces the following constraints:
MEETS / PARTIALLY_MEETS
β Must include evidence quote(s)
NOT_YET
β Must include zero evidence quotes
MEETS + LOW CONFIDENCE
β Rejected by validator
HIGH CONFIDENCE
β Allowed only when evidence is complete
All rubric criteria must be evaluated exactly once.
Validation failures stop the workflow rather than allowing incomplete or inaccurate feedback to be sent.
Proprietary β Educational Use Only
DPAssist β because teachersβ time is better spent teaching.