Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A full-stack note-sharing platform for students — upload, discover, and manage college notes effortlessly.

NestJS Expo React 19 PostgreSQL S3 Tailwind


✨ What is NotesBuddy?

NotesBuddy is a student-friendly platform where you can upload, search, and download college notes — organized by college, course, subject, semester, and session. Whether you're on your phone or laptop, NotesBuddy has you covered with both a mobile app (Expo/React Native) and a web app (React + Vite), powered by a NestJS backend.

What you can do  
📤 Upload notes (PDFs) for your courses 🔍 Search & filter notes by college, course, subject & more
📱 Access from mobile (Android/iOS) or web 🔐 Secure JWT-based authentication
🛡️ Virus scanning on every upload 📊 Analytics & admin dashboard

🧱 Project Structure

NotesBuddy/
│
├── notes-buddy-backend/          # 🚀 NestJS REST API
│   ├── src/
│   │   ├── auth/                 # Registration, login, JWT
│   │   ├── user/                 # User profile management
│   │   ├── note/                 # Note CRUD & file handling
│   │   ├── college/              # College management
│   │   ├── course/               # Course management
│   │   ├── search/               # Full-text note search
│   │   ├── analytics/            # Usage stats & metrics
│   │   ├── admin/                # Admin dashboard logic
│   │   ├── storage/              # AWS S3 file operations
│   │   ├── scanner/              # ClamAV virus scanning
│   │   ├── email/                # Nodemailer email service
│   │   ├── crypto/               # Encryption utilities
│   │   ├── database/             # TypeORM & PostgreSQL setup
│   │   └── middleware/           # JWT & admin guards
│   ├── test/                     # E2E tests
│   └── docker-compose.yml        # Postgres + MinIO + ClamAV
│
├── notes-buddy-expo/             # 📱 Mobile App (Expo / React Native)
│   ├── app/
│   │   ├── (auth)/               # Login & Signup screens
│   │   ├── (tabs)/               # Home, My Notes, Search, Upload, Profile
│   │   └── preview.tsx           # Note preview screen
│   ├── components/               # Reusable UI components
│   ├── context/                  # Auth state management
│   ├── services/                 # Axios API client, endpoints, downloads
│   └── constants/                # Theme colors
│
└── notes-buddy-frontend/         # 🌐 Web App (React + Vite + Tailwind)
    ├── src/
    │   ├── pages/                # Home, Login, Signup, Dashboard, etc.
    │   ├── components/           # Navbar, RouteGuards, Modals
    │   ├── context/              # Auth state management
    │   ├── services/             # Axios API client & endpoints
    │   └── types/                # Shared TypeScript definitions
    ├── public/                   # Static assets
    └── vercel.json               # Vercel deployment config

🛠️ Tech Stack

Component Framework / Tools
Backend NestJS v11, TypeORM, PostgreSQL, JWT, AWS S3, ClamAV, Nodemailer
Mobile App Expo SDK 54, React Native 0.81, Expo Router, Axios
Web Frontend React 19, Vite 7, Tailwind CSS v4, React Router v7, Axios, Lucide
Infrastructure Docker Compose (Postgres + MinIO + ClamAV), Vercel

🚀 Getting Started

Prerequisites

  • Node.js >= 18
  • PostgreSQL (or run via Docker Compose)
  • AWS S3 credentials (or use MinIO locally)

Quick Start

# 1. Clone & enter the project
git clone <repo-url>
cd NotesBuddy

# 2. Start backend dependencies (Postgres, MinIO, ClamAV)
cd notes-buddy-backend
docker-compose up -d

# 3. Install & run the backend
npm install
npm run start:dev          # → http://localhost:8080

# 4. In a new terminal — Web frontend
cd notes-buddy-frontend
npm install
npm run dev                # → http://localhost:5173

# 5. In another terminal — Mobile app
cd notes-buddy-expo
npm install
npx expo start             # → Scan QR with Expo Go

📸 Features at a Glance

  • 🔐 Auth — Register, login, JWT-based protected routes
  • 🏫 Colleges & Courses — Hierarchical organization of academic content
  • 📄 Notes — Upload PDFs with subject, topic, semester metadata
  • 🔎 Search — Smart filtering by college, course, subject, semester, session
  • 📊 Analytics — Track note views, downloads, and user engagement
  • 👑 Admin Panel — Manage users, notes, colleges, courses
  • 🛡️ Security — Virus scanning (ClamAV), password hashing (Bcrypt), input validation
  • 📱 Cross-platform — Native mobile experience + responsive web app

Made with ❤️ for students, by students.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages