diff --git a/Backend/.env b/Backend/.env
index fca8438..9a150d9 100644
--- a/Backend/.env
+++ b/Backend/.env
@@ -1,6 +1,6 @@
PORT = 5000
MONGODB_URL = mongodb+srv://Healthsync_data:pL4vYIRxN7L3SEir@cluster0.57ywj.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0
-JWT_SECRET_kEY = "kxrWhWOqleunI+fSNaTGzD2eENVeJO0o2qTyUCYfUf/0IRhO9Taeqs+o7CXFqt6qcwCFuKlwxzWOa2kzZJm117qn6HcZCV5veZWfCMCR6uE04dvSsnbmUvtmr6NurYL7Wmk5uAtOTJW0/QZA5VUf0kEXtV5PU0af/V6a2BLgB5GX005488JHGWBJbIRqXDSaxR/Ne+a4jmsM2FQVpEqRP00cNWmlhvfmGiek0Za7DfuDmRMgmS0PsMr9sry8f+nvAp4OTz6AGJ4="
+JWT_SECRET_KEY = kxrWhWOqleunI+fSNaTGzD2eENVeJO0o2qTyUCYfUf/0IRhO9Taeqs+o7CXFqt6qcwCFuKlwxzWOa2kzZJm117qn6HcZCV5veZWfCMCR6uE04dvSsnbmUvtmr6NurYL7Wmk5uAtOTJW0/QZA5VUf0kEXtV5PU0af/V6a2BLgB5GX005488JHGWBJbIRqXDSaxR/Ne+a4jmsM2FQVpEqRP00cNWmlhvfmGiek0Za7DfuDmRMgmS0PsMr9sry8f+nvAp4OTz6AGJ4=
STRIPE_SECRET_KEY=sk_test_51Qvu25KsK9fpnXzm8ehU2ujA7p4UTTJeNIV44GzoO5PtXhNOcoyGRXm8Hz9Vos3mqne0Dq5NXcQIIu9iwNuOe1Ln00b8oKsjTL
CLIENT_SITE_URL =http://localhost:5173
EMAIL_USER=krutagya.kaneria.cg@gmail.com
diff --git a/Backend/Controllers/authController.js b/Backend/Controllers/authController.js
index d8b96b9..a4d1423 100644
--- a/Backend/Controllers/authController.js
+++ b/Backend/Controllers/authController.js
@@ -7,6 +7,7 @@ import dotenv from "dotenv";
dotenv.config();
const generateToken = (user) => {
+
return jwt.sign(
{ id: user._id, role: user.role },
process.env.JWT_SECRET_KEY,
@@ -80,16 +81,19 @@ export const register = async (req, res) => {
export const login = async (req, res) => {
const { email } = req.body;
-
+
+
try {
let user = null;
const patient = await User.findOne({ email });
const doctor = await Doctor.findOne({ email });
-
+
+
if (patient) user = patient;
if (doctor) user = doctor;
-
+
+
if (!user) {
return res.status(404).json({ message: "User not found" });
}
@@ -98,10 +102,11 @@ export const login = async (req, res) => {
if (!isPasswordMatch) {
return res.status(400).json({ status: false, message: "Invalid credentials" });
}
-
+
const token = generateToken(user);
+
const { password, role, appointments, ...rest } = user._doc;
-
+
res.status(200).json({
status: true,
message: "Successfully logged in",
diff --git a/Backend/index.js b/Backend/index.js
index e8c237e..5a026c9 100644
--- a/Backend/index.js
+++ b/Backend/index.js
@@ -76,6 +76,12 @@ io.on('connection', (socket) => {
console.log(`User ${userId} joined room`);
});
+ socket.on('emergency_alert', (data)=>{
+ console.log("Received emergency alert", data);
+ io.emit("new_emergency_alert", data);
+ //SMS and email aletr go here...
+ })
+
socket.on('disconnect', () => {
console.log('A client disconnected:', socket.id);
});
diff --git a/Frountend/src/Dashboard/doctor-account/DashBoard.jsx b/Frountend/src/Dashboard/doctor-account/DashBoard.jsx
index f297029..303d875 100644
--- a/Frountend/src/Dashboard/doctor-account/DashBoard.jsx
+++ b/Frountend/src/Dashboard/doctor-account/DashBoard.jsx
@@ -1,23 +1,53 @@
-import React, { useState } from 'react'
+import React, { useState, useEffect } from 'react'
import Loader from '../../components/Loader/Loading.jsx';
import Error from "../../components/Error/Error.jsx";
import useGetProfile from '../../hooks/useFetchData.jsx'
-import { BASE_URL } from '../../config';
+import { BASE_URL, SOCKET_URL } from '../../config';
import Tabs from './Tabs';
import starIcon from '../../assets/images/Star.png'
import DoctorAbout from '../../pages/Docters/DoctorAbout.jsx';
import Profile from './Profile.jsx';
import Appointments from './Appointment.jsx';
+import { io } from 'socket.io-client';
+const socket = io(SOCKET_URL) // setting up socket connection
const DashBoard = () => {
-
-
const {data,loading,error} = useGetProfile(`${BASE_URL}/doctors/profile/me`);
-
+ const [emergencyMsg, setEmergencyMsg] = useState('')
const [tab,setTab] = useState('overview')
-
-
+ const [address, setAddress] = useState("");
+
+ const getAddress = async (lat, lng) => {
+ const response = await fetch(
+ `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${lat}&lon=${lng}`
+ );
+ const data = await response.json();
+ setAddress(data.display_name);
+ };
+
+
+ //listen for incoming emergency messages
+ useEffect(() => {
+ console.log("In use effect");
+
+ // Confirm socket connected
+ socket.on('connect', () => {
+ console.log('Socket connected with ID:', socket.id);
+ });
+
+ // Listen for emergency alerts
+ socket.on('new_emergency_alert', (data) => {
+ setEmergencyMsg(data);
+ getAddress(data.location.latitude,data.location.longitude)
+ });
+
+ return () => {
+ socket.off('new_emergency_alert');
+ socket.off('connect');
+ };
+ }, []);
+
return (