Virtual Study Buddy is an online platform designed for collaborative studying among students. It features integrated AI-powered study resources from various educational platforms, real-time note-taking, community and private chat rooms, an event calendar for scheduling, and a resource-sharing hub.
-
AI-Powered Study Resources
- Personalized study resources curated from YouTube, Udemy, GeeksforGeeks (GFG), Coursera, and Skillshare, TutorialsPoint.
-
Real-Time Note-Taking
- Collaborative note-taking during study sessions with text editing, formatting, and sharing capabilities.
-
Community and Private Chat
- Forums, chat rooms, or discussion boards for various study topics.
- Community chat and private chat options.
-
Event Calendar
- Scheduling and tracking events for users.
-
Resource-Sharing Hub
- Centralized platform for sharing educational resources, including uploading, browsing, and downloading articles, videos, tutorials, and study materials.
-
User Management
- Storage and management of user details.
- React.js: Library for building user interfaces.
- Redux: State management for React applications.
- Styled-Components: Styling for React components.
- Recoil: State management.
- React Router: For routing.
- MUI (Material-UI): UI component library.
- Socket.io Client: Real-time communication.
- React Big Calendar: Calendar component.
- React Player: Media player.
- React Icons: Icon library.
- React Loader Spinner: Loading spinner.
- Emoji Picker React: Emoji picker component.
- React Copy to Clipboard: Copy to clipboard functionality.
- TipTap: Rich text editor.
@tiptap/react
@tiptap/starter-kit
@tiptap/pm
@tiptap/extension-bold
@tiptap/extension-color
@tiptap/extension-font-family
@tiptap/extension-heading
@tiptap/extension-highlight
@tiptap/extension-image
@tiptap/extension-link
@tiptap/extension-list-item
@tiptap/extension-text-align
@tiptap/extension-text-style
@tiptap/extension-underline
- Node.js: Server-side runtime environment.
- Express.js: Web application framework for Node.js.
- MongoDB: NoSQL database for data storage.
- Mongoose: ODM for MongoDB, handling data modeling.
- Socket.io: Real-time communication for features like chat and note-taking.
- Passport.js: Authentication middleware for Node.js.
- Google API: Various integrations including authentication.
- Gemini API: For accessing cryptocurrency market data.
- Nodemailer: Email sending.
- Puppeteer: Headless browser for scraping.
- Axios: HTTP client.
- Bcrypt.js: Password hashing.
- Cors: Cross-Origin Resource Sharing.
- Dotenv: Environment variables management.
- Express-Session: Session management.
- Googleapis: Google APIs integration.
- Jsonwebtoken: JWT for authentication.
- Morgan: HTTP request logger.
- Node-Cron: Scheduled tasks.
- Nodemon: Development tool for auto-restarting server.
- Slugify: URL slugs generation.
- Zod: Validation library.
- Course Collection: Storing course-related data.
- ChatMessages: Storing private chat messages.
- CommunityMessages: Storing community chat messages.
- Community: Storing community-related data.
- Events: Storing user events.
- Notes: Storing notes.
- Folders: Organizing notes into folders.
- Topics: Categorizing notes and discussions.
- Users: Storing user details.
-
Clone the repository:
git clone https://github.com/Lagnajit09/StudyBuddy.git cd StudyBuddy
-
You can remove all other files exceept STUDYBUDDY and SB-Server folders.
-
Install frontend dependencies:
cd STUDYBUDDY npm install
-
Install backend dependencies:
cd ../SB-Server npm install
-
Set up environment variables:
- Create a
.env
file in theserver
directory and add the required environment variables (e.g., MongoDB URI, API keys).
- Create a
CONN_STRING=mongodb+srv://<username>:<password>@<cluster-url>/<database>
JWT_SECRET_KEY=<your-jwt-secret-key>
GEMINI_API=<your-gemini-api-key>
ADMIN_EMAIL=<your-admin-email>
Google OAuth2 Credentials
CLIENT_ID=<your-google-client-id>
CLIENT_SECRET=<your-google-client-secret>
REDIRECT_URI=https://developers.google.com/oauthplayground
REFRESH_TOKEN=<your-google-refresh-token>
Google Client Credentials for Passport.js
GOOGLE_CLIENT_ID=<your-google-client-id>
GOOGLE_CLIENT_SECRET=<your-google-client-secret>
GOOGLE_CALLBACK_URL=http://localhost:5173/auth/google/callback
# Session Key
SESSION_KEY=<your-session-key>
- Run the application:
- Start the backend server:
node server.js
- Start the frontend application:
cd ../STUDYBUDDY npm run dev
- Start the backend server:
- Courses: Navigate to the course page to browse, find, and view course details.
- Chat: Use the community chat for public discussions and private chat for one-on-one conversations.
- Notes: Create, organize, and share notes in real-time.
- Events: Schedule and track events using the event calendar.
- Resources: Upload, browse, and download educational resources from the resource-sharing hub.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.