Skip to content

freedy237/robot-medical

Repository files navigation

Robot Medical - Real-Time Medical Monitoring System

Modern web application for real-time monitoring of patient medical parameters.

Features

  • Real-time dashboard with medical metrics
  • Patient management with RFID tracking
  • Parameter monitoring (temperature, heart rate, SpO2, weight)
  • Automatic alerts for critical values
  • Responsive and accessible interface
  • Secure authentication

Technologies

  • Frontend: React 18, Vite, Tailwind CSS, Lucide Icons
  • Backend: PHP 8+, MySQL
  • API Server: Node.js/Express (ESP32 data collection)
  • Security: JWT, CORS, Security Headers
  • Performance: useReducer, useMemo, Optimized Polling

Prerequisites

  • Node.js 18+
  • PHP 8.0+
  • MySQL 8.0+
  • Web server (Apache/Nginx)

Platform-Specific Notes

Windows

For Windows users, ensure the following are installed:

  • Download PHP from php.net
  • Download MySQL from mysql.com
  • Use cmd.exe or PowerShell for commands
  • Replace sudo with Administrator privileges (right-click and "Run as administrator")
  • Use backslashes \ for file paths or double slashes \\

macOS / Linux

Standard Unix commands apply. Use sudo for system-level operations.

Quick Start with XAMPP

If you're using XAMPP (includes Apache, PHP, and MySQL), follow these simplified steps:

1. Start XAMPP Services

  1. Open XAMPP Control Panel
  2. Start: Apache, MySQL, and PHP (if available)
  3. Open MySQL Admin to configure the database

2. Setup Database in XAMPP

-- In phpMyAdmin or MySQL command line
CREATE DATABASE robot_medical;
CREATE USER 'dark-linux'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON robot_medical.* TO 'dark-linux'@'localhost';
FLUSH PRIVILEGES;

-- Import the schema
-- Upload backend/databases/robot_medical.sql through phpMyAdmin
-- Or use: mysql -u dark-linux -p robot_medical < backend/databases/robot_medical.sql

3. Configure .env for XAMPP

cp .env.example .env

Edit .env:

VITE_API_BASE_URL=http://localhost:8000
DB_HOST=localhost
DB_USER=dark-linux
DB_PASS=password
DB_NAME=robot_medical

4. Start Everything

Option A - Separate terminals:

Terminal 1 - Frontend:

npm install
npm run dev

Terminal 2 - Backend (if not using Apache):

php -S 0.0.0.0:8000

Terminal 3 - API Server:

cd robot-api
npm install
npm start

Option B - All in one npm command:

Update package.json scripts to:

{
  "scripts": {
    "dev": "concurrently \"npm run dev:frontend\" \"npm run dev:backend\" \"npm run dev:api\"",
    "dev:frontend": "vite",
    "dev:backend": "php -S 0.0.0.0:8000",
    "dev:api": "cd robot-api && npm start"
  }
}

Then install concurrently:

npm install --save-dev concurrently

And run:

npm run dev

This will start all three services in parallel.

Installation & Setup

1. Database Configuration

Linux/macOS:

# Create the database
sudo mysql -e "CREATE DATABASE IF NOT EXISTS robot_medical;"

# Create the user
sudo mysql -e "CREATE USER IF NOT EXISTS 'dark-linux'@'localhost'; GRANT ALL PRIVILEGES ON robot_medical.* TO 'dark-linux'@'localhost'; FLUSH PRIVILEGES;"

# Import the schema
sudo mysql robot_medical < backend/databases/robot_medical.sql

Windows (PowerShell or CMD as Administrator):

# Open MySQL and run commands
mysql -u root -p

# In MySQL prompt:
CREATE DATABASE IF NOT EXISTS robot_medical;
CREATE USER IF NOT EXISTS 'dark-linux'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON robot_medical.* TO 'dark-linux'@'localhost';
FLUSH PRIVILEGES;

# Exit MySQL
EXIT;

# Import the schema
mysql -u dark-linux -p robot_medical < backend\databases\robot_medical.sql

2. Environment Setup

# Copy environment file
cp .env.example .env

# Edit configuration
nano .env

3. Frontend Installation

# Install dependencies
npm install

# Start development server
npm run dev

Frontend will be available at http://localhost:5173

4. Backend Configuration

Linux/macOS:

# Start PHP built-in server (from root directory)
php -S 0.0.0.0:8000

Windows (PowerShell or CMD):

# Navigate to root directory if not already there
cd path\to\robot-medical

# Start PHP built-in server
php -S 0.0.0.0:8000

Backend will be available at http://localhost:8000

5. API Server (ESP32 Data Collection)

# Navigate to API server
cd robot-api

# Install dependencies
npm install

# Start the server
npm start

API Server will be available at http://localhost:3001

6. Full Production Build

# Build the application
npm run build

# Preview production build
npm run preview

Configuration

Environment Variables

Variable Description Default
VITE_API_BASE_URL Backend URL http://localhost:8000
DB_HOST MySQL host localhost
DB_NAME Database name robot_medical
DB_USER MySQL user dark-linux
JWT_SECRET JWT secret key (to be defined)

Ports Used

  • Frontend: 5173 (development)
  • Backend: 8000 (PHP server)
  • API Server: 3001 (Express server)
  • Database: 3306 (MySQL)

Usage

  1. Access the application at http://localhost:5173
  2. View real-time metrics on the dashboard
  3. Manage patient records
  4. Monitor medical measurements
  5. Check critical value alerts

Security

  • JWT authentication
  • CORS security headers
  • Data validation
  • SQL injection protection
  • Rate limiting (to be implemented)

Responsive Design

The application is optimized for:

  • Desktop (1024px+)
  • Tablet (768px - 1023px)
  • Mobile (< 768px)

Troubleshooting

Common Issues

  1. CORS Error

    • Verify backend is listening on the correct port
    • Check CORS headers in backend/config/cors.php
  2. MySQL Connection Failed

    • Verify dark-linux user exists
    • Confirm permissions on robot_medical database
  3. Frontend Won't Load

    • Verify Node.js 18+ is installed
    • Run npm install to install dependencies

Logs

  • Frontend: Browser console
  • Backend: File specified in LOG_FILE
  • Database: MySQL logs

Monitoring

The application includes:

  • Performance metrics
  • Structured logging
  • Automatic alerts
  • Loading skeletons

Contributing

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is under the MIT License. See the LICENSE file for details.

Support

For questions or issues:

  1. Check the documentation
  2. Review error logs
  3. Open an issue on GitHub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors