StudyMate is a MERN Stack web platform designed to help students connect and collaborate for better learning outcomes. It enables users to find study partners based on subjects, learning preferences, or nearby locations, making education more interactive, engaging, and goal-oriented.
- Frontend: React.js (Vite), Tailwind CSS, DaisyUI, Framer Motion
- Backend: Node.js, Express.js
- Database: MongoDB (Atlas)
- Authentication: Firebase Auth & JWT
- Data Fetching: Axios
- 🔐 Secure Authentication: Seamless login/registration with Email/Password and Google One-Click Login via Firebase.
- 🔍 Smart Partner Discovery: A "Find Partners" page with Server-side Search by subject and Sorting by experience level.
- 🤝 Real-time Connections: Send partner requests that automatically increment the partner’s connection count using the MongoDB $inc operator.
- 🛠️ Full CRUD Management: Users can create their own study profiles and manage their sent requests (Update/Delete) via the "My Connections" dashboard.
- 🌓 Theme Toggle: Integrated Dark and Light mode for a comfortable user experience.
- 📱 High Performance & Responsive: Fully responsive layout with custom loading spinners and a creative 404 error page.
axios: For efficient API calls.firebase: For secure authentication.react-router-dom: For SPA navigation and private routes.framer-motion: For smooth UI animations.react-toastify/sweetalert2: For interactive notifications.
express: Web framework for Node.js.mongodb: For flexible data storage.dotenv: For securing environment variables.cors: To manage cross-origin resource sharing.
Follow these steps to set up the project on your local machine:
1. Clone the repository:
git clone https://github.com/ALA22min22/study-mate-clint-a10.git
2. Setup Server:
- Navigate to the server folder:
cd server - Install dependencies:
npm install - Create a
.envfile and add:DB_USER=your_mongodb_username
DB_PASS=your_mongodb_password - Start the server:
npm start(ornode index.js)
3. Setup Client:
- Navigate to the client folder:
cd client - Install dependencies:
npm install - Create a
.env.localfile and add your Firebase configurations. - Start the development server:
npm run dev
- Live Site: studymate-link.web.app
- React Docs: react.dev
- MongoDB $inc Guide: Official Documentation
