Skip to content

Use case in the construction industry

Collection of needs

Mr. Smith owns a construction company. He wants to develop an application to digitize his business. To do this, he turns to the back office solution.

Mr. Smith is particularly keen to boost his stock system. Today, everything is saved on spreadsheet files.

Mr. Smith's company manages stocks of parts used for labor. When a part falls below a certain quantity threshold, an order is placed.

Mr. Smith also wants to follow the progress of his projects and get an overview.

Implementation

We offer an application model to Mr. Smith to meet his needs.

Diagram

Our schema consists of 5 entities:

  • Construction site movement
  • Stock movement
  • Order
  • Construction site
  • Part

Construction site movement

This entity is used to list the movements of workers (user) on construction sites. The implementation of two attributes start_at and end_at of type Datetime will make it possible to offer a calendar view to Mr. Smith.

Part

This entity makes it possible to list the parts available for construction sites. A part has a reference, a quantity and a price.

Construction site

A construction site has a location attribute, a documents attribute, and a cost virtual field whose function is SUM($stock_movements.cost). This function allows you to calculate the sum of the costs of stock movements.

Order

An order has a quantity attribute and a cost virtual field whose function is $part.price * $quantity. This function allows you to calculate the cost of an order.

An order also has two triggers:

  • an after creation whose function is $part.quantity += $quantity
  • an after deletion whose function is $part.quantity -= $quantity

Both of these triggers are used to update the quantity of the associated part after adding or removing.

Stock movement

An inventory movement has a quantity attribute and a cost virtual field whose function is $part.price * $quantity. This function is used to calculate the cost of a stock movement.

A stock movement has two triggers:

  • an after creation whose function is $part.quantity -= $quantity
  • an after deletion whose function is $part.quantity += $quantity

Both of these triggers are used to update the quantity of the associated part after adding or removing.

Management

In order to get an overview of his business, we suggest that Mr. Smith create metrics and charts.

Metrics

Mr. Smith wants to be alerted when a part falls below a quantity threshold of 10. To do this, we create the associated metric.

Minimum of quantities of parts

AttributeValue
AggregateMinimum
DataPart
FieldQuantity
ComparatorLess than
Alert threshold10

Charts

Mr. Smith wants to manage the evolution of the costs of his activity. To do this, we add two charts to the main dashboard to monitor the costs of stock movements and orders by past month.

Sum of cost of stock movements per month

AttributeValue
TypeColumn chart
AggregateSum
DataOrder
Y-axis attributeCost
X-axis attributeMonth

Sum of cost of orders per month

AttributeValue
TypeColumn chart
AggregateSum
DataStock movement
Y-axis attributeCost
X-axis attributeMonth