2025-06-05 07:49:58 +00:00

109 lines
2.1 KiB
Markdown

# General Communication Service
A FastAPI-based general purpose communication service with SQLite integration.
## Features
- FastAPI-based REST API
- SQLite database integration
- Alembic migrations
- CORS enabled with all origins allowed
- Health check endpoint
- API documentation at default paths
## Project Structure
```
/
├── app/
│ ├── api/
│ │ ├── routes/
│ │ │ ├── health.py
│ │ │ └── api.py
│ ├── core/
│ ├── db/
│ │ └── session.py
│ ├── models/
│ │ └── base.py
│ └── schemas/
├── migrations/
│ ├── versions/
│ ├── env.py
│ └── script.py.mako
├── storage/
│ └── db/
├── alembic.ini
├── main.py
├── requirements.txt
└── README.md
```
## Installation
1. Clone the repository
2. Install dependencies:
```bash
pip install -r requirements.txt
```
## Running the Application
```bash
uvicorn main:app --reload
```
The application will be available at http://localhost:8000
## API Documentation
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI JSON: http://localhost:8000/openapi.json
## Database Migrations
Generate a new migration:
```bash
alembic revision --autogenerate -m "description"
```
Apply migrations:
```bash
alembic upgrade head
```
## API Endpoints
### Messages API
- **GET /api/v1/messages**
- Retrieves a list of all messages
- Supports pagination and filtering
- **GET /api/v1/messages/{message_id}**
- Retrieves a specific message by ID
- **POST /api/v1/messages**
- Creates a new message
- Requires message content and recipient information
- **PUT /api/v1/messages/{message_id}/read**
- Marks a message as read
- **DELETE /api/v1/messages/{message_id}**
- Deletes a specific message
## Environment Variables
None required for basic setup, as SQLite database path is configured internally.
## Database Configuration
SQLite database is configured to be stored at:
```
/app/storage/db/db.sqlite
```