├── client ├── .gitignore ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── Components │ ├── Admin │ │ ├── AdminHomePage.js │ │ ├── AdminProfile.js │ │ └── Navbar.js │ ├── Bills │ │ ├── AddBill.js │ │ ├── PatientBills.js │ │ ├── ViewBill.js │ │ └── index.js │ ├── Carriers │ │ ├── AddCarrier.js │ │ ├── CarrierNav.js │ │ └── index.js │ ├── Doctor │ │ ├── AddDoctor.js │ │ ├── DoctorList.js │ │ ├── DoctorNav.js │ │ ├── EditDoctor.js │ │ ├── PreviousPatients.js │ │ └── Profile.js │ ├── ErrorBoundary │ │ └── index.js │ ├── Footer │ │ └── index.js │ ├── Home │ │ ├── Cards.jsx │ │ ├── Home.styles.js │ │ └── index.js │ ├── Loader │ │ └── index.js │ ├── Login │ │ ├── LoginCard.js │ │ ├── LoginNav.js │ │ └── index.js │ ├── Patient │ │ ├── AdmitPatient.js │ │ ├── AdmittedPatients.js │ │ ├── EditPatient.js │ │ ├── PatientDetails.js │ │ ├── PatientNav.js │ │ ├── Patients.js │ │ ├── Profile.js │ │ ├── addPatient.js │ │ ├── secNavBar.js │ │ └── signUp.js │ ├── Rooms │ │ ├── AddRoom.js │ │ ├── EditRoom.js │ │ ├── RoomNav.js │ │ ├── ViewRoom.js │ │ └── index.js │ └── header.js │ ├── Routes │ ├── doctorRoutes.js │ ├── entryRoutes.js │ └── patientRoutes.js │ ├── assets │ ├── admin.png │ ├── background.svg │ ├── doctor_2.jpg │ ├── doctor_new.png │ └── patient.jpg │ ├── index.css │ ├── index.js │ └── utils │ ├── ProtectedRoute.js │ ├── Redux │ ├── loginReducer.js │ ├── rootReducer.js │ └── store.js │ └── axiosInstance.js └── server ├── .gitignore ├── Dockerfile ├── controllers ├── Admin.js ├── Appointment.js ├── Bill.js ├── Carrier.js ├── Doctor.js ├── Patient.js ├── Room.js ├── Treatement.js └── User.js ├── db └── connectDB.js ├── index.js ├── middleware ├── adminDoctorMiddleware.js ├── adminMiddleware.js ├── auth.js ├── doctorMiddleware.js ├── errorMiddleware │ └── index.js └── notFound.js ├── models ├── Admin.js ├── Admission.js ├── Bill.js ├── Carrier.js ├── Doctor.js ├── Patient.js ├── Room.js └── Treatments.js ├── package-lock.json ├── package.json └── routes ├── Admin.js ├── Bill.js ├── Carrier.js ├── Doctor.js ├── Patient.js ├── Room.js ├── Treatement.js └── User.js /client/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .env -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@fortawesome/fontawesome-svg-core": "^1.2.35", 7 | "@fortawesome/free-brands-svg-icons": "^5.15.3", 8 | "@fortawesome/free-regular-svg-icons": "^5.15.3", 9 | "@fortawesome/free-solid-svg-icons": "^5.15.3", 10 | "@fortawesome/react-fontawesome": "^0.1.14", 11 | "@material-ui/core": "^4.12.3", 12 | "@testing-library/jest-dom": "^5.12.0", 13 | "@testing-library/react": "^11.2.6", 14 | "@testing-library/user-event": "^12.8.3", 15 | "axios": "^0.21.1", 16 | "bootstrap": "^4.6.0", 17 | "gh-pages": "^3.2.0", 18 | "js-cookie": "^2.2.1", 19 | "jwt-decode": "^3.1.2", 20 | "loadash": "^1.0.0", 21 | "moment": "^2.29.4", 22 | "react": "^17.0.2", 23 | "react-dom": "^17.0.2", 24 | "react-icons": "^4.8.0", 25 | "react-redux": "^7.2.6", 26 | "react-router-dom": "^5.2.0", 27 | "react-scripts": "4.0.3", 28 | "react-social-icons": "^5.2.0", 29 | "reactstrap": "^8.9.0", 30 | "reactstrap-date-picker": "^1.0.9", 31 | "redux": "^4.1.2", 32 | "styled-components": "^5.3.3", 33 | "web-vitals": "^1.1.1" 34 | }, 35 | "scripts": { 36 | "start": "react-scripts start", 37 | "build": "react-scripts build", 38 | "test": "react-scripts test", 39 | "eject": "react-scripts eject" 40 | }, 41 | "eslintConfig": { 42 | "extends": [ 43 | "react-app", 44 | "react-app/jest" 45 | ] 46 | }, 47 | "browserslist": { 48 | "production": [ 49 | ">0.2%", 50 | "not dead", 51 | "not op_mini all" 52 | ], 53 | "development": [ 54 | "last 1 chrome version", 55 | "last 1 firefox version", 56 | "last 1 safari version" 57 | ] 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sainikhil1605/Hospital-Management-System-MERN-Stack/3043ca5517a69ae3b66bd9b50f0ca4c43bf2bfcc/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | In Patient Managament System 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sainikhil1605/Hospital-Management-System-MERN-Stack/3043ca5517a69ae3b66bd9b50f0ca4c43bf2bfcc/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sainikhil1605/Hospital-Management-System-MERN-Stack/3043ca5517a69ae3b66bd9b50f0ca4c43bf2bfcc/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/src/App.css: -------------------------------------------------------------------------------- 1 | body { 2 | overflow-x: hidden; 3 | } 4 | .App { 5 | text-align: center; 6 | } 7 | li { 8 | list-style: none; 9 | } 10 | li :active { 11 | color: white; 12 | } 13 | .App-logo { 14 | height: 40vmin; 15 | pointer-events: none; 16 | } 17 | .header { 18 | background-color: #242526; 19 | color: white; 20 | border-radius: 0; 21 | } 22 | @media (prefers-reduced-motion: no-preference) { 23 | .App-logo { 24 | animation: App-logo-spin infinite 20s linear; 25 | } 26 | } 27 | .App-header { 28 | background-color: #282c34; 29 | min-height: 100vh; 30 | display: flex; 31 | flex-direction: column; 32 | align-items: center; 33 | justify-content: center; 34 | font-size: calc(10px + 2vmin); 35 | color: white; 36 | } 37 | 38 | .App-link { 39 | color: #61dafb; 40 | } 41 | @keyframes App-logo-spin { 42 | from { 43 | transform: rotate(0deg); 44 | } 45 | to { 46 | transform: rotate(360deg); 47 | } 48 | } 49 | /* .header { 50 | background-color: rgb(144, 144, 221); 51 | color: white; 52 | } */ 53 | .nav-link { 54 | color: white; 55 | } 56 | a { 57 | list-style: none; 58 | text-decoration: none; 59 | /* color: white; */ 60 | } 61 | a:hover { 62 | list-style: none; 63 | text-decoration: none; 64 | } 65 | footer { 66 | padding-top: 50px; 67 | background-color: #223c50; 68 | color: white; 69 | } 70 | 71 | .container { 72 | display: flex; 73 | justify-content: space-around; 74 | align-items: flex-start; 75 | padding: "0px 0px"; 76 | } 77 | @media (max-width: 768px) { 78 | .container { 79 | display: flex; 80 | flex-direction: column; 81 | padding: 0px; 82 | align-items: center; 83 | } 84 | img { 85 | width: 100%; 86 | } 87 | } 88 | @media (min-width: 1200px) { 89 | .container { 90 | max-width: 100%; 91 | padding: 0px; 92 | } 93 | } 94 | @media (max-width: 1200px) { 95 | .container { 96 | max-width: 100%; 97 | padding: 0px; 98 | } 99 | } 100 | .footer { 101 | margin-top: 10px; 102 | padding-top: 20px; 103 | background-color: #223c50; 104 | color: white; 105 | } 106 | .DocForm { 107 | margin-top: 200px; 108 | margin-left: 200px; 109 | } 110 | @media (max-width: 760px) { 111 | .DocForm { 112 | margin-left: 0px; 113 | margin-top: 50px; 114 | } 115 | } 116 | .mynav a { 117 | color: white; 118 | margin-left: 10px; 119 | } 120 | -------------------------------------------------------------------------------- /client/src/App.js: -------------------------------------------------------------------------------- 1 | import { Provider } from "react-redux"; 2 | import { Route, Switch, useLocation } from "react-router-dom"; 3 | import "./App.css"; 4 | import NavBar from "./Components/Admin/Navbar"; 5 | import ErrorBoundary from "./Components/ErrorBoundary"; 6 | import Footer from "./Components/Footer"; 7 | import Home from "./Components/Home"; 8 | import LogIn from "./Components/Login"; 9 | import store from "./utils/Redux/store"; 10 | import AdminProfile from "./Components/Admin/AdminProfile"; 11 | import Header from "./Components/header"; 12 | 13 | import Bills from "./Components/Bills"; 14 | import ViewBill from "./Components/Bills/ViewBill"; 15 | import Patients from "./Components/Patient/Patients"; 16 | import AddPatientForm from "./Components/Patient/addPatient"; 17 | import AddDoctor from "./Components/Doctor/AddDoctor"; 18 | import DoctorNav from "./Components/Doctor/DoctorNav"; 19 | import DoctorList from "./Components/Doctor/DoctorList"; 20 | import AddBill from "./Components/Bills/AddBill"; 21 | import PatientNav from "./Components/Patient/PatientNav"; 22 | import AdmitPatient from "./Components/Patient/AdmitPatient"; 23 | import PatientDetails from "./Components/Patient/PatientDetails"; 24 | import Profile from "./Components/Patient/Profile"; 25 | import PatientBills from "./Components/Bills/PatientBills"; 26 | import Rooms from "./Components/Rooms"; 27 | import ViewRoom from "./Components/Rooms/ViewRoom"; 28 | import Carrier from "./Components/Carriers"; 29 | import RoomNav from "./Components/Rooms/RoomNav"; 30 | import AddRoom from "./Components/Rooms/AddRoom"; 31 | import CarrierNav from "./Components/Carriers/CarrierNav"; 32 | import AddCarrier from "./Components/Carriers/AddCarrier"; 33 | import EditDoctor from "./Components/Doctor/EditDoctor"; 34 | import ProtectedRoute from "./utils/ProtectedRoute"; 35 | import EditPatientForm from "./Components/Patient/EditPatient"; 36 | import EditRoom from "./Components/Rooms/EditRoom"; 37 | import AdmittedPatients from "./Components/Patient/AdmittedPatients"; 38 | import DoctorProfile from "./Components/Doctor/Profile"; 39 | import PreviousPatients from "./Components/Doctor/PreviousPatients"; 40 | function App() { 41 | const location = useLocation(); 42 | return ( 43 | 44 | 45 | {location.pathname !== "/login" && location.pathname !== "/" && ( 46 | <> 47 | 48 |
49 | 50 | )} 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |