BigRedNotes is a course notes sharing app for Cornell. Users sign in with Google, upload notes (PDFs and images) tied to a course (e.g. CS 3410, PSYCH 1101), and browse or download notes by course. The file cards show the first page thumbnail of the PDF and you can click on it to fully access the file. The app is read-only for browsing—upload and files pages are protected and require sign-in.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19, Tailwind CSS 4 |
| Language | TypeScript 5 |
| Database | PostgreSQL with Prisma 6 |
| Auth | NextAuth.js 5 (Google OAuth) |
| File storage | AWS S3 (SDK v3, presigned URLs for private buckets) |
| PDF preview | pdfjs-dist (Mozilla PDF.js) for first-page thumbnails |
Home — Landing and sign-in.
Notes — Filter and view uploaded notes by course; image/PDF thumbnails and download links.
Upload — Pick a course (subject + number) and upload a file (PDF or image).
- Install dependencies:
npm install - Copy
.env.exampleto.env.localand setDATABASE_URL, and optionally AWS vars for S3. - Run migrations:
npx prisma migrate dev - (Optional) Seed courses:
npx prisma db seed - Run the dev server:
npm run dev— open http://localhost:3000


