diff --git a/README.md b/README.md index 3431956..9b51552 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,112 @@ -## Routes +# Hospital API -# - / & /hospital +A Rust-based API service that manages and provides information about hospitals on duty in Luxembourg City. -List al Hospitals from Database. +## Overview + +This API service tracks which hospital is currently on duty in Luxembourg City and provides endpoints to access this information. The system automatically manages hospital shifts and ensures there's always a hospital assigned for emergency services. + +## Features + +- **Automatic Shift Management**: Creates and manages hospital shifts automatically +- **Real-time Hospital Information**: Provides current on-duty hospital information via API +- **Periodic Checks**: Regularly verifies and updates future shifts +- **Timestamped Logging**: All system events are logged with timestamps for better tracking + +## API Endpoints + +### Root Endpoint +- **URL**: `/` +- **Method**: `GET` +- **Description**: Returns basic API information +- **Response Example**: + ```json + { + "name": "HospitalAPI", + "version": "0.1", + "description": "This API provides you with the current hospital on duty in luxembourg city. Call the /getHospital endpoint." + } + ``` + +### Current Hospital Endpoint +- **URL**: `/current-hospital` +- **Method**: `GET` +- **Description**: Returns information about the hospital currently on duty +- **Response Example**: + ```json + { + "success": true, + "hospital": { + "id": 1, + "name": "Centre Hospitalier", + "start_time": "2023-04-15T08:00:00Z", + "end_time": "2023-04-16T08:00:00Z" + }, + "message": "Current hospital retrieved successfully" + } + ``` + +## Setup and Installation + +### Prerequisites + +- Rust (latest stable version) +- PostgreSQL database +- Environment variables (see Configuration section) + +### Installation + +1. Clone the repository: + ```bash + git clone https://github.com/yourusername/hospitalapi.git + cd hospitalapi + ``` + +2. Build the project: + ```bash + cargo build --release + ``` + +3. Run the application: + ```bash + cargo run + ``` + +## Configuration + +The application uses environment variables for configuration. Create a `.env` file in the project root with the following variables: + +``` +DATABASE_URL=postgres://username:password@localhost/hospitaldb +HOST=127.0.0.1 +PORT=3000 +``` + +## Database Schema + +The application uses a PostgreSQL database with the following main tables: + +- **hospitals**: Stores information about hospitals +- **shifts**: Stores hospital shift information + +## Background Tasks + +The application runs two background tasks: + +1. **Future Shifts Check**: Runs every 48 hours to ensure future shifts are created +2. **Current Hospital Monitor**: Runs every minute to log the current on-duty hospital + +## Logging + +All system events are logged with timestamps in the format: +``` +[YYYY-MM-DD HH:MM:SS] Message +``` + +## License + +[MIT License](LICENSE) + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request.