About A backend system for managing vehicle registrations, ownerships, and transfers for the Rwanda Revenue Authority (RRA). Features include user management, vehicle registration, ownership transfer, and tracking the history of vehicle ownership.
# 🚗 Rwanda Vehicle Tracking Management System
## 📌 Project Overview
This is a backend application developed using **Spring Boot 3**, **Spring Security 6**, and **PostgreSQL** to manage vehicle tracking and ownership records for the **Rwanda Revenue Authority (RRA)**. The system allows for vehicle registration, owner management, ownership transfers, and tracking the history of ownership changes.
> ⏱️ This project was built to meet the requirements of the Rwanda Revenue Authority's vehicle management system.
---
## 🚀 Features
- **User Management**:
- User registration with roles (**ROLE_ADMIN**, **ROLE_STANDARD**).
- User login using **JWT** authentication.
- **Vehicle Owner Management**:
- Register vehicle owners with personal details.
- Link multiple plate numbers to a single owner.
- Search vehicle owners by **National ID**, **email**, or **phone number**.
- Register plate numbers for owners and display associated plate numbers.
- **Vehicle Registration**:
- Register vehicles with details such as **chassis number**, **manufacturer**, **price**, **model**, and **year**.
- Link vehicles to specific owners and plate numbers.
- **Vehicle Transfer**:
- Transfer vehicle ownership between registered users.
- Capture the transfer price and assign a new plate number.
- Mark old plate numbers as **available** once the transfer is complete.
- **Ownership History**:
- Display the history of ownership changes for a vehicle.
- Track the transfer date, previous owner, and sale price.
---
## 🛠️ Tech Stack
| Technology | Version |
|------------------|-------------|
| Spring Boot | 3.x |
| Spring Security | 6.x |
| PostgreSQL | Latest |
| Swagger UI | Enabled |
---
## 🔐 API Documentation
> Accessible via Swagger UI:
localhost
---
## 🧾 Database Configuration
In `application.properties` or `application.yml`:
```properties
spring.datasource.url=jdbc:postgresql://localhost:5432/ve …