2.6 KiB
2.6 KiB
Insurance System API
A comprehensive API for managing insurance policies, customers, and claims built with FastAPI and SQLite.
Features
- User authentication and authorization with JWT tokens
- CRUD operations for customers, policies, and claims
- Comprehensive database models with relationships
- API documentation with Swagger UI and ReDoc
- SQLite database with Alembic migrations
Requirements
- Python 3.8+
- SQLite
Environment Variables
The application uses the following environment variables:
SECRET_KEY
: JWT secret key (default: "supersecretkey")ACCESS_TOKEN_EXPIRE_MINUTES
: JWT token expiration time in minutes (default: 30)
Installation
- Clone the repository:
git clone <repository-url>
cd insurance-system-api
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run database migrations:
alembic upgrade head
Running the Application
Start the application with:
uvicorn main:app --reload
The API will be available at http://localhost:8000.
- API documentation: http://localhost:8000/docs
- Alternative API documentation: http://localhost:8000/redoc
- OpenAPI schema: http://localhost:8000/openapi.json
API Endpoints
Authentication
POST /api/v1/auth/register
: Register a new userPOST /api/v1/auth/token
: Login and get access tokenGET /api/v1/auth/me
: Get current user information
Customers
GET /api/v1/customers
: Get all customersPOST /api/v1/customers
: Create a new customerGET /api/v1/customers/{customer_id}
: Get a specific customerPUT /api/v1/customers/{customer_id}
: Update a customerDELETE /api/v1/customers/{customer_id}
: Delete a customer
Policies
GET /api/v1/policies
: Get all policiesPOST /api/v1/policies
: Create a new policyGET /api/v1/policies/{policy_id}
: Get a specific policyPUT /api/v1/policies/{policy_id}
: Update a policyDELETE /api/v1/policies/{policy_id}
: Delete a policy
Claims
GET /api/v1/claims
: Get all claimsPOST /api/v1/claims
: Create a new claimGET /api/v1/claims/{claim_id}
: Get a specific claimPUT /api/v1/claims/{claim_id}
: Update a claimDELETE /api/v1/claims/{claim_id}
: Delete a claim
Database Schema
The application uses the following database models:
User
: Authentication and system usersCustomer
: Insurance customersPolicy
: Insurance policiesClaim
: Insurance claims
License
This project is licensed under the MIT License - see the LICENSE file for details.