Back to Projects

NapkinNotes

Active

AI-Powered EdTech Platform

Overview

NapkinNotes is a full-stack AI-powered platform that turns raw class notes into organized, searchable study resources. Built for Princeton Day School students, it combines optical character recognition, Claude-driven summarization, and a peer-to-peer social layer into a single collaborative learning ecosystem.

Students upload notes in any format — handwritten scans, PDFs, Word documents, or plain text — and the platform extracts, processes, and summarizes the content automatically. Course-level organization with test-date-driven auto-locking keeps study materials structured, and a student marketplace with in-person meetup scheduling extends the platform beyond notes.

Under the hood: 100+ Flask routes, 22 SQLAlchemy models, AWS S3 storage with presigned URLs, PostgreSQL, Redis-backed rate limiting, OWASP-aligned audit logging, and a full admin panel with user impersonation, DB backup/restore, and site-wide lockdown controls.

Core Features

OCR Extraction

Google Cloud Vision API and PyMuPDF extract text from handwritten scans, printed documents, and complex PDF layouts. python-docx handles Word files; extracted text is persisted for search and summarization.

AI Summarization

Claude API (Anthropic SDK) generates concise, structured summaries of extracted note content, distilling key concepts and definitions for efficient studying.

Multi-Format Upload

Supports images, PDFs, DOCX, and TXT files with batch uploads per note. Files are stored on AWS S3 and served via short-lived presigned URLs.

Social Layer

Follow classmates, like and comment on notes, bookmark study materials, and browse a personal activity feed.

Course & Test Scheduling

Notes are organized by course. Admins register test dates; the platform automatically locks course notes and unlocks them two days before each test to prevent academic-integrity issues.

Site-Wide Lockdown

SiteLock lets admins freeze platform access during sensitive windows (e.g. school exams) with a custom message and scheduled unlock date.

Marketplace

Peer-to-peer student marketplace with categories, photo galleries, listing favorites, and seller-buyer messaging. Listings can be marked sold and moderated from the admin panel.

In-Person Meetup Scheduling

Buyers propose a time and pick from curated on-campus meetup locations. Sellers accept, counter, or complete transactions, with email notifications at each step.

Authentication

Dual auth via Authlib Google OAuth and email/password registration with bcrypt hashing, token-based email verification, and Flask-Login session management.

Admin Panel

Full admin suite: user management, note/comment moderation, marketplace oversight, course and test scheduling, DB backup/restore, user-alias impersonation mode, and OWASP-aligned audit logging of every sensitive action.

Tech Stack

Backend

Flask 3.1.3SQLAlchemy 2.0.43Flask-Migrate 4.1PostgreSQLRedis

AI & Processing

Claude (Anthropic 0.40)Google Cloud Vision 3.7PyMuPDF 1.24python-docx 1.1

Cloud & Delivery

AWS S3 (boto3)Flask-MailPydantic 2.11presigned URLs

Security & Auth

Authlib (Google OAuth)Flask-LoginFlask-WTF (CSRF)Flask-JWT-ExtendedFlask-Limiterbcrypt 4

Frontend

Jinja templatesBootstrap 5.3Font Awesome 6.4AOS 2.3

Architecture

22 SQLAlchemy models organized across 5 domains power the entire platform.

Users & Social Graph

2 models

UserUserFollow

Accounts with OAuth + email-verification state and the follower graph.

Notes & Content

6 models

NoteNoteDocumentPhotoTagBookmarkSearchHistory

Core note entity with multi-file attachments, tags, bookmarks, and search-history tracking.

Engagement

3 models

CommentLikeActivity

Peer feedback surface: comments, likes, and a unified activity feed.

Courses & Access Control

4 models

CourseCourseTestSiteLockAuditLog

Course catalog, test-schedule-driven auto-locking of notes, full site lockdown support, and OWASP-aligned audit trail.

Marketplace

7 models

CategoryListingListingPhotoMarketplaceMessageFavoriteMeetupLocationMeetupRequest

Student-to-student marketplace with photo galleries, messaging, favorites, curated meetup points, and structured meetup-request workflow.

Development Timeline

Aug 2025

Ideation & Design

Identified the need for a centralized note-sharing platform at PDS. Designed the database schema and wireframed the core user experience.

Aug – Sep 2025

Development Sprint

Built the full-stack Flask application from scratch: OCR ingestion, Claude-powered summarization, auth, social graph, and admin tooling.

Sep 2025 – Present

Launch & Growth

Deployed to production at napkinnotes.net with 80+ regular users and 170+ uploaded notes. Continuous iteration based on user feedback, performance optimization, and feature expansion including the student marketplace and in-person meetup scheduling.