Skip to main content

Challenge — Vehicle Fleet Manager

Objective

Build a CLI tool that manages a vehicle fleet using OOP.

Class Hierarchy

abstract class Vehicle {
abstract fuelType: string;
abstract maxSpeed: number;
constructor(public id: string, public make: string, public model: string, public year: number) {}
abstract describe(): string;
abstract startEngine(): string;
}

class Car extends Vehicle { fuelType = 'gasoline'; maxSpeed = 150; /* ... */ }
class Truck extends Vehicle { fuelType = 'diesel'; maxSpeed = 90; /* ... */ }
class ElectricCar extends Car { fuelType = 'electric'; /* ... */ }
class Motorbike extends Vehicle { fuelType = 'gasoline'; maxSpeed = 200; /* ... */ }

Requirements

  • 4 vehicle types (Car, Truck, ElectricCar, Motorbike) using inheritance
  • FleetManager class to add/remove/list vehicles
  • CLI interface using inquirer
  • Vitest test suite: at least 10 tests
  • TypeScript strict mode

Grading

CriteriaPoints
Class hierarchy with TypeScript30
FleetManager with CRUD20
Inquirer CLI20
10+ passing Vitest tests30
Total100