Inspiration
Important university and institutional notices often contain critical information hidden inside long paragraphs, scanned PDFs, tables, and images. Students may need to search through an entire notice just to find an exam date, application deadline, registration fee, venue, or required action.
The problem becomes even more challenging in Bangladesh, where notices frequently mix Bengali and English. A missed date or misunderstood instruction can mean missing an important opportunity.
We wanted to build something that could turn these complicated notices into simple, understandable, and actionable information. That idea became NoticeLens.
What It Does
NoticeLens is a bilingual, accessibility-focused notice intelligence platform that transforms institutional notices into clear next steps.
Users can upload or scan a notice, and NoticeLens extracts its text using OCR. It then identifies important information and organizes it into:
- Simple summaries: Understand the main purpose of a notice without reading every paragraph.
- Important information: Extract dates, deadlines, fees, venues, eligibility requirements, and other key details.
- Action checklists: Understand what needs to be done and which information matters.
- Evidence-based extraction: View the original text behind extracted information instead of blindly trusting an automated result.
- Calendar export: Review extracted dates and export relevant events to a calendar.
- Notice Vault: Save and revisit previously processed notices.
- Accessibility features: Use high-contrast reading mode, text-to-speech, and a more readable presentation.
The platform supports Bengali, English, and mixed-language notices.
How We Built It
We built NoticeLens using React, TypeScript, and Vite, with Tesseract.js powering browser-based OCR.
Our approach focuses on making the processing pipeline practical, transparent, and privacy-conscious:
- Image Processing and OCR: Tesseract.js recognizes Bengali and English text directly from uploaded notice images.
- Notice Understanding: A structured extraction engine uses language-aware normalization, regular expressions, date parsing, and deterministic rules to identify important information.
- Evidence Mapping: Extracted information is connected to corresponding text spans so users can inspect the source of important details.
- User Verification: Users can edit the OCR transcript and have extracted information recalculated from the corrected text.
- Calendar and Storage: Reviewed dates can be exported as calendar events, while saved notices are stored locally using browser storage.
- Offline Support: Once the required OCR language models and application assets are cached, OCR can operate without an active internet connection.
We deliberately focused on browser-side processing and local storage rather than depending on a remote processing server for every notice.
Challenges We Faced
Building NoticeLens was not simply about recognizing text. The real challenge was turning imperfect OCR output into information people could confidently use.
1. Bengali and Mixed-Language OCR
Bengali conjunct characters, similar-looking characters, different numeral systems, and mixed Bengali-English text can make OCR recognition difficult. We worked on language-aware normalization and tested the recognition pipeline against both Bengali and English fixtures.
2. Extracting the Correct Information
A notice may contain several dates, fees, and locations. Not every date is a deadline, and not every amount is a registration fee. We developed structured extraction rules to distinguish important fields and reduce incorrect interpretations.
3. Evidence and Trust
We learned that an extracted answer is not necessarily a correct answer. NoticeLens therefore connects extracted fields to source-text evidence and allows users to verify or correct the transcript. We also developed separate benchmark measurements for extraction accuracy, evidence coverage, and evidence matching.
4. Offline OCR
Running OCR entirely in the browser introduced challenges involving Web Workers, language model downloads, IndexedDB, caching, and worker restoration. We implemented local caching so that previously downloaded language models can be reused for offline recognition.
5. Making Information Accessible
The extracted information needs to be understandable to people who may not be comfortable reading long, dense notices. We worked on high-contrast mode, speech support, responsive layouts, and a clearer action-oriented interface.
What We Learned
Throughout this project, we learned that building a useful AI-powered application requires much more than integrating an OCR library.
We learned how to build browser-based OCR pipelines, handle bilingual text, design deterministic information extraction, measure character and word error rates, and evaluate structured extraction against annotated data.
Most importantly, we learned that trustworthiness matters more than impressive-looking automation. A system should show where its information came from, communicate uncertainty, and allow users to correct mistakes rather than presenting every extracted result as unquestionably correct.
We also learned the importance of empirical testing. We created a controlled six-document synthetic pilot benchmark, measured OCR and extraction performance, added regression tests, and repeatedly improved the system based on the failures we discovered.
What's Next?
NoticeLens is a foundation for making institutional information more accessible.
Our next goal is to evaluate it on a larger collection of real-world university and institutional notices, including low-quality scans, camera photographs, complex tables, and more diverse Bengali-English formats.
We also want to improve deadline classification, expand support for additional institutions, and make the application even more useful for students with different accessibility needs.
Our vision is simple: nobody should miss an important opportunity just because an institutional notice was difficult to understand.
Built With
- browser-based
- css3
- eslint
- html5
- indexeddb
- javascript
- ocr
- react
- service-workers
- tesseract.js
- typescript
- vite
- vitest
- web-speech-api
- web-workers
