A free, student-driven platform for sharing class notes, study guides, and academic resources at the University of Maryland.
Live at: terp-notes.org | terp-notes.vercel.app
I graduated from UMD and remember the struggle: hunting for study materials before exams, relying on fragmented GroupMe chats, and watching resources get lost semester after semester. Notes that could help hundreds of students were trapped in individual Google Drives.
I built Terp Notes to solve this problem—a centralized, searchable repository where Terps help Terps succeed. Whether you need CMSC330 lecture notes, MATH141 practice problems, or HIST156 study guides, it's all here. Free. Always.
This platform is built for students, by a student (now alum), with zero profit motive. Just Terps helping Terps.
Note: Terp Notes is an independent platform—not affiliated with, endorsed by, or officially connected to the University of Maryland.
- Instant Search - Find notes by class code, professor, or keyword (no page reloads)
- Smart Filtering - Filter by major, class, semester, year, and professor with intuitive icons
- Multiple View Options - Grid view, List view, or Grouped view for different preferences
- My Files Toggle - Quickly view and manage only your uploads
- Drag & Drop Upload - Bulk upload up to 50 files at once (up to 5GB each!)
- Direct S3 Uploads - Files upload directly to cloud storage (no size limits)
- File Preview - PDFs and images open inline; download warnings for archives
- Virus Scanning - Every file scanned by 70+ antivirus engines (VirusTotal)
- Professional UI - Clean, modern interface with custom icons and UMD-themed colors
- Mobile Responsive - Works seamlessly on phones, tablets, and desktops
- Email Notifications - Confirmations for uploads, deletions, and account changes
- Category System - Organize files by type (Exam, Lecture Notes, Homework, etc.)
- File Metadata - Rich information including size, upload date, and contributor
- UMD.io Course Data - Real-time course and professor information powered by UMD.io API
- Optimized Cache System - Fast autocomplete with 5,000+ courses and 7,000+ professors cached locally
- UMD Email Required - Only verified
@umd.edu/@terpmail.umd.eduemails can join - File Type Whitelisting - Only safe academic files (PDFs, docs, images, code, zips)
- Real-time Virus Scanning - VirusTotal integration with auto-deletion of threats
- Download Warnings - Alerts for compressed files with additional security tips
- Rate Limiting - Protection against spam and abuse
- File Reporting - Flag inappropriate content for admin review
- Account Deduplication - Prevents multiple accounts for the same student
- Platform Announcements - Stay updated with color-coded banners (info/warning/success)
- Uploader Attribution - See who contributed each file with clear user identification
- File Metadata - Class, professor, semester, year, and descriptions
- Duplicate Detection - System prevents re-uploading the same file
- File Categories - Organized by academic content type with emoji indicators
- Google Docs Integration - Connect your Google Drive to import/export notes seamlessly
- Notion Integration - Sync your Notion workspace with Terp Notes
- Microsoft OneNote Integration - Link your OneNote notebooks for easy access
- Obsidian Integration - Connect your Obsidian vault (coming soon)
- OAuth 2.0 Security - Secure authentication with encrypted token storage
- One-Click Connect - Simple OAuth flow to authorize your accounts
- Real-Time Status - See connection status and connected account information
- Moderation Dashboard - Review reported files with one-click actions
- User Management - Change roles, set view-only mode, or remove accounts
- Usage Statistics - Track total users, files, and storage with visual cards
- Dynamic Announcement System - Create color-coded banners with matching button colors
- Role-Based Access Control - Admin, Contributor, and Viewer roles
- Search & Filter Users - Find users by name, email, or upload activity
- File Reporting System - Community-driven moderation with admin oversight
- Client-Side Filtering - Instant results without server roundtrips using in-memory cache
- File Deduplication - SHA-256 hashing saves storage costs
- Database Indexing - Fast queries even with thousands of files
- Session Persistence - MongoDB-backed sessions with JWT + cookies for reliable auth
- OAuth 2.0 Integration - Secure token management for Google, Microsoft, and Notion APIs
- Encrypted Token Storage - Integration credentials encrypted with AES-256-CBC
- Vercel Analytics - Real-time traffic monitoring and performance insights
- Cron Jobs - Automated background tasks (virus scanning, cleanup)
- Serverless Architecture - Scales automatically with demand (works on Vercel and localhost)
- No File Size Limits - Direct S3 uploads support files up to 5GB
- Professional Icon System - Custom SVG icons with transparent backgrounds
- UMD Color Scheme - Consistent branding with university colors
- UMD.io API Integration - Real-time course and professor data with intelligent caching
- Optimized Cache System - 5,000+ courses and 7,000+ professors cached for instant filtering
- Environment-Aware Routing - Smart route registration for both Vercel and localhost
- Resend Email Service - Reliable email delivery for verifications and notifications
Find resources in seconds - No more digging through GroupMe or emailing classmates Filter by your specific class - CMSC330, MATH141, HIST156, etc. Safe & virus-scanned - Every file checked by 70+ antivirus engines Free forever - No paywalls, no ads, no subscription fees Beautiful interface - Professional design with intuitive navigation
Help fellow Terps succeed - Your notes could help hundreds of students Build your reputation - Your username is credited on every upload Easy to upload - Drag & drop, bulk upload, auto-fill metadata Secure & private - UMD email required, virus scanning enabled Organized categories - Your files are properly categorized and searchable
Centralized knowledge base - No more lost resources Semester-to-semester continuity - Help future students succeed Class-specific organization - Designed around UMD's course structure Student-run - Built by Terps, for Terps, with no corporate interests Professional appearance - Clean, modern interface that reflects UMD pride
| Layer | Technology | Purpose |
|---|---|---|
| Backend | Node.js + Express | Serverless API & routing |
| Database | MongoDB Atlas | File metadata, user management & session storage |
| Storage | AWS S3 | Scalable file storage with direct uploads |
| Auth | JWT + Sessions (MongoStore) + bcrypt | Secure authentication & password hashing |
| Frontend | EJS + Vanilla JS + CSS | Server-side rendering with no build step |
| Security | VirusTotal API | 70+ antivirus engines scan every file |
| Resend API | Modern email delivery for verifications & notifications | |
| Integrations | OAuth 2.0 (Google, Microsoft, Notion) | Secure note-taking app connections |
| Course Data | UMD.io API | Real-time course & professor information |
| Deployment | Vercel | Serverless functions, cron jobs, analytics |
| Monitoring | Vercel Analytics & Speed Insights | Performance tracking |
| Icons | Custom SVG/PNG | Professional icon system with transparency |
Sign up with your @umd.edu or @terpmail.umd.edu email → Receive verification link → Activate account
Filter by major (CMSC, MATH, etc.) → Select class (CMSC330) → Search by professor, semester, or keywords → Choose your preferred view (Grid, List, or Grouped)
Drag & drop your notes → Add class info & description → Choose category → Upload directly to S3 → Files are virus scanned automatically
Navigate to Integrations → Connect Google Docs, Notion, OneNote, or Obsidian → Import notes from external apps or export Terp Notes to your preferred tools
Click any file → Preview PDFs inline or download → Help others by uploading your own materials
Class-Based Organization Students think in courses ("I need CMSC330 notes"), not file types. The entire platform is organized around UMD's class code structure.
Client-Side Filtering Load file metadata once, filter in-browser. Instant search without server delays.
Direct S3 Uploads Files upload directly to AWS S3, bypassing Vercel's 4.5MB limit. Supports files up to 5GB!
Background Virus Scanning Files upload immediately (fast UX), then scan asynchronously. No waiting for security checks.
File Deduplication Same file uploaded by multiple users? Stored once in S3, referenced multiple times in MongoDB. Saves storage costs.
Professional Icon System Custom SVG icons with transparent backgrounds create a polished, professional appearance.
UMD-Themed Design Color scheme and styling that reflects University of Maryland branding and pride.
Email Normalization
@umd.edu and @terpmail.umd.edu route to the same inbox, preventing duplicate accounts.
Role-Based Moderation Instead of banning violators, revoke upload privileges ("Viewer" mode). Encourages rehabilitation over punishment.
OAuth Integration System Secure OAuth 2.0 flow for connecting note-taking apps. Tokens encrypted with AES-256-CBC and stored in MongoDB. Supports Google Drive, Microsoft OneNote, Notion, and Obsidian.
Optimized Course Cache Intelligent caching system for UMD.io course data. 5,000+ courses and 7,000+ professors cached locally for instant autocomplete and filtering. Cache updates automatically when stale.
Environment-Aware Routing Smart route registration that works seamlessly on both Vercel (serverless) and localhost (traditional Node.js). Ensures reliability across all deployment environments.
- UMD email (for verification)
- Name & username (for attribution)
- Uploaded files (stored on AWS S3)
- File metadata (class, professor, semester, description)
- Browsing history
- Personal conversations
- Credit card info (platform is 100% free)
- Third-party tracking (only Vercel Analytics for performance)
- All passwords hashed with bcrypt (10 rounds)
- JWT tokens for stateless auth (24hr expiration)
- HTTPS enforced (Vercel auto-provisioned SSL)
- Rate limiting on all endpoints (prevents brute force)
- Session cookies are httpOnly & secure
- File virus scanning with auto-deletion
- Download warnings for potentially risky file types
Full details: Privacy Policy
Dashboard: Instant search, multi-select filters, drag & drop upload, virus scan status, professional icons
Admin Panel: User management, file moderation, usage statistics, dynamic announcement system
Mobile Responsive: Works perfectly on phones, tablets, and desktops with UMD-themed design
Integrations Page: Connect Google Docs, Notion, OneNote, or Obsidian with secure OAuth 2.0 authentication
Terp Notes supports academic success, not academic dishonesty.
- Lecture notes and study guides
- Practice problems and solutions (non-graded)
- Textbook summaries and chapter reviews
- Professor-approved materials
- Past exam study guides (with permission)
- Current exams or quizzes
- Graded homework/projects
- Copyrighted materials without permission
- Answer keys for ongoing assignments
- Any content that violates UMD's academic integrity policy
Violations are taken seriously and may be reported to the UMD Office of Student Conduct.
Live Production: terp-notes.org
Hosting: Vercel (Serverless functions, auto-scaling, free tier) Storage: AWS S3 (Direct client uploads, no file size limits) Database: MongoDB Atlas (Free tier supports 512MB storage)
Deployment Requirements:
- MongoDB connection string (with session storage support)
- AWS S3 bucket with CORS configured
- Resend API key for email notifications
- (Optional) VirusTotal API key for scanning
- (Optional) OAuth credentials for integrations:
- Google OAuth (Client ID & Secret)
- Microsoft OAuth (Client ID & Secret)
- Notion OAuth (Client ID & Secret)
- OAuth State Secret (for secure OAuth flow)
- Integration Encryption Key (for token encryption)
- BASE_URL environment variable (for OAuth redirects)
This platform is community-driven. Here's how you can help:
For Students:
- Upload quality study materials
- Report inappropriate content
- Share Terp Notes with classmates
For Developers:
- Report bugs via GitHub Issues
- Suggest features
- Submit pull requests
Follow UMD's academic integrity guidelines when contributing.
Need help? Visit Contact & Support
Questions about:
- Account issues → Contact Form
- Bugs or errors → GitHub Issues
- Feature requests → GitHub Discussions
- Direct support → Via contact form (we respond within 24-48 hours)
- Privacy Policy: terp-notes.vercel.app/privacy
- Terms of Service: terp-notes.vercel.app/terms
- License: MIT (see LICENSE file)
Disclaimer: Terp Notes is an independent, student-run platform. We are not affiliated with, endorsed by, or officially connected to the University of Maryland or any educational institution.
Paramraj Singh Machre UMD Alum | Full-Stack Developer | Building tools to help students succeed
- Portfolio: devcorpwebsite.vercel.app
- LinkedIn: linkedin.com/in/pmachre
- GitHub: github.com/bennytobby
Built with 💙 for the Terp community
Ready to access thousands of study materials?
Join Terp Notes Now now updat
- Sign up with your UMD email
- Verify your account (check inbox/spam)
- Browse thousands of notes, guides, and resources
- Upload your own materials to help fellow Terps
- Succeed together!
Fear the Turtle! 🐢
Questions? Feature ideas? Reach out via the contact form.
