The Collaborative Study Platform is a dynamic and interactive web application designed to facilitate learning by connecting students, tutors, and administrators. It provides essential tools for scheduling study sessions, managing resources, and fostering a collaborative learning environment.
π Live Site URL: Collaborative Study Platform
- Admin Email:
[email protected] - Admin Password:
Admin123@
-
Admin Email:
[email protected] -
Admin Password:
Tutor123@ -
Admin Email:
[email protected] -
Admin Password:
Student123@
- JWT-based authentication ensures secure sessions.
- Social login via Google and GitHub (default role: Student).
- Role-based access control for Students, Tutors, and Admins.
- Fully responsive UI for desktop, tablet, and mobile.
- Role-specific dashboards tailored for different users.
- Navbar: Displays logo, login/sign-up options, user profile, logout, and dashboard button.
- Banner Section: Professionally designed with engaging imagery.
- Study Session Cards: Displays only approved sessions with real-time status (Ongoing/Closed).
- View booked sessions and session details.
- Create, update, and delete personal notes.
- Access study materials with download links and URLs.
- Create new study sessions with session details.
- Upload study materials (images, Google Drive links).
- Manage uploaded materials (view, update, delete).
- Manage users (role updates, search functionality).
- Approve/reject study sessions with feedback.
- View & moderate all study materials.
- CRUD operations trigger SweetAlert/Toast notifications.
- Success/failure alerts for login, sign-up, and CRUD actions.
- Environment variables secure Firebase & MongoDB credentials.
- Token-based authentication stored in local storage.
- Implemented pagination on at least two pages for optimized data loading.
- Axios interceptors for handling API requests efficiently.
- React (βοΈ)
- DaisyUI (πΌ)
- TanStack Query (β‘)
- Node.js (π’)
- Express.js (π)
- MongoDB (π)
- Firebase Auth (π)
- JWT (JSON Web Tokens) (π)
- Vercel (Backend hosting)
- Firebase (Frontend hosting)
- ImgBB (Image hosting)
Create a .env.local file in your project root and add the following:
VITE_apiKey=YOUR_FIREBASE_API_KEY
VITE_authDomain=YOUR_FIREBASE_AUTH_DOMAIN
VITE_projectId=YOUR_FIREBASE_PROJECT_ID
VITE_storageBucket=YOUR_FIREBASE_STORAGE_BUCKET
VITE_messagingSenderId=YOUR_FIREBASE_MESSAGING_SENDER_ID
VITE_appId=YOUR_FIREBASE_APP_ID
VITE_IMAGE_HOSTING_KEY=YOUR_IMGBB_API_KEY
VITE_STRIPE_PUBLIC_KEY=YOUR_STRIPE_PUBLIC_KEY
# API URL
VITE_API_URL=YOUR_BACKEND_API_URL
β οΈ Warning: Do NOT commit.env.localto version control (GitHub). Add it to your.gitignorefile.
-
Clone the repository
git clone https://github.com/ashraful2871/collaborative-study-platform.git cd collaborative-study-platform -
Install dependencies
npm install
-
Set up environment variables
- Create a
.env.localfile (see above). - Replace placeholder values with your actual Firebase & API credentials.
- Create a
-
Run the development server
npm run dev
-
If Firebase authentication fails:
- Ensure your Firebase API key and authentication domain are correctly set in
.env.local. - Verify that Google & GitHub authentication are enabled in your Firebase project.
- Ensure your Firebase API key and authentication domain are correctly set in
-
If API requests fail:
- Check if your backend server is running.
- Ensure
VITE_API_URLis correctly set.
If youβre using Firebase for production deployment, your README should include clear instructions on how to build and deploy the project. Here's an updated Production Deployment section:
To deploy the Collaborative Study Platform frontend to Firebase Hosting, follow these steps:
Make sure you have the Firebase CLI installed globally:
npm install -g firebase-toolsAuthenticate your Firebase CLI with:
firebase loginRun the following command inside your project folder:
firebase init- Choose "Hosting"
- Select your Firebase project (or create a new one)
- Set
dist/as the public directory (for Vite projects) - Choose "Yes" for single-page app (SPA)
- Skip setting up automatic builds unless needed
Before deploying, create a production build:
npm run buildfirebase deployThis will upload your build files and make the site live at your Firebase Hosting URL.
Whenever you make changes and want to update the live site:
- Run
npm run build - Run
firebase deploy
Ensure your firebase.json file is correctly set up for deployment:
{
"hosting": {
"public": "dist",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}


