An integrated platform for students to share knowledge, collaborate in real‑time, generate AI‑assisted study material, and engage through community posts & chat.
- Notes
- Upload notes (documents & images)
- AI‑powered note generation
- Retrieval of stored note assets
- Community / Posts
- Create posts & comment threads
- Realtime Chat
- Direct & group conversations
- Attachments (Cloudinary)
- Typing indicators, unread counts, pagination
- User & Auth
- JWT (cookie) authentication
- Email verification & password reset (OTP)
- Avatar upload & profile data
- Dashboard & UI
- Responsive layout (Tailwind)
- Animated landing & stats
backend/ # Express + MongoDB + Socket.IO + AI integration
frontend/ # React (Vite) SPA
Detailed docs:
- Backend routes & socket events:
backend/README.md - Frontend architecture & env:
frontend/README.md
| Layer | Tech |
|---|---|
| Frontend | React 18, Vite, Tailwind, Socket.IO client, Axios |
| Backend | Node.js, Express 4, Socket.IO, Mongoose |
| Database | MongoDB Atlas / MongoDB |
| Auth | JWT (HTTP-only cookie) |
| File/Media | Multer + Cloudinary |
| Nodemailer (SMTP) | |
| AI | OpenAI / Google Generative AI (extensible) |
Clone & install both packages.
git clone <repo>
cd StudySync
# Backend
cd backend
npm install
cp .env.example .env # fill values
npm run dev
# Frontend (new terminal)
cd ../frontend
npm install
cp .env.example .env # set VITE_BACKEND_URL
npm run dev
Open: http://localhost:5173 (default Vite) & backend typically on :5000.
See each sub README for full list. Minimum required:
Backend: MONGODB_URI, JWT_SECRET, CLOUDINARY_*, SMTP creds (for email features), AI key (for generation).
Frontend: VITE_BACKEND_URL (unless relying on dev proxy).
- Socket handshake authenticates via JWT cookie
- Rooms per conversation ID
- Events:
conversation:join,message:send,message:typingetc. (Full table in backend README)
- CORS restricted via env-specified origins
- HTTP-only, SameSite=None; Secure cookies recommended in production
- Sanitization of uploads handled by Cloudinary (virus scanning not yet implemented)
- Future: rate limiting & audit logging
- Presence indicators (online/offline)
- Message editing/deletion + reactions
- Offline caching / PWA support
- AI summarization of long chats & notes clustering
- Role-based access for moderated communities
- Fork & create feature branch
- Update/add tests if adding logic (future test harness)
- Submit PR with clear description
ISC (see package metadata) – adjust if needed for distribution.
Refer to module READMEs for full route & event documentation.