Inspiration

Our inspiration came from a problem our fellow classmates are struggling with right now in our classes; many of our professors no longer post their notes. Due to a new rule of the ADA, public institutions with populations over 50,000 are required to ensure all web content meets accessibility standards. The university has responded by requiring instructors to follow the stricter standard for the entire semester, even though the law itself only mandates a lower standard. The university aims to be a step ahead with tighter restrictions that are designed to make web material more accessible for people with physical and learning disabilities (e.g., blindness, deafness, dyslexia). This causes a big problem for instructors and professors, as the standard requires everything in a document to be properly marked as a "header", "body text", etc., so that screen readers (programs that read what is on the screen to you) can function properly. In math and many other scientific disciplines, the standard has been LaTeX to generate pdf files containing math equations for decades, but these files do not even remotely meet these standards, and formatting them can be time consuming, and as a result, many professors opt out of producing notes. It's in this change that we realized that inaccessible notes aren’t just an inconvenience; they’re a barrier. Students with disabilities face this every day. Our project makes notes accessible by design, so no one is excluded from learning.

What it does

Monogram aims to provide accessibility for all students while ensuring that no party will have to compromise on their education. Monogram takes in hand written pdf files and makes them extremely versatile in the classroom, allowing for live handwritten instruction, garnering engagement from the class to follow along. That pdf file is then processed with the power of AI OCR into a LaTeX file, the gold standard for digital notes. The LaTeX file is stored and presented in a LaTeX editor, allowing professors to actually go in and make corrections and edit their notes to their liking, before exporting it to a .tex, .pdf, or the most accessible format, .html, allowing distribution for students of all kinds and complying with the university's guidelines.

How we built it

We started with the question of what is the best way we can provide this to as many people as possible, and we reasoned to the idea that PDFs are widespread, easy to use, and had fast and easy Python support. After some research and testing, we found that Gemini was able to detect handwriting the best when the pdf was converted to an image and preprocessed. We chose a FastAPI backend with SQLAlchemy and PostgreSQL because we needed reliable, queryable databases for LaTeX files and user ownership rules, not just in‑memory state. That decision let us enforce access control at the data layer and keep the API contract stable even as storage evolves. On the frontend, we used Vue 3 with Vite to move fast on UI iteration while keeping performance snappy for an editor‑like workflow. The API endpoints are deliberately simple and consistent (/api/convert, /api/export, /api/tex) so the UI can focus on user flow rather than complex integration logic. We also leaned on environment‑based configuration and local dev ergonomics (Dockerized Postgres + auto‑create tables on startup) so we could demo quickly without fragile setup steps. The result is a clean separation of responsibilities, a stable data model, and a user experience that stays responsive even as we add features.

Challenges we ran into

Communicating our ideas and values was our first challenge to overcome, as developers who were oriented differently; we first had to find a middle ground of functionality and flair. We hit multiple library incompatibilities across the stack, which forced quick pivots and careful version pinning to keep the backend and frontend stable. We also ran into file format incompatibilities during conversion and export, which required extra normalization to keep output predictable. Managing our environment also quickly became difficult with large amounts of APIs and installs we would have to go through. Finally, coordinating our work led to merge conflicts when we both were, so we tightened our workflow with smaller commits and clearer ownership to keep momentum.

Accomplishments that we're proud of.'

We are proud to have built a complete full-stack application that converts traditionally inaccessible technical documents into accessible formats. Our system achieves over 90% accuracy when converting complex PDFs with mathematical notation and figures into LaTeX across multiple test files. By automating this process, we reduce the burden on instructors while helping ensure learning materials are usable by students with visual, auditory, and learning disabilities. This project addresses a real accessibility gap in higher education and demonstrates how AI can be used to make education more inclusive at scale. Additionally This is my first hackathon where I completed a project so that's always something to celebrate :)

What we learned

*How to read, understand, and integrate complex library and API documentation under tight time constraints

*How to properly call, authenticate, and connect external APIs in a production-style backend

*How to effectively prompt and leverage generative AI models for structured outputs like LaTeX

*How to design and connect a frontend and backend into a cohesive full-stack system

*How to use Codex's agentic AI to develop, refine, and validate tests during rapid development

What's next for Monogram

Next, we plan to improve performance by adding more advanced image preprocessing to provide Gemini with cleaner, higher-quality inputs, further increasing accuracy and speed. We also aim to build a simpler, more intuitive user interface and explore a publishing workflow that allows instructors to directly distribute accessible notes to students. These improvements move Monogram closer to being a practical, end-to-end accessibility tool for real classroom use.

Built With

Share this project:

Updates