2025-06-09 08:10:19 +00:00

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

  1. Clone the repository:
git clone <repository-url>
cd insurance-system-api
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. 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 Endpoints

Authentication

  • POST /api/v1/auth/register: Register a new user
  • POST /api/v1/auth/token: Login and get access token
  • GET /api/v1/auth/me: Get current user information

Customers

  • GET /api/v1/customers: Get all customers
  • POST /api/v1/customers: Create a new customer
  • GET /api/v1/customers/{customer_id}: Get a specific customer
  • PUT /api/v1/customers/{customer_id}: Update a customer
  • DELETE /api/v1/customers/{customer_id}: Delete a customer

Policies

  • GET /api/v1/policies: Get all policies
  • POST /api/v1/policies: Create a new policy
  • GET /api/v1/policies/{policy_id}: Get a specific policy
  • PUT /api/v1/policies/{policy_id}: Update a policy
  • DELETE /api/v1/policies/{policy_id}: Delete a policy

Claims

  • GET /api/v1/claims: Get all claims
  • POST /api/v1/claims: Create a new claim
  • GET /api/v1/claims/{claim_id}: Get a specific claim
  • PUT /api/v1/claims/{claim_id}: Update a claim
  • DELETE /api/v1/claims/{claim_id}: Delete a claim

Database Schema

The application uses the following database models:

  • User: Authentication and system users
  • Customer: Insurance customers
  • Policy: Insurance policies
  • Claim: Insurance claims

License

This project is licensed under the MIT License - see the LICENSE file for details.