Index: src/app/app.routes.ts
===================================================================
--- src/app/app.routes.ts	(revision a06ddbe11299c978028d0fd2a9863f92a3f8cca4)
+++ src/app/app.routes.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -8,4 +8,11 @@
 import { DriverDashboardComponent } from './driver/driver-dashboard/driver-dashboard.component';
 import { AdminDashboardComponent } from './admin/admin-dashboard/admin-dashboard.component';
+
+import { CustomerOrdersComponent } from './customer/customer-orders/customer-orders.component';
+import { CreateOrderComponent } from './customer/create-order/create-order.component';
+import { CustomerDeliveriesComponent } from './customer/customer-deliveries/customer-deliveries.component';
+import { CustomerProformasComponent } from './customer/customer-proformas/customer-proformas.component';
+import { CustomerProfileComponent } from './customer/customer-profile/customer-profile.component';
+
 import { AddDriverComponent } from './admin/add-driver/add-driver.component';
 import { AddVehicleComponent } from './admin/add-vehicle/add-vehicle.component';
@@ -13,5 +20,7 @@
 import { AddManagerComponent } from './admin/add-manager/add-manager.component';
 
+
 export const routes: Routes = [
+  // CUSTOMER ROUTES
   {
     path: 'customer/dashboard',
@@ -21,4 +30,36 @@
   },
   {
+
+    path: 'customer/orders',
+    component: CustomerOrdersComponent,
+    canActivate: [authGuard],
+    data: { roles: ['ROLE_CUSTOMER'] },
+  },
+  {
+    path: 'customer/orders/add',
+    component: CreateOrderComponent,
+    canActivate: [authGuard],
+    data: { roles: ['ROLE_CUSTOMER'] },
+  },
+  {
+    path: 'customer/deliveries',
+    component: CustomerDeliveriesComponent,
+    canActivate: [authGuard],
+    data: { roles: ['ROLE_CUSTOMER'] },
+  },
+  {
+    path: 'customer/proFormas',
+    component: CustomerProformasComponent,
+    canActivate: [authGuard],
+    data: { roles: ['ROLE_CUSTOMER'] },
+  },
+  {
+    path: 'customer/profile',
+    component: CustomerProfileComponent,
+    canActivate: [authGuard],
+    data: { roles: ['ROLE_CUSTOMER'] },
+  },
+  // MANAGER ROUTES
+  {
     path: 'manager/dashboard',
     component: ManagerDashboardComponent,
@@ -26,4 +67,5 @@
     data: { roles: ['ROLE_MANAGER'] },
   },
+  // DRIVER ROUTES
   {
     path: 'driver/dashboard',
@@ -32,4 +74,5 @@
     data: { roles: ['ROLE_DRIVER'] },
   },
+  // ADMIN ROUTES
   {
     path: 'admin/dashboard',
Index: src/app/customer/create-order/create-order.component.html
===================================================================
--- src/app/customer/create-order/create-order.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/create-order/create-order.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,110 @@
+<app-navbar></app-navbar>
+<div class="container mt-4">
+  <h1>Place Your Order</h1>
+
+  <!-- Filters -->
+  <div class="row mb-3">
+    <div class="col-md-4">
+      <label>Category</label>
+      <select class="form-select" formControlName="category">
+        <option value="">All</option>
+        <option *ngFor="let c of categories" [value]="c.id">
+          {{ c.name }}
+        </option>
+      </select>
+    </div>
+    <div class="col-md-4">
+      <label>Manufacturer</label>
+      <select class="form-select" formControlName="manufacturer">
+        <option value="">All</option>
+        <option *ngFor="let m of manufacturers" [value]="m.id">
+          {{ m.name }}
+        </option>
+      </select>
+    </div>
+    <div class="col-md-4">
+      <label>Article Name</label>
+      <input
+        type="text"
+        class="form-control"
+        formControlName="search"
+        placeholder="Search article"
+      />
+    </div>
+  </div>
+
+  <!-- Article Cards -->
+  <div
+    class="scrollable-cards row row-cols-1 row-cols-md-2 row-cols-lg-3 g-3 mb-4"
+  >
+    <div class="col" *ngFor="let a of displayed">
+      <div class="card h-100">
+        <img
+          *ngIf="a.image"
+          [src]="a.image"
+          class="card-img-top"
+          alt="Article Image"
+        />
+        <div class="card-body">
+          <h5 class="card-title">{{ a.name }}</h5>
+          <p class="card-text">
+            Manufacturer: {{ a.manufacturer }}<br />
+            Price: ${{ a.price.toFixed(2) }}<br />
+            In Stock: {{ a.quantity }}
+          </p>
+        </div>
+        <div class="card-footer">
+          <button class="btn btn-primary btn-sm w-100" (click)="addArticle(a)">
+            Add to Order
+          </button>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <!-- Order Summary -->
+  <h3>Order Summary</h3>
+  <table class="table table-bordered mb-3">
+    <thead>
+      <tr>
+        <th>Article</th>
+        <th>Unit Price</th>
+        <th>Manufacturer</th>
+        <th>Quantity</th>
+        <th>Line Total</th>
+        <th>Action</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr *ngFor="let it of orderItems; let i = index">
+        <td>{{ it.articleName }}</td>
+        <td>${{ it.unitPrice.toFixed(2) }}</td>
+        <td>{{ it.manufacturerName }}</td>
+        <td>{{ it.quantity }}</td>
+        <td>${{ (it.unitPrice * it.quantity).toFixed(2) }}</td>
+        <td>
+          <button class="btn btn-danger btn-sm" (click)="removeItem(i)">
+            Remove
+          </button>
+        </td>
+      </tr>
+    </tbody>
+  </table>
+
+  <div class="mb-3">
+    <label>Total Sum:</label>
+    <span class="fs-5">${{ totalSum.toFixed(2) }}</span>
+  </div>
+
+  <div class="form-check mb-3">
+    <input
+      type="checkbox"
+      class="form-check-input"
+      id="proForma"
+      (change)="toggleProForma($event)"
+    />
+    <label class="form-check-label" for="proForma">Request Pro Forma</label>
+  </div>
+
+  <button class="btn btn-success" (click)="placeOrder()">Place Order</button>
+</div>
Index: src/app/customer/create-order/create-order.component.spec.ts
===================================================================
--- src/app/customer/create-order/create-order.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/create-order/create-order.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CreateOrderComponent } from './create-order.component';
+
+describe('CreateOrderComponent', () => {
+  let component: CreateOrderComponent;
+  let fixture: ComponentFixture<CreateOrderComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CreateOrderComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(CreateOrderComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/app/customer/create-order/create-order.component.ts
===================================================================
--- src/app/customer/create-order/create-order.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/create-order/create-order.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,113 @@
+import { CommonModule } from '@angular/common';
+import { HttpClient } from '@angular/common/http';
+import { Component, OnInit } from '@angular/core';
+import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
+import { Router } from '@angular/router';
+import { NavbarComponent } from '../../navbar/navbar.component';
+import { Category, Manufacturer, Article, OrderItem } from '../../models';
+import { OrderService } from '../../services/order.service';
+
+@Component({
+  selector: 'app-create-order',
+  imports: [CommonModule, ReactiveFormsModule, NavbarComponent],
+  templateUrl: './create-order.component.html',
+  styleUrl: './create-order.component.css',
+})
+export class CreateOrderComponent implements OnInit {
+  form!: FormGroup;
+  categories: Category[] = [];
+  manufacturers: Manufacturer[] = [];
+  articles: Article[] = [];
+  displayed: Article[] = [];
+  orderItems: OrderItem[] = [];
+  totalSum = 0;
+  proForma = false;
+
+  constructor(
+    private http: HttpClient,
+    private router: Router,
+    private fb: FormBuilder,
+    private svc: OrderService
+  ) {}
+
+  ngOnInit() {
+    this.form = this.fb.group({
+      category: [''],
+      manufacturer: [''],
+      search: [''],
+    });
+
+    this.svc.listCategories().subscribe((c) => (this.categories = c));
+    this.svc.listManufacturers().subscribe((m) => (this.manufacturers = m));
+    this.svc.listArticles().subscribe((a) => {
+      this.articles = a;
+      this.applyFilter();
+    });
+
+    this.form.valueChanges.subscribe(() => this.applyFilter());
+  }
+
+  applyFilter() {
+    const { category, manufacturer, search } = this.form.value;
+
+    const term = (search || '').toLowerCase();
+
+    this.displayed = this.articles.filter((a) => {
+      return (
+        (!category || a.categoryId === +category) &&
+        (!manufacturer || a.manufacturerId === +manufacturer) &&
+        (!term || a.name.toLowerCase().includes(term))
+      );
+    });
+  }
+
+  addArticle(a: Article) {
+    const qty = Number(prompt(`Quantity for ${a.name}:`, '1'));
+
+    if (!qty || qty < 1 || qty > a.quantity) {
+      alert('invalid quantity');
+      return;
+    }
+    this.orderItems.push({
+      articleId: a.id,
+      articleName: a.name,
+      manufacturerName: a.manufacturer,
+      unitPrice: a.price,
+      quantity: qty,
+    });
+
+    this.updateTotal();
+  }
+
+  removeItem(i: number) {
+    this.orderItems.splice(i, 1);
+    this.updateTotal();
+  }
+
+  updateTotal() {
+    this.totalSum = this.orderItems.reduce(
+      (sum, it) => sum + it.unitPrice * it.quantity,
+      0
+    );
+  }
+
+  toggleProForma(event: any) {
+    this.proForma = event.target.checked;
+  }
+
+  placeOrder() {
+    if (this.orderItems.length === 0) {
+      alert('Add at least one item');
+      return;
+    }
+    this.svc.placeOrder(this.orderItems, this.proForma).subscribe({
+      next: () => {
+        alert('Order placed!');
+        this.orderItems = [];
+        this.updateTotal();
+        this.router.navigate(['/customer/dashboard']);
+      },
+      error: () => alert('Error'),
+    });
+  }
+}
Index: src/app/customer/customer-deliveries/customer-deliveries.component.html
===================================================================
--- src/app/customer/customer-deliveries/customer-deliveries.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-deliveries/customer-deliveries.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,1 @@
+<p>customer-deliveries works!</p>
Index: src/app/customer/customer-deliveries/customer-deliveries.component.spec.ts
===================================================================
--- src/app/customer/customer-deliveries/customer-deliveries.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-deliveries/customer-deliveries.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CustomerDeliveriesComponent } from './customer-deliveries.component';
+
+describe('CustomerDeliveriesComponent', () => {
+  let component: CustomerDeliveriesComponent;
+  let fixture: ComponentFixture<CustomerDeliveriesComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CustomerDeliveriesComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(CustomerDeliveriesComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/app/customer/customer-deliveries/customer-deliveries.component.ts
===================================================================
--- src/app/customer/customer-deliveries/customer-deliveries.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-deliveries/customer-deliveries.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-customer-deliveries',
+  imports: [],
+  templateUrl: './customer-deliveries.component.html',
+  styleUrl: './customer-deliveries.component.css'
+})
+export class CustomerDeliveriesComponent {
+
+}
Index: src/app/customer/customer-orders/customer-orders.component.html
===================================================================
--- src/app/customer/customer-orders/customer-orders.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-orders/customer-orders.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,1 @@
+<p>customer-orders works!</p>
Index: src/app/customer/customer-orders/customer-orders.component.spec.ts
===================================================================
--- src/app/customer/customer-orders/customer-orders.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-orders/customer-orders.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CustomerOrdersComponent } from './customer-orders.component';
+
+describe('CustomerOrdersComponent', () => {
+  let component: CustomerOrdersComponent;
+  let fixture: ComponentFixture<CustomerOrdersComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CustomerOrdersComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(CustomerOrdersComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/app/customer/customer-orders/customer-orders.component.ts
===================================================================
--- src/app/customer/customer-orders/customer-orders.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-orders/customer-orders.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-customer-orders',
+  imports: [],
+  templateUrl: './customer-orders.component.html',
+  styleUrl: './customer-orders.component.css'
+})
+export class CustomerOrdersComponent {
+
+}
Index: src/app/customer/customer-profile/customer-profile.component.html
===================================================================
--- src/app/customer/customer-profile/customer-profile.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-profile/customer-profile.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,1 @@
+<p>customer-profile works!</p>
Index: src/app/customer/customer-profile/customer-profile.component.spec.ts
===================================================================
--- src/app/customer/customer-profile/customer-profile.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-profile/customer-profile.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CustomerProfileComponent } from './customer-profile.component';
+
+describe('CustomerProfileComponent', () => {
+  let component: CustomerProfileComponent;
+  let fixture: ComponentFixture<CustomerProfileComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CustomerProfileComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(CustomerProfileComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/app/customer/customer-profile/customer-profile.component.ts
===================================================================
--- src/app/customer/customer-profile/customer-profile.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-profile/customer-profile.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-customer-profile',
+  imports: [],
+  templateUrl: './customer-profile.component.html',
+  styleUrl: './customer-profile.component.css'
+})
+export class CustomerProfileComponent {
+
+}
Index: src/app/customer/customer-proformas/customer-proformas.component.html
===================================================================
--- src/app/customer/customer-proformas/customer-proformas.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-proformas/customer-proformas.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,1 @@
+<p>customer-proformas works!</p>
Index: src/app/customer/customer-proformas/customer-proformas.component.spec.ts
===================================================================
--- src/app/customer/customer-proformas/customer-proformas.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-proformas/customer-proformas.component.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CustomerProformasComponent } from './customer-proformas.component';
+
+describe('CustomerProformasComponent', () => {
+  let component: CustomerProformasComponent;
+  let fixture: ComponentFixture<CustomerProformasComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CustomerProformasComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(CustomerProformasComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/app/customer/customer-proformas/customer-proformas.component.ts
===================================================================
--- src/app/customer/customer-proformas/customer-proformas.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/customer/customer-proformas/customer-proformas.component.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-customer-proformas',
+  imports: [],
+  templateUrl: './customer-proformas.component.html',
+  styleUrl: './customer-proformas.component.css'
+})
+export class CustomerProformasComponent {
+
+}
Index: src/app/models/article.model.ts
===================================================================
--- src/app/models/article.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/models/article.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,10 @@
+export interface Article {
+  id: number;
+  name: string;
+  categoryId: number;
+  manufacturerId: number;
+  manufacturer: string;
+  price: number;
+  quantity: number;
+  image?: string;
+}
Index: src/app/models/category.model.ts
===================================================================
--- src/app/models/category.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/models/category.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,4 @@
+export interface Category {
+  id: number;
+  name: string;
+}
Index: src/app/models/index.ts
===================================================================
--- src/app/models/index.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/models/index.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,4 @@
+export * from './category.model';
+export * from './manufacturer.model';
+export * from './article.model';
+export * from './order-item.model';
Index: src/app/models/manufacturer.model.ts
===================================================================
--- src/app/models/manufacturer.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/models/manufacturer.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,4 @@
+export interface Manufacturer {
+  id: number;
+  name: string;
+}
Index: src/app/models/order-item.model.ts
===================================================================
--- src/app/models/order-item.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/models/order-item.model.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,7 @@
+export interface OrderItem {
+  articleId: number;
+  articleName: string;
+  manufacturerName: string;
+  unitPrice: number;
+  quantity: number;
+}
Index: src/app/navbar/navbar.component.html
===================================================================
--- src/app/navbar/navbar.component.html	(revision a06ddbe11299c978028d0fd2a9863f92a3f8cca4)
+++ src/app/navbar/navbar.component.html	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -12,26 +12,37 @@
     <div class="collapse navbar-collapse" id="nav">
       <ul class="navbar-nav ms-auto">
-        <!-- Customer -->
-        <ng-container *ngIf="userRole === 'ROLE_CUSTOMER'">
-          <li class="nav-item">
-            <a class="nav-link" routerLink="/customer/home">Home</a>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" routerLink="/customer/orders">My Orders</a>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" routerLink="/customer/proformas"
-              >My Pro-Formas</a
-            >
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" routerLink="/customer/create-order"
-              >Create Order</a
-            >
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" routerLink="/customer/profile">Profile</a>
-          </li>
-        </ng-container>
+        <li *ngIf="userRole === 'CUSTOMER'" class="nav-item">
+          <a class="nav-link" routerLink="/customer/dashboard">
+            Customer Dashboard
+          </a>
+          <a class="nav-link" routerLink="/customer/orders">
+            Customer Orders
+          </a>
+          <a class="nav-link" routerLink="/customer/deliveries">
+            Customer Deliveries
+          </a>
+          <a class="nav-link" routerLink="/customer/proFormas">
+            Customer Pro Formas
+          </a>
+          <a class="nav-link" routerLink="/customer/profile">
+            Customer Profile
+          </a>
+          <a class="nav-link" routerLink="/customer/orders/create">
+            Craete an order
+          </a>
+        </li>
+        <li *ngIf="userRole === 'MANAGER'" class="nav-item">
+          <a class="nav-link" routerLink="/manager/dashboard"
+            >Manager Dashboard</a
+          >
+        </li>
+        <li *ngIf="userRole === 'DRIVER'" class="nav-item">
+          <a class="nav-link" routerLink="/driver/dashboard"
+            >Driver Dashboard</a
+          >
+        </li>
+        <li *ngIf="userRole === 'ADMIN'" class="nav-item">
+          <a class="nav-link" routerLink="/admin/dashboard">Admin Dashboard</a>
+        </li>
         <!-- Manager -->
         <ng-container *ngIf="userRole === 'ROLE_MANAGER'">
Index: src/app/services/order.service.spec.ts
===================================================================
--- src/app/services/order.service.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/services/order.service.spec.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { OrderService } from './order.service';
+
+describe('OrderService', () => {
+  let service: OrderService;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(OrderService);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});
Index: src/app/services/order.service.ts
===================================================================
--- src/app/services/order.service.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
+++ src/app/services/order.service.ts	(revision 95b0e0e553b2e5d068b676bf2d8319b7a5f018f9)
@@ -0,0 +1,33 @@
+import { Injectable } from '@angular/core';
+import { environment } from '../../environment';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+import { Article, Category, Manufacturer } from '../models';
+
+@Injectable({
+  providedIn: 'root',
+})
+export class OrderService {
+  constructor(private http: HttpClient) {}
+
+  listCategories(): Observable<Category[]> {
+    return this.http.get<Category[]>(`${environment.apiUrl}/category/all`);
+  }
+
+  listManufacturers(): Observable<Manufacturer[]> {
+    return this.http.get<Manufacturer[]>(
+      `${environment.apiUrl}/manufacturer/all`
+    );
+  }
+
+  listArticles(): Observable<Article[]> {
+    return this.http.get<Article[]>(`${environment.apiUrl}/article/all`);
+  }
+
+  placeOrder(orderItems: any[], proForma: boolean): Observable<any> {
+    return this.http.post(`${environment.apiUrl}/order/create-order`, {
+      orderItems,
+      proForma,
+    });
+  }
+}
