A Centralized Academic Resource Sharing Platform for College Students and Faculty
Features β’ Tech Stack β’ Getting Started β’ Workflow β’ Contributing
StudyShare is a modern, centralized web-based platform designed to revolutionize how college students and faculty share and access academic materials. By providing a structured environment for uploading, organizing, and discovering study resources, StudyShare promotes collaborative learning and ensures knowledge continuity across batches.
In today's academic environment, students struggle with:
- Scattered Resources: Study materials spread across WhatsApp groups, personal devices, and limited Google Drives
- Lack of Centralization: No formal platform for faculty-student resource sharing
- Quality Concerns: Inconsistent and unverified materials from informal sources
- Accessibility Issues: Juniors struggle to find reliable resources from seniors and faculty
- Last-Minute Chaos: Difficulty finding materials when needed most
StudyShare addresses these challenges by providing a single source of truth for all academic resources.
- Multi-Format Support: Upload notes, PYQs, PDFs, PPTs, and documents
- Faculty Integration: Professors can share lecture slides and official materials
- Easy Categorization: Organize by subject, semester, and department
- Intelligent Search: Find materials quickly with AI-assisted search
- Content Ranking: Like system highlights the most useful resources
- Quality Filtering: Popular materials rise to the top based on student preference
- Authenticated Login: Secure registration using college credentials
- Role-Based Access: Separate permissions for students, faculty, and administrators
- JWT Authentication: Stateless and secure authentication mechanism
- Gemini AI Integration: Smart content recommendations and intelligent assistance
- Enhanced Search: AI-driven content discovery
- Future-Ready: Foundation for advanced AI features
- Cross-Batch Sharing: Seniors help juniors with handwritten notes and resources
- Faculty Contributions: Direct access to verified faculty materials
- Community Driven: Students contribute and benefit collectively
- Admin Verification: Optional moderation for quality control
- Relevance Checks: Ensures uploaded content meets platform standards
- Misuse Prevention: Protects against inappropriate content
| Technology | Purpose |
|---|---|
| Next.js | React framework for server-side rendering and optimal performance |
| React.js | Component-based UI library for building interactive interfaces |
| TypeScript | Type-safe JavaScript for better code quality and maintainability |
| Tailwind CSS | Utility-first CSS framework for responsive, modern design |
| shadcn/UI | Reusable and accessible UI component library |
| Technology | Purpose |
|---|---|
| Node.js | Efficient, non-blocking server runtime |
| Express.js | Lightweight framework for RESTful API development |
| TypeScript | Enhanced code reliability and developer experience |
| Technology | Purpose |
|---|---|
| MongoDB | NoSQL database for flexible, hierarchical data storage |
| Firebase | Cloud services for real-time updates and future enhancements |
| Cloudinary | Secure, scalable cloud storage for PDF documents and files |
| Technology | Purpose |
|---|---|
| JWT (JSON Web Tokens) | Secure, stateless authentication and authorization |
| Technology | Purpose |
|---|---|
| Gemini AI | Intelligent features, content recommendations, and smart search |
graph TD
A[User Registration] -->|College Credentials| B[Secure Login]
B --> C{User Role}
C -->|Student| D[Browse/Upload Materials]
C -->|Faculty| E[Upload Lecture Slides]
C -->|Admin| F[Content Moderation]
D --> G[Select Subject/Semester/Category]
E --> G
G --> H[Upload File to Cloudinary]
H --> I[Store Metadata in MongoDB]
F -->|Verify| I
I --> J[Materials Available for Discovery]
J --> K[Students Browse & Download]
K --> L[Like Helpful Materials]
L --> M[Ranking System Updates]
M --> N[Top Materials Rise to Top]
N --> O[Continuous Knowledge Base Growth]
-
π User Registration & Login
- Users register with verified college credentials
- Secure authentication via JWT tokens
- Role assignment (Student/Faculty/Admin)
-
π€ Material Upload
- Upload notes, PYQs, or study materials
- Categorize by subject, semester, and department
- Files securely stored in Cloudinary
-
β Content Moderation (Optional)
- Admin reviews uploads for relevance
- Quality assurance and misuse prevention
- Approved content becomes publicly accessible
-
π Access & Interaction
- Students browse organized materials
- Download resources for offline study
- Like helpful materials to support peers
-
β Ranking System
- Materials ranked by likes and engagement
- Most useful content appears at the top
- Quality resources get maximum visibility
-
π Continuous Improvement
- New materials added every semester
- Knowledge base grows year after year
- Cross-generational learning support
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or cloud instance)
- Cloudinary Account (for file storage)
- Gemini AI API Key (for AI features)
-
Clone the repository
git clone https://github.com/satendra03/study-share.git cd study-share -
Install dependencies
# Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
-
Environment Configuration
Create
.envfiles in both frontend and backend directories:Backend
.env:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret GEMINI_API_KEY=your_gemini_api_key FRONTEND_URL=http://localhost:3000
Frontend
.env.local:NEXT_PUBLIC_API_URL=http://localhost:5000
-
Run the application
# Start backend server cd backend npm run dev # Start frontend (in a new terminal) cd frontend npm run dev
-
Access the application
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:5000
- Frontend:
studyshare/
βββ frontend/ # Next.js frontend application
β βββ app/ # Next.js app directory
β βββ components/ # React components
β β βββ ui/ # shadcn/UI components
β β βββ ... # Custom components
β βββ lib/ # Utility functions
β βββ public/ # Static assets
β βββ styles/ # Global styles
β
βββ backend/ # Express.js backend application
β βββ src/
β β βββ models/ # MongoDB schemas
β β βββ routes/ # API routes
β β βββ controllers/ # Business logic
β β βββ middleware/ # Authentication & validation
β β βββ config/ # Configuration files
β β βββ utils/ # Helper functions
β βββ server.js # Entry point
β
βββ README.md # Project documentation
- β Browse and download study materials by subject and semester
- β Upload and share personal notes with peers
- β Like helpful resources to boost their visibility
- β Access handwritten notes from seniors
- β Save time finding quality materials
- β Share official lecture slides and resources
- β Contribute verified study materials
- β Direct communication channel with students
- β Support structured learning
- β Manage users and roles
- β Moderate uploaded content
- β Add/edit subjects and semesters
- β Maintain platform quality
- β Delete inappropriate content
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/materials- Get all materials (with filters)GET /api/materials/:id- Get single materialPOST /api/materials- Upload new materialPUT /api/materials/:id- Update materialDELETE /api/materials/:id- Delete materialPOST /api/materials/:id/like- Like/unlike material
GET /api/subjects- Get all subjectsPOST /api/subjects- Create subject (Admin only)PUT /api/subjects/:id- Update subject (Admin only)DELETE /api/subjects/:id- Delete subject (Admin only)
GET /api/users- Get all usersPUT /api/users/:id/role- Update user roleDELETE /api/users/:id- Delete user
POST /api/ai/recommend- Get AI recommendationsPOST /api/ai/search- AI-powered search
- JWT Authentication: Secure token-based authentication
- Role-Based Access Control: Granular permissions for different user types
- Input Validation: Server-side validation for all user inputs
- Secure File Upload: Cloudinary handles file security and validation
- Environment Variables: Sensitive data protected via environment configuration
- Rate Limiting: Protection against brute force attacks
- Helmet.js: Security headers for Express apps
- CORS Configuration: Controlled cross-origin requests
# Run backend tests
cd backend
npm test
# Run frontend tests
cd frontend
npm test- π± Mobile application (iOS & Android)
- π Real-time notifications for new uploads
- π¬ Discussion forums for each subject
- π Analytics dashboard for popular materials
- π― Personalized content recommendations
- π Multi-language support
- π§ Email notifications for updates
- π Gamification with contributor badges
- π Rich text editor for notes
- π Advanced search with filters
- π User statistics and contributions tracking
- π¨ Theme customization (Dark/Light mode)
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Write clear commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
This project is licensed under the MIT License - see the LICENSE file for details.
- Satendra Kumar Parteti - Initial work - GitHub Profile
See also the list of contributors who participated in this project.
- Thanks to all contributors who help make StudyShare better
- Inspired by the need for better academic resource sharing
- Built with modern technologies for scalability and performance
- Special thanks to the open-source community
For support, email satendrakumarparteti.work@gmail.com or open an issue on GitHub.
If you find a bug or have a feature request, please create an issue on GitHub with:
- Clear description of the problem
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Screenshots (if applicable)
For detailed documentation, please visit:
- Live Demo: https://studyshare-demo.vercel.app
- Documentation: https://docs.studyshare.com
- API Status: https://status.studyshare.com
Made with β€οΈ for Students, by Students
β Star this repository if you find it helpful!
