surya101294 / Hospital_App

This is the application though which the user can to book the appointment with the Doctor. The aim of this is to make the Backend and Frontend from scratch and then integrate both.

Home Page:https://frontend-topaz-theta.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hospital (FullStack)

TechStack

Front-End

  • HTML
  • CSS
  • JavaScript
  • React

Back-End

  • NodeJS
  • Express
  • MongoDB

External CSS Library

-Material UI

#Front-End Deployment - vercel #Back-End Deployment - Cyclic

Homepage

SignUpPage

SignInPage

CreateAppointmentPage

BookAppointmentPage

## `**Problem Statement**`
  • The objective is to create a Full Stack application using React as frontend and NEM as backend which facilitates seamless booking of medical appointments with doctors by the patients.
  • App should have the following routes
    • Signup & Login
    • Create Appointments
    • Book Appointments

Signup & Login

  • This route should have a login and register form, which the user should be able to toggle between login and register, and the corresponding form should be shown.

  • This user should be prompted by a signup form, where the user will enter the following credentials

    • Email
    • Password
    • Confirm Password
  • On form submit store this credential in your backend using the API “/signup”.

  • Follow all the coding standards, hash the password using any encrypting library such as “bcrypt” or “argon2” before storing in database.

  • This user should be prompted by a login form, where the user will enter the following credentials

    • Email
    • Password
  • On form submit, match the entered credentials with the data stored in your backend (Verify both email and password) using the backend API “/login

  • On successful validation alert “Login Successful”, generate a token for the user using jsonwebtoken (store the token in localStorage) and redirect the user to Create Appointments Route.

  • On entering wrong credential, alert “Invalid Credentials” and re-prompt the user to enter valid credentials.


Create Appointments Route

  • The user should be prompted by an appointment form with the following details
    • Name
    • Image URL
    • Specialization (Select tag with Cardiologist, Dermatologist, Pediatrician, Psychiatrist as options)
    • Experience
    • Location
    • Date (Appointment creation date, populate from backend)
    • Slots (Number of slots available for the day)
    • Fee
  • On form submit, store data in backend server on API “/appointments”.

Book Appointments

  • Fetch all the appointments posted from the backend server and list them in the form of cards.

  • Sample API Response

  • Your app should have the following functionalities and should be implemented using backend.

    • Filter by Specialization (Cardiologist, Dermatologist, Pediatrician, Psychiatrist)
    • Sort by date (based on the posted date)
    • Search by doctor name
    • Pagination (4 Cards per page)
  • Each card should have a “Book Now” button, which when clicked, the number of slots for that particular doctor should decrement by 1.

  • If the number of slots becomes 0, the Book Now button should be disabled.


**Backend**

  • Creating all relevant APIs for user auth, posting, and fetching appointments.
  • Filter, Sort, Search and Pagination should be done through API. (Doing this manually through fronted will be considered null and void)
  • Take care of all good practices - naming conventions, MVC structure etc.

About

This is the application though which the user can to book the appointment with the Doctor. The aim of this is to make the Backend and Frontend from scratch and then integrate both.

https://frontend-topaz-theta.vercel.app/


Languages

Language:JavaScript 93.3%Language:CSS 3.5%Language:HTML 3.3%