Skip to content

anshika-guleria/PrepPal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 PrepPal

Real-Time Study Collaboration Platform

A full-stack real-time chat and video calling platform built for students.


✨ Features

  • 🔐 JWT Authentication (Login / Register)
  • 👥 Friend Requests & Suggestions
  • 💬 Real-Time 1–1 Chat using Socket.IO
  • 📎 File & PDF Upload (Cloudinary)
  • 📹 Peer-to-Peer Video Calling (WebRTC)
  • 🌗 Multiple Themes
  • 🔒 Protected Routes

🏗 Tech Stack

💻 Frontend

  • React (Vite)
  • TailwindCSS
  • Socket.IO Client
  • WebRTC
  • Axios
  • Context API

🖥 Backend

  • Node.js
  • Express.js
  • MongoDB + Mongoose
  • Socket.IO
  • JWT Authentication
  • Cloudinary
  • Multer

📂 Project Structure


PrepPal/
├─ backend/
│  ├─ src/
│  │  ├─ config/
│  │  │  ├─ db.js
│  │  │  └─ jwt.js
│  │  ├─ controllers/
│  │  │  ├─ auth.controller.js
│  │  │  ├─ chat.controller.js
│  │  │  └─ user.controller.js
│  │  ├─ lib/
│  │  │  └─ cloudinary.js
│  │  ├─ middleware/
│  │  │  ├─ auth.middleware.js
│  │  │  └─ upload.middlewear.js
│  │  ├─ models/
│  │  │  ├─ FriendRequest.js
│  │  │  ├─ Message.js
│  │  │  └─ User.js
│  │  ├─ routes/
│  │  │  ├─ auth.routes.js
│  │  │  ├─ chat.routes.js
│  │  │  └─ user.routes.js
│  │  ├─ socket/
│  │  │  └─ socket.js
│  │  └─ server.js
│  ├─ .env
│  ├─ package-lock.json
│  └─ package.json
│
├─ frontend/
│  ├─ public/
│  │  ├─ prep.png
│  │  └─ vite.svg
│  ├─ src/
│  │  ├─ api/
│  │  │  ├─ auth.js
│  │  │  ├─ axios.js
│  │  │  ├─ chat.js
│  │  │  ├─ friend.js
│  │  │  └─ user.js
│  │  ├─ assets/
│  │  │  ├─ login.png
│  │  │  ├─ react.svg
│  │  │  └─ register.png
│  │  ├─ components/
│  │  │  ├─ chat/
│  │  │  │  ├─ ChatList.jsx
│  │  │  │  ├─ ChatWindow.jsx
│  │  │  │  ├─ MessageBubble.jsx
│  │  │  │  └─ MessageInput.jsx
│  │  │  ├─ common/
│  │  │  │  ├─ Loader.jsx
│  │  │  │  └─ ThemeButton.jsx
│  │  │  ├─ layout/
│  │  │  │  └─ Navbar.jsx
│  │  │  ├─ routes/
│  │  │  │  └─ ProtectedRoute.jsx
│  │  │  ├─ users/
│  │  │  │  ├─ FriendCard.jsx
│  │  │  │  ├─ FriendRequestCard.jsx
│  │  │  │  └─ SuggestedUserCard.jsx
│  │  │  └─ video/
│  │  │     └─ VideoCall.jsx
│  │  ├─ context/
│  │  │  ├─ AuthContext.jsx
│  │  │  └─ AuthContextProvider.jsx
│  │  ├─ hooks/
│  │  │  ├─ useAuth.js
│  │  │  ├─ useFriends.js
│  │  │  ├─ usePeer.js
│  │  │  ├─ useSocket.js
│  │  │  └─ useUsers.js
│  │  ├─ pages/
│  │  │  ├─ Home.jsx
│  │  │  ├─ Login.jsx
│  │  │  ├─ Profile.jsx
│  │  │  └─ Register.jsx
│  │  ├─ services/
│  │  │  └─ authService.js
│  │  ├─ utils/
│  │  │  └─ call.js
│  │  ├─ App.jsx
│  │  ├─ index.css
│  │  └─ main.jsx
│  ├─ .env
│  ├─ eslint.config.js
│  ├─ index.html
│  ├─ package-lock.json
│  ├─ package.json
│  ├─ postcss.config.js
│  ├─ README.md
│  ├─ tailwind.config.js
│  └─ vite.config.js
│
├─ .gitignore
└─ README.md

🔐 Environment Variables

Backend (.env)

PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=

Frontend (.env)

VITE_API_URL=http://localhost:5000
VITE_SOCKET_URL=http://localhost:5000

⚙️ Installation

Clone the Repository

git clone https://github.com/ans53/PrepPal.git
cd PrepPal

Backend Setup

cd backend
npm install
npm run dev

Frontend Setup

cd frontend
npm install
npm run dev

Screenshots

Screenshot (1129) Screenshot (1130) Screenshot (1131) Screenshot (1132) Screenshot (1133) Screenshot (1134) Screenshot (1135) Screenshot (1136) Screenshot (1137) Screenshot (1138) Screenshot (1139) Screenshot (1140) Screenshot (1141) Screenshot (1142) Screenshot (1143) Screenshot (1144) Screenshot (1145) Screenshot (1146) Screenshot (1147) Screenshot (1148) Screenshot (1149) Screenshot (1150) Screenshot (1151) Screenshot (1152) Screenshot (1153) Screenshot (1154) Screenshot (1156) Screenshot (1157)

🎯 Purpose

PrepPal was built to provide students with a seamless environment to chat, collaborate, and prepare together in real-time.


⭐ If you like the project, consider giving it a star!

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages