Build A React-based web application for scheduling and managing doctor appointments. The application includes multiple pages, data persistence, interactive UI elements, routing, and visual representation using charts.
- Visible on all pages (including error routes)
- Includes:
- Site Logo & Name (as per Figma)
- 4 Navigation Menus (as per Figma)
- A Button on the right (as per Figma)
- Visible on all pages except error routes
- Includes:
- Centered Logo
- Navigation Menus (as per Figma)
- 3 Social Icons (redirect to developer's personal profiles)
- Gradient background with border (as per Figma)
- Center-aligned heading & text (as per Figma)
- Two positioned images (as per Figma)
- Center-aligned heading & text (as per Figma)
- Display 6 doctor cards in a 3x2 grid
- Each card includes:
- Doctor image
- Name
- Education
- Speciality
- Experience
- Registration Number
- “View Details” button (navigates to doctor details route)
- There will be a Show All Button. on Clicking it , You have to load all the 12 Doctors Card in your UI.
- Display 4 square cards (as per Figma) with:
- Icon
- Number
- Card Title
- Page Info Card titled “Doctor’s Profile Details” with a slogan (as per Figma)
- Doctor Info Section:
- Left-aligned image
- Name, Education, Specialities, Designation, Workplace, Fee
- Availability Section (array of days)
- Appointment Card includes:
- Availability Badge
- “Book Now” Button
- If user has not booked:
- Create an appointment
- Show a success toast with doctor name
- Redirect to Booking Page
- If user already booked:
- Show error toast
- Do not proceed
- Show all booked appointments in 1-column format (as per Figma)
- Each appointment card includes:
- Doctor Name
- Fee
- Education
- Speciality
- “Cancel Appointment” Button
- If no appointments found:
- Show heading & a button to navigate to Homepage
- Appointment state should persist on page reload ( USE LOCALSTORAGE )
- Cancel button removes the appointment
Design a blogs page to answer the following:
- What is
useState
and how does it work in React? - What is the purpose of
useEffect
in React? - What is a custom hook in React and when should you use one?
- Difference between controlled and uncontrolled components? Which one is better?
- Tell us something about
useFormStatus()
(explore and explain)
- Displayed for all invalid routes (e.g.,
/contacts
) - Navbar should be visible
- Footer should not be visible
- Button to redirect users to Homepage
- Visualize appointment fees using Recharts (as per Figma)
- Canceling appointments should update the chart
- If no appointments exist, do not show chart
- Use
react-countup
for counting animation on the Homepage
- Add Site Logo & Website Title
- If invalid route visited (e.g.,
/doctors/invalid-id
), show error message
- Show a loading animation on every route change
- App must not crash on page reload
- Show fallback loader during data fetch on any page reload
- If today’s date doesn’t match doctor’s availability:
- Show “Doctor is unavailable today”
- Show “Unavailable” badge on doctor cards
- Change title dynamically:
- Booking Page →
Booking
- Doctor Details → Doctor’s Name
- Booking Page →
- Do not use third-party NPM packages for this feature
- Have to work with the assigned Category.
- Minimum 10 Github Commits
- No Lorem Ipsum
- Image / video / resources will be relevant to the site
- Make your project responsive
Happy Coding! 🚀