Assignment12 Category 022
Assignment12 Category 022
Key Rules:
method only)
Objective
Note: Don’t worry about the standardization of the project, rather implement
requirements as explained here)
Hints: While implementing social login, ensure the system gracefully assigns the
user role as a student.
Main Tasks
HomePage:
The user can view 5 sections on the homepage, including the navbar and
footer:
1. Navbar
2. Banner Section
3. Study session section
4. Tutor Section
5. Footer
1. The Navbar includes a logo, website name, login button (when the user is
not logged in), and sign-up button (when the user is not logged in). If the
user is logged in, the navbar should display the user profile picture,
logout button, and dashboard button.
3. Show study session card ( 6 session cards ). Each session has a title and
description, an ongoing/closed button (if the registration time is over,
show closed, otherwise, show ongoing), and read more buttons.
Note: Show only approved sessions; don’t show pending or rejected sessions
(see points 13 and 20).
Hints: Check if the current date is greater than or equal to the registration start
date and less than or equal to the registration end date.
4. If the user is not logged in, the user will be redirected to the login page by
clicking the read more button. If the user is logged in, the user will be
redirected to a page where they can view the following information about
the selected session:
a. Session Title
b. Tutor name
c. Average rating
d. Session Description
e. Registration start date
f. Registration end date
g. Class start time
h. Class end date
i. Session duration
j. Registration fee (Registration fee can be free ( See points 20-b) )
k. Reviews of the study session provided by students ( see pints 8 )
l. Book now button (if the registration time is over, this button will be
replaced by a registration closed (disabled) button)
m. Any other necessary information relevant to this session.
Note: Disable the Book now button if the logged user is an admin or tutor.
Hints: filter all reviews and ratings by study session ID ( see points 8 ).
5. If the registration fee is not free (registration fee is 0. 0 means it is free ) ,
by clicking the Book Now button, the user will be redirected to a payment
page. After successful payment, the session will be booked successfully.
If it is free, the session will be booked without payment.
Hints 3: You will find the tutor email from the study session data.
8. (View booked sessions route): Students can view his/her booked sessions.
Each session has a view detail button. By clicking this button:
a. Students view detailed information about the session.
b. Create a review section on the detailed page. Students can post a
review and rating for the study session.
Hints 1: Create a collection to store all reviews and ratings. Save reviews with a
session ID that comes from booked session data ( see points 4 and 5 ).
9. (Create note route): Students can create his/her notes. This page will have
a form with the following fields:
a. Email readOnly ( Logged in user email )
b. Title
c. Description
10.( Manage personal notes route): Students can view all personal notes.
There will be update and delete buttons for each note to update and
delete note.
11.( View all study materials route ): Students can access study materials
categorized by study session.
a. They can access only the materials of the sessions he booked.
b. They can see the images and link (Google Drive link )
c. They can download the images. Add a download button to each
image.
d. By clicking the link they can visit the URL (Google Drive link )
Hints 1: At first, show all booked sessions. By clicking a single session all
materials of the session should be displayed.
Hints 2: Find the materials by study session ID. You will find the session ID in the
booked session data.
14.( View all study sessions route) The tutor can see his/her approved and
rejected sessions.
a. The tutor can send another new approval request to the admin for
rejected sessions.
b. After a new request is sent, the status changes from reject to
pending.
15. (Upload materials route): The tutor will upload materials for his/her
approved sessions. He can upload an image and link ( Google Drive link ) as
materials. He can upload multiple materials for a single study session.
There will be a form with the following fields:
a. Title
b. Study session ID read-only ( This ID comes from the study session
data he wants to upload)
c. Tutor email read-only ( Logged in user email )
d. Image upload
e. Link ( Resources material Google Drive link. For example- google
doc, google sheet )
Hints 1: Create a view link for images and save this link in the database ( You can
use ImgBB).
Hints 2: Fetch all approved sessions and add an upload material button to each
one.
Hints 3: just set an input text field to get the Google Drive link
Hints 4: Create a collection to store materials with the study session ID.
16.(View all materials route) The tutor can view all the materials he uploaded.
He can also delete and update the materials.
18.(View all users) Admin views all users with the given roles.
a. He can update a user role
19.(View all users) This page has a search bar. admin can search a user by
name or email. The search implementation functionality should be done in
the backend.
20. (View all study sessions route) Admin can view all sessions created by
the tutor ( see point 13 ).
a. He can approve a pending session or reject it.
b. If he approves, a modal popup will appear. This popup will contain
these input fields:
i. Is the session free or paid?
ii. If it is paid, he should specify the amount.
iii. If it is free, just set the value to 0
c. After successfully rejecting, the rejected session will be removed
from the pending list.
21. (In “view all study sessions route” ) Show an update button and a delete
button with approved sessions. Don’t show these buttons with pending
study sessions The admin can update and delete a session by clicking
them.
22.(View all materials route) Admin can view all materials and remove
inappropriate and outdated content.
Challenges requirements
***Implement tanstack query in all the data fetching functionality (For GET
method only) ***
1. Implement JWT on login (Email/Password and social) and store the token.
Make sure to store the token in local storage. Don’t use cookies
Optional Tasks
1) Implement Axios interceptor.
2) Create a route in the admin dashboard to make an announcement.
3) Add a menu in the navbar to show all announcements the admin made.
This route will be public.
4) Add a route in the student dashboard to show all classmates for each
study session he booked.
What to Submit