| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| USER | id | UUID | 36 | primary key | |
| username | varchar | 150 | unique | ||
| first_name | varchar | 150 | |||
| last_name | varchar | 150 | |||
| varchar | 254 | unique | |||
| password | varchar | 128 | |||
| role | varchar | 50 | |||
| phone_number | varchar | 15 | |||
| is_active | boolean | 1 | |||
| is_staff | boolean | 1 | |||
| is_superuser | boolean | 1 | |||
| date_joined | datetime | ||||
| last_login | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| VEHICLE | id | UUID | 36 | primary key | |
| owner_id | UUID | 36 | foreign key | USER | |
| driver_id | UUID | 36 | foreign key | USER | |
| vehicle_type | varchar | 50 | |||
| model_name | varchar | 100 | |||
| registration_number | varchar | 20 | unique | ||
| photo_url | varchar | 200 | |||
| total_cost | decimal | 10,2 | |||
| amount_paid | decimal | 10,2 | |||
| is_active | boolean | 1 | |||
| is_fully_paid | boolean | 1 | |||
| created_at | datetime | ||||
| updated_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| DRIVER_APPLICATION | id | UUID | 36 | primary key | |
| applicant_id | UUID | 36 | foreign key | USER | |
| vehicle_id | UUID | 36 | foreign key | VEHICLE | |
| status | varchar | 50 | |||
| risk_score | integer | 11 | |||
| application_date | datetime | ||||
| decision_date | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| PAYMENT | id | UUID | 36 | primary key | |
| transaction_id | varchar | 100 | unique | ||
| vehicle_id | UUID | 36 | foreign key | VEHICLE | |
| driver_id | UUID | 36 | foreign key | USER | |
| amount | decimal | 10,2 | |||
| payment_date | datetime | ||||
| status | varchar | 50 |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| DRIVER_PROFILE | id | UUID | 36 | primary key | |
| user_id | UUID | 36 | foreign key | USER | |
| date_of_birth | date | ||||
| gender | varchar | 10 | |||
| marital_status | varchar | 20 | |||
| nationality | varchar | 50 | |||
| alternate_phone | varchar | 15 | |||
| address | text | 500 | |||
| city | varchar | 100 | |||
| state | varchar | 100 | |||
| id_type | varchar | 50 | |||
| id_number | varchar | 50 | |||
| license_number | varchar | 50 | |||
| license_expiry | date | ||||
| years_of_experience | integer | 11 | |||
| emergency_name | varchar | 100 | |||
| emergency_phone | varchar | 15 | |||
| emergency_relationship | varchar | 50 | |||
| previous_employment | text | 1000 | |||
| criminal_record | varchar | 10 | |||
| medical_conditions | text | 500 | |||
| created_at | datetime | ||||
| updated_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| VEHICLE_DOCUMENT | id | UUID | 36 | primary key | |
| vehicle_id | UUID | 36 | foreign key | VEHICLE | |
| document_type | varchar | 50 | |||
| document_url | varchar | 500 | |||
| document_number | varchar | 100 | |||
| expiry_date | date | ||||
| is_verified | boolean | 1 | |||
| uploaded_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| DRIVER_DOCUMENT | id | UUID | 36 | primary key | |
| driver_id | UUID | 36 | foreign key | USER | |
| document_type | varchar | 50 | |||
| document_url | varchar | 500 | |||
| document_number | varchar | 100 | |||
| expiry_date | date | ||||
| is_verified | boolean | 1 | |||
| uploaded_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| FINANCIAL_REPORT | id | UUID | 36 | primary key | |
| owner_id | UUID | 36 | foreign key | USER | |
| vehicle_id | UUID | 36 | foreign key | VEHICLE | |
| report_month | integer | 11 | |||
| report_year | integer | 11 | |||
| total_payments_received | decimal | 10,2 | |||
| total_expenses | decimal | 10,2 | |||
| net_profit | decimal | 10,2 | |||
| payment_count | integer | 11 | |||
| generated_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| NOTIFICATION | id | UUID | 36 | primary key | |
| user_id | UUID | 36 | foreign key | USER | |
| title | varchar | 200 | |||
| message | text | 1000 | |||
| notification_type | varchar | 50 | |||
| is_read | boolean | 1 | |||
| created_at | datetime | ||||
| read_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| ACTIVITY_LOG | id | UUID | 36 | primary key | |
| user_id | UUID | 36 | foreign key | USER | |
| action_type | varchar | 100 | |||
| description | text | 500 | |||
| ip_address | varchar | 45 | |||
| user_agent | varchar | 500 | |||
| created_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| SYSTEM_SETTINGS | id | UUID | 36 | primary key | |
| setting_key | varchar | 100 | unique | ||
| setting_value | text | 1000 | |||
| setting_type | varchar | 50 | |||
| description | text | 500 | |||
| is_active | boolean | 1 | |||
| created_at | datetime | ||||
| updated_at | datetime |
| Table name | Attribute name | Type of data | Length of data | Type of key | Foreign key referenced table |
|---|---|---|---|---|---|
| VEHICLE_MAINTENANCE | id | UUID | 36 | primary key | |
| vehicle_id | UUID | 36 | foreign key | VEHICLE | |
| maintenance_type | varchar | 100 | |||
| description | text | 500 | |||
| cost | decimal | 10,2 | |||
| maintenance_date | date | ||||
| next_maintenance_date | date | ||||
| performed_by | varchar | 200 | |||
| created_at | datetime |
- UUID: Universally Unique Identifier (36 characters)
- varchar(n): Variable character string with maximum length n
- text: Large text field for longer content
- decimal(m,d): Decimal number with m total digits and d decimal places
- integer: Whole number (typically 32-bit)
- boolean: True/False value (1 bit)
- date: Date value (YYYY-MM-DD)
- datetime: Date and time value (YYYY-MM-DD HH:MM:SS)
- USER → VEHICLE (One-to-Many: One owner can have multiple vehicles)
- USER → VEHICLE (One-to-One: One driver can be assigned to one vehicle)
- USER → DRIVER_APPLICATION (One-to-Many: One driver can apply for multiple vehicles)
- VEHICLE → DRIVER_APPLICATION (One-to-Many: One vehicle can have multiple applications)
- USER → PAYMENT (One-to-Many: One driver can make multiple payments)
- VEHICLE → PAYMENT (One-to-Many: One vehicle can receive multiple payments)
- USER → DRIVER_PROFILE (One-to-One: Each driver has one profile)
- VEHICLE → VEHICLE_DOCUMENT (One-to-Many: One vehicle can have multiple documents)
- USER → DRIVER_DOCUMENT (One-to-Many: One driver can have multiple documents)
- USER → FINANCIAL_REPORT (One-to-Many: One owner can have multiple reports)
- VEHICLE → FINANCIAL_REPORT (One-to-Many: One vehicle can have multiple reports)
- USER → NOTIFICATION (One-to-Many: One user can have multiple notifications)
- USER → ACTIVITY_LOG (One-to-Many: One user can have multiple activity logs)
- VEHICLE → VEHICLE_MAINTENANCE (One-to-Many: One vehicle can have multiple maintenance records)
- OGA (Owner)
- DRIVER (Driver)
- ADMIN (Administrator)
- KEKE (Tricycle)
- BUS (Bus)
- BIKE (Motorcycle)
- PENDING
- APPROVED
- REJECTED
- SUCCESSFUL
- FAILED
- LICENSE (Driver's License)
- ID_CARD (National ID)
- PASSPORT (International Passport)
- VEHICLE_REGISTRATION
- INSURANCE_CERTIFICATE
- ROADWORTHINESS_CERTIFICATE
- PAYMENT_RECEIVED
- APPLICATION_STATUS
- MAINTENANCE_REMINDER
- SYSTEM_ALERT
- WELCOME_MESSAGE
- LOGIN
- LOGOUT
- VEHICLE_ADDED
- PAYMENT_MADE
- APPLICATION_SUBMITTED
- PROFILE_UPDATED
- DOCUMENT_UPLOADED