Live demo: https://studymateplus.vercel.app
StudyMatePlus is a student-focused academic resource platform built to help learners find everything they need for exam preparation in one place. It brings together syllabus material, previous year question papers, feedback from other students, analytics, and community-driven study tools in a clean React experience backed by a Node.js API.
Students often spend too much time searching across multiple websites, folders, and group chats for reliable academic material. StudyMatePlus reduces that friction by organizing study resources around the way students actually prepare for exams.
The platform currently focuses on:
- Syllabus browsing by university, department, and semester
- Previous year question papers with downloadable reports
- Student exam feedback and difficulty insights
- Notes, study resources, and contribution workflows
- Authenticated pages for a more personalized experience
- Supporting pages such as FAQ, privacy, about, contact, profile, and analytics
- Responsive landing page with clear navigation into study resources
- Protected routes for authenticated users
- Syllabus and PYQ browsing experiences tailored for academic planning
- Feedback collection to capture exam difficulty, important topics, and preparation tips
- Analytics views for understanding resource trends
- Mind map, tasks, profile, and contribution sections for student productivity
- Light/dark theme support in the client UI
- React 19
- React Router
- Framer Motion
- Chart.js / react-chartjs-2
- React Icons
- Axios
- Node.js
- Express
- MongoDB with Mongoose
- JWT authentication
- Helmet and rate limiting for basic hardening
- Multer for file uploads
- PDF generation utilities
StudyMatePlus/
βββ client/ # React frontend
βββ server/ # Express / MongoDB backend
βββ tools/ # Utility scripts
βββ README.md
βββ CONTRIBUTING.md
βββ CODE_OF_CONDUCT.md
βββ LICENSE
- Node.js 18 or newer
- npm 9 or newer
- MongoDB connection string
git clone https://github.com/<your-username>/StudyMatePlus.git
cd StudyMatePlusInstall backend and frontend dependencies separately:
cd server
npm install
cd ..\client
npm installCreate a .env file in server/ and add the required values.
Recommended variables:
PORT=5000
MONGO_URI=your-mongodb-connection-string
JWT_SECRET=your-strong-jwt-secret
CLIENT_URL=http://localhost:3000
OPENAI_API_KEY=optional-if-you-use-ai-featuresIf your frontend needs to point at a deployed backend or a different local API, set the client API URL as well:
REACT_APP_API_URL=http://localhost:5000Start the backend and frontend in separate terminals:
# Terminal 1
cd server
npm run dev
# Terminal 2
cd client
npm startThe frontend usually runs on http://localhost:3000, and the backend API runs on http://localhost:5000.
npm run devβ start the backend with Nodemonnpm startβ start the backend in production mode
npm startβ run the React development servernpm run buildβ build the frontend for productionnpm testβ run the React test suite
Contributions are welcome. A good workflow is:
- Read the CONTRIBUTING.md guide.
- Check the Issues tab for an open task.
- Create a branch for your work.
- Make your changes and verify them locally.
- Open a pull request with a clear summary of what changed.
Please follow the Code of Conduct in all contributions and discussions.
This project is licensed under the MIT License.
For questions, suggestions, or collaboration ideas, please use the repository issues/discussions or connect through the project maintainerβs linked channels.
Built to make academic preparation a little less chaotic and a lot more organized.