Update README
All checks were successful
Build and Push Docker Image / build_and_push (push) Successful in 1m53s
All checks were successful
Build and Push Docker Image / build_and_push (push) Successful in 1m53s
This commit is contained in:
99
README.md
99
README.md
@@ -1,12 +1,99 @@
|
|||||||
# COOPGO Fleets
|
# COOPGO Fleets
|
||||||
|
|
||||||
COOPGO Fleets is a vehicle management and booking service.
|
COOPGO Fleets is a vehicle fleet management microservice providing vehicle and booking management capabilities.
|
||||||
|
|
||||||
It provides :
|
## Features
|
||||||
|
|
||||||
- a gRPC API to manage fleets of vehicles and bookings
|
- gRPC API for vehicle and booking management
|
||||||
- availability information on véhicles
|
- Vehicle availability tracking with booking integration
|
||||||
- a flexible data schema to push any information on vehicles or bookings
|
- Flexible data schema for custom vehicle and booking attributes
|
||||||
|
- Soft delete for bookings with metadata preservation
|
||||||
|
- Multi-namespace support for fleet isolation
|
||||||
|
- Vehicle filtering by type, administrator, and availability
|
||||||
|
|
||||||
It is not a full featured booking platform but just a microservice intended to be used as part of a bigger platform, like the COOPGO Technical Platform. It doesn't provide any king of booking UI or management interface.
|
## Architecture
|
||||||
|
|
||||||
|
This microservice is designed to be part of the COOPGO Technical Platform. It does not provide a UI or management interface.
|
||||||
|
|
||||||
|
```
|
||||||
|
├── grpcapi/ # gRPC server and protocol definitions
|
||||||
|
├── handlers/ # Business logic
|
||||||
|
└── storage/ # Database access layer (MongoDB, PostgreSQL)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Configuration is managed via Viper. Create a `config.yaml` file or use environment variables.
|
||||||
|
|
||||||
|
### Default configuration
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: "COOPGO Fleets"
|
||||||
|
dev_env: false
|
||||||
|
|
||||||
|
storage:
|
||||||
|
db:
|
||||||
|
type: mongodb # or "psql"
|
||||||
|
mongodb:
|
||||||
|
host: localhost
|
||||||
|
port: "27017"
|
||||||
|
db_name: coopgo_platform
|
||||||
|
collections:
|
||||||
|
vehicles: fleet_vehicles
|
||||||
|
bookings: fleet_bookings
|
||||||
|
|
||||||
|
services:
|
||||||
|
grpc:
|
||||||
|
enable: true
|
||||||
|
port: 8093
|
||||||
|
```
|
||||||
|
|
||||||
|
### Environment variables
|
||||||
|
|
||||||
|
Use underscore-separated uppercase names: `STORAGE_DB_TYPE`, `SERVICES_GRPC_PORT`, etc.
|
||||||
|
|
||||||
|
## Storage backends
|
||||||
|
|
||||||
|
- **MongoDB** (default)
|
||||||
|
- **PostgreSQL** (with Atlas migrations)
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build \
|
||||||
|
--build-arg ACCESS_TOKEN_USR=<user> \
|
||||||
|
--build-arg ACCESS_TOKEN_PWD=<password> \
|
||||||
|
-t coopgo-fleets .
|
||||||
|
```
|
||||||
|
|
||||||
|
## gRPC API
|
||||||
|
|
||||||
|
### Vehicles
|
||||||
|
|
||||||
|
| Method | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `AddVehicle` | Create a new vehicle |
|
||||||
|
| `GetVehicle` | Get a vehicle by ID (includes bookings) |
|
||||||
|
| `GetVehicles` | List vehicles with filters |
|
||||||
|
| `UpdateVehicle` | Update vehicle data |
|
||||||
|
|
||||||
|
### Bookings
|
||||||
|
|
||||||
|
| Method | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `CreateBooking` | Create a booking |
|
||||||
|
| `GetBooking` | Get a booking by ID |
|
||||||
|
| `GetBookings` | List all bookings |
|
||||||
|
| `GetDriverBookings` | Get bookings for a driver |
|
||||||
|
| `UpdateBooking` | Update a booking |
|
||||||
|
| `DeleteBooking` | Soft delete a booking |
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See [LICENSE.md](LICENSE.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user