Skip to content

A web app where students can browse and share educational resources like PDFs, notes, and tutorials – built using React.js by Venkat Jaswanth.

Notifications You must be signed in to change notification settings

Codeunia/StudySync-Student-Resource-Sharing-App

Repository files navigation

📚 StudySync – Student Resource Sharing Platform

React Node.js Express.js MongoDB

🎯 A centralized platform for students to share and discover study resources

StudySync is a responsive web application that enables students to find, explore, and share valuable study materials including PDFs, notes, videos, and helpful links.

🌐 Live Demo

Live Demo
🚀 https://study-sync-student-resource-sharing.vercel.app

🚀 Features

📖 Core Features

  • 📤 Resource Sharing: Upload and share PDFs, images, videos, and links
  • 📝 Post Creation: Share thoughts, projects, and study updates
  • 💾 Data Persistence: All content saved with reliable backend storage
  • 🖼️ Image Preview: Automatic preview for uploaded files and image URLs
  • 🔗 Smart Link Detection: URLs and emails become clickable automatically

⚡ Interactive Features

  • 📁 File Upload: Support for multiple file types with drag-and-drop
  • 🔄 Real-time Updates: Instant synchronization across sessions
  • 🛡️ Error Handling: Graceful error messages and retry functionality
  • 📱 Responsive Design: Optimized for all device sizes
  • 🔍 Search & Filter: Advanced content discovery tools

🔮 Features to be Added

👥 Profile & Social Features

  • 🎓 Education Info Collection: Gather and display academic background, institution, and graduation details
  • 🛠️ Skills Management: Add, edit, and showcase personal skills with proficiency levels
  • 👤 Profile Customization: Edit profile picture, display name, and bio information
  • 🔗 Clickable User Profiles: Browse and view other users' complete profiles
  • 📊 Profile Analytics: Track profile views, engagement, and activity metrics

🚀 Advanced Features

  • 💬 Direct Messaging: Private communication between users
  • 🔔 Notification System: Real-time alerts for activities and updates
  • ⭐ Rating & Reviews: Rate and review shared resources
  • 🏷️ Advanced Tagging: Categorize content with custom tags
  • 📈 Learning Analytics: Track study progress and resource usage
💡 Contributors are welcome to help implement these features!

🛠️ Technology Stack

Frontend

  • React.js - UI Framework
  • React Icons - Icon Library
  • React Select - Form Components
  • CSS3 - Styling
  • Vite - Build Tool

Backend

  • Node.js - Runtime Environment
  • Express.js - Web Framework
  • MongoDB - Database
  • Mongoose - ODM
  • Multer - File Upload

Authentication

  • Passport.js - Authentication
  • JWT - Token Management
  • Session Management

🔗 API Endpoints

Authentication

POST /api/auth/register
POST /api/auth/login
POST /api/auth/logout
GET  /api/auth/profile

Posts

GET    /api/posts
POST   /api/posts
PUT    /api/posts/:id
DELETE /api/posts/:id

Resources

GET    /api/resources
POST   /api/resources
PUT    /api/resources/:id
DELETE /api/resources/:id

File Upload

POST /api/upload
GET  /api/uploads/:filename

✨ Key Features Explained

💾 Data Persistence

  • Secure Storage: All data stored in MongoDB
  • Session Management: Persistent user sessions
  • Real-time Sync: Live updates across all clients
  • Backup & Recovery: Automated data backup

🔗 Smart Link Detection

  • URL Recognition: Auto-detect and linkify URLs
  • Email Links: Convert emails to mailto links
  • Social Media: Detect and preview social links
  • Custom Patterns: Support for various URL formats

🖼️ Advanced File Handling

  • Drag & Drop: Intuitive file upload interface
  • Image Preview: Instant preview for image files
  • File Validation: Type and size checking
  • Cloud Storage: Secure file storage solution

🚀 Getting Started

Prerequisites

Node.js >= 16.x
npm >= 8.x
MongoDB >= 5.x

Installation

# Clone repository
git clone https://github.com/Codeunia/StudySync-Student-Resource-Sharing-App.git

# Navigate to project
cd StudySync-Student-Resource-Sharing-App

# Install dependencies
npm install

Environment Setup

# Copy environment file
cp .env.example .env

# Configure your variables
MONGODB_URI=mongodb://localhost:27017/studysync
JWT_SECRET=your_secret_key
PORT=5000

Running the Application

# Start backend server
npm run server

# Start frontend (new terminal)
npm run dev

📂 Project Structure

StudySync-Student-Resource-Sharing-App/
├── 📁 backend/                 # Backend API server
│   ├── 📁 config/             # Configuration files
│   ├── 📁 middleware/         # Custom middleware
│   ├── 📁 models/            # Database models
│   ├── 📁 routes/            # API routes
│   └── 📄 server.js          # Entry point
├── 📁 src/                    # Frontend source code
│   ├── 📁 components/        # Reusable components
│   ├── 📁 pages/            # Page components
│   ├── 📁 styles/           # CSS stylesheets
│   ├── 📁 hooks/            # Custom React hooks
│   └── 📁 utils/            # Utility functions
├── 📁 public/               # Static assets
└── 📄 package.json         # Project dependencies

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


👨‍💻 Built By

Venkat Jaswanth
Venkat Jaswanth
Lead Developer

⭐ If you found this project helpful, please give it a star!

Made with ❤️ for the student community

About

A web app where students can browse and share educational resources like PDFs, notes, and tutorials – built using React.js by Venkat Jaswanth.

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •