Update README.md to provide comprehensive API documentation
- Added an overview of the Hospital API service and its purpose. - Included detailed features of the API, such as automatic shift management and real-time information. - Documented API endpoints with descriptions, response examples, and setup instructions. - Provided configuration details and database schema information. - Explained background tasks and logging format for better understanding of the application.
This commit is contained in:
113
README.md
113
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.
|
||||
|
||||
Reference in New Issue
Block a user