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:
admin1@gmail.com
- Admin Password:
Admin123@
-
Admin Email:
tutor1@gmail.com
-
Admin Password:
Tutor123@
-
Admin Email:
student1@gmail.com
-
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.local
to version control (GitHub). Add it to your.gitignore
file.
-
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.local
file (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_URL
is 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-tools
Authenticate your Firebase CLI with:
firebase login
Run 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 build
firebase deploy
This 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"
}
]
}
}