38960-vm/SETUP.md
2026-03-28 13:36:35 +00:00

114 lines
4.6 KiB
Markdown

# Project Setup Guide
This guide provides step-by-step instructions to set up, configure, and run the Hospital Management System.
## Prerequisites
* **PHP**: Version 8.0 or higher.
* **Database**: MariaDB 10.x or MySQL 5.7+.
* **Web Server**: Apache 2.4+ (with `mod_rewrite` enabled).
* **Composer**: (Optional) For dependency management if using third-party packages in the future.
## Installation Steps
1. **Clone the Repository**
```bash
git clone <repository_url>
cd <project_directory>
```
2. **Configure Web Server**
* Point your Apache VirtualHost `DocumentRoot` to the project directory.
* Ensure the directory has appropriate permissions (e.g., `www-data` user).
* Enable `.htaccess` overrides if applicable.
3. **Database Setup**
* Create a new MySQL/MariaDB database (e.g., `hospital_db`).
* Import the database schema and seed data. You can do this by running the initialization script or importing SQL files:
* **Option A (Script):** Run `php install.php` from the command line (ensure `db/config.php` is configured first).
* **Option B (Manual):** Import files from `db/migrations/` in chronological order using a tool like phpMyAdmin or CLI.
4. **Configuration Files**
* **Database:** Edit `db/config.php` to match your database credentials:
```php
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'your_db_name');
define('DB_USER', 'your_db_user');
define('DB_PASS', 'your_db_password');
```
## Configuration & Environment Variables
The application uses a mix of PHP constants and environment variables for configuration.
### Email Configuration (`mail/config.php`)
The application uses PHPMailer. Configure the following environment variables (in your server config or `.env` file):
* `MAIL_TRANSPORT`: `smtp` (default)
* `SMTP_HOST`: e.g., `smtp.gmail.com`
* `SMTP_PORT`: e.g., `587`
* `SMTP_SECURE`: `tls` or `ssl`
* `SMTP_USER`: Your email address
* `SMTP_PASS`: Your email password or App Password
* `MAIL_FROM`: Sender email address
* `MAIL_FROM_NAME`: Sender name (e.g., "Hospital Admin")
### AI Integration (`ai/config.php`)
The system uses an AI proxy for features like "AI Suggestion" in visit forms and the Telegram bot.
* **Config File:** `ai/config.php`
* **Key Settings:** `base_url`, `project_uuid`.
* **Usage:** See `ai/LocalAIApi.php`.
### Telegram Integration
The system includes a Telegram bot for answering FAQs (`api/telegram_webhook.php`).
1. **Create a Bot:** Talk to `@BotFather` on Telegram to create a bot and get a **Token**.
2. **Save Token:** Insert the token into the `settings` table in your database:
```sql
INSERT INTO settings (setting_key, setting_value) VALUES ('telegram_token', 'YOUR_TELEGRAM_BOT_TOKEN');
```
3. **Set Webhook:** Configure the webhook URL for your bot:
```
https://api.telegram.org/bot<YOUR_TOKEN>/setWebhook?url=https://<YOUR_DOMAIN>/api/telegram_webhook.php
```
## Integrations & Libraries
### Frontend (CDN)
The project relies on the following CDN-hosted libraries. Ensure you have an active internet connection.
* **Framework:** Bootstrap 5.3.0
* **Icons:** Bootstrap Icons 1.10.5
* **Fonts:** Google Fonts (Inter, Tajawal)
* **Forms:**
* Select2 4.1.0 (with Bootstrap 5 theme)
* Summernote Lite 0.8.18 (Rich Text Editor)
* Flatpickr (Date/Time picker)
* Inputmask 5.0.7 (Input formatting)
* **Utilities:**
* jQuery 3.6.0
* Ui-Avatars (User avatars)
* JsBarcode 3.11.5 (Patient labels)
### Backend Services
* **Email:** `mail/MailService.php` (Wraps PHPMailer).
* **AI:** `ai/LocalAIApi.php` (Handles OpenAI requests via proxy).
* **Reporting:** `includes/SimpleXLSX.php` (Excel export support).
## Default Credentials
If you used the provided migration scripts (`20260321_create_auth_system.sql`), the default administrator account is:
* **Email:** `admin@hospital.com`
* **Password:** `admin123`
* **Role:** Administrator
**Note:** Change this password immediately after logging in.
## Troubleshooting
* **Database Connection Error:** Check `db/config.php` credentials. Ensure the database server is running.
* **Email Not Sending:** Verify SMTP settings in `mail/config.php` or environment variables. Check server logs for connection timeouts.
* **AI Features Not Working:** Ensure the server can reach the AI proxy endpoint defined in `ai/config.php`.
* **Telegram Bot Not Responding:** Verify the `telegram_token` in the `settings` table and ensure the webhook URL is accessible from the public internet (HTTPS required).