This project is a full-stack web application for online group study with friends. Every registered user is considered a friend of others. Users can create assignments, complete them, and grade their friends' assignments.
- Authentication: Users can log in using Google, GitHub, or email and password authentication.
- Featured Assignment: Users can see top-rated assignments.
- Assignment Management: Users can add, update, and delete assignments.
- Take Assignment: Students can take assignments and submit them.
- My Attempted Assignments: Students can view all the assignments they have attempted. Assignments can be in pending or complete state.
- Assignment Evaluation: Upon assignment submission, the creator can evaluate the assignment, provide marks, and give feedback.
- Pending Assignments: Users can view assignments they have submitted that are pending evaluation.
- Search and Filter: Users can search for assignments by title, filter by difficulty level, and sort by date.
- FAQ: Users can access frequently asked questions.
- Customer Reviews: Users can read reviews from other students.
- Responsive Design: The website is fully responsive and accessible on all devices.
- Preview PDF submissions with iframe on Submitted Assignment page
- Theme toggling button for switching between light and dark themes
- Frontend: React.js, Tailwind CSS, Daisy UI
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Firebase, JWT
- React Simple Typewriter
- React Tooltip
- Sweet Alert
- Framer Motion
- Sweet Alert
- react-datepicker
- react-simple-typewriter
-
Clone the repository:
git clone https://github.com/tazim5032/group-study-platform.git cd group-study-platform
-
Install dependencies:
npm install cd client npm install cd ..
-
Setup environment variables:
- Create a
.env
file in the root directory and add the necessary environment variables:MONGODB_URI=<your-mongodb-uri> JWT_SECRET=<your-jwt-secret> FIREBASE_API_KEY=<your-firebase-api-key> FIREBASE_AUTH_DOMAIN=<your-firebase-auth-domain> FIREBASE_PROJECT_ID=<your-firebase-project-id> FIREBASE_STORAGE_BUCKET=<your-firebase-storage-bucket> FIREBASE_MESSAGING_SENDER_ID=<your-firebase-messaging-sender-id> FIREBASE_APP_ID=<your-firebase-app-id>
- Create a
-
Run the server:
npm start
-
Run the client:
cd client npm start
- Register and login to access the platform.
- Create assignments using the "Create Assignment" page.
- View all assignments on the "Assignments" page and use the filter functionality to sort by difficulty level.
- Delete or update assignments you have created.
- View assignment details and submit your work.
- Check your submitted assignments on the "My Submitted/Attempted Assignments" page.
- Review and grade pending assignments on the "Pending Assignments" page.
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Commit your changes (
git commit -m 'Add new feature'
) - Push to the branch (
git push origin feature-branch
) - Create a new Pull Request
This project is licensed under the MIT License.