# Configuration Settings

Project settings are always configured by using a JSON configuration file in the project->public directory named build.json. This file contains a JSON object.

**build.json example for Hotel**

```json
{
  "name": "Hotel",
  "version": "1.0.0",
  "dependencies": {
    "online_booking_engine" : "1.0.0",
    "advance_deposit_report" : "1.0.0"
  },
  "settings": {
      "unit_name":{
         "singular": "room", 
         "plural" : "rooms" 
         },
      "unit_type_name" :  {
         "singular":"room type",
         "plural": "room types"
         },
         "hourly_booking_enabled" : true,
         "display_tooltip" : true
   }
}
```

**build.json example Hostel**

```json
{
   "name": "Hostel",
   "version": "1.0.0",
   "dependencies": {
      "online_booking_engine" : "1.0.0",
      "todays_panel" : "1.0.0",
      "invoice_email" : "1.0.0"      
   },
   "settings": {
      "unit_name":{ 
         "singular": "bed", 
         "plural" : "beds" 
         },
      "unit_type_name" : {
         "singular":"room type",
         "plural": "room types"
         },
      "display_tooltip" : true,
      "hourly_booking_enabled" : true,
      "allow_free_bookings" : true,
      "force_room_selection" : true      
   }
}
```

**build.json example for Vacation Rental**

```json
{
   "name": "Vacation Rental",
   "version": "1.0.0",
   "dependencies": {
      "online_booking_engine" : "1.0.0",
      "todays_panel" : "1.0.0",
      "invoice_email" : "1.0.0"      
   },
   "settings": {
      "unit_name":{ 
         "singular": "room",
         "plural" : "rooms" 
        },
      "unit_type_name" :  {
         "singular":"room type",
         "plural": "room types"
      },   
      "display_tooltip" : true,
      "hourly_booking_enabled" : true,
      "allow_free_bookings" : true,
      "force_room_selection" : true      
   }
}
```

**build.json example for Apartment**

```json
{
   "name": "Apartment",
   "version": "1.0.0",
   "dependencies": {
      "todays_panel" : "1.0.0",
      "advance_deposit_report" : "1.0.0",
      "invoice_email" : "1.0.0"
   },
   "settings": {
      "unit_name":{ 
         "singular": "unit", 
         "plural" : "units" 
         },
      "unit_type_name" :  {
         "singular":"unit type",
         "plural": "unit types"
      },
      "send_invoice_email_automatically" : true,
      "display_tooltip" : true,
      "is_total_balance_include_forecast" : true
   }
}
```

**build.json example for Car Rental**

```json
{
   "name": "Car Rental",
   "version": "1.0.0",
   "description": "",
   "dependencies": {
     "online_booking_engine" : "1.0.0",
   },
   "settings": {
      "unit_name":{ 
         "singular": "vehicle", 
         "plural" : "vehicles" 
         },
      "unit_type_name" :  {
         "singular":"vehicle type",
         "plural": "vehicle types"
         }
      },
      "allow_free_bookings" : false,
      "force_room_selection" : true,
      "is_total_balance_include_forecast" : true,
      "hourly_booking_enabled" : true      
   }   
}
```

**build.json for example** **Office Space**

```json
{
   "name": "Office Space",
   "version": "1.0.0",
   "dependencies": {
      "online_booking_engine" : "1.0.0",
      "advance_deposit_report" : "1.0.0",
      "automated_night_audit" : "1.0.0"
   },
   "settings": {
      "unit_name":{
         "singular": "room", 
         "plural" : "rooms" 
         },
      "unit_type_name" :  {
         "singular":"room type",
         "plural": "room types"
         },
         "hourly_booking_enabled" : true,
         "display_tooltip" : true
    }
  }
```

#### Here is a detailed description of each key.

**Name**

The name key holds the value of the property type. your business type will be the property type.

```json
name: "hotel"
```

**Version**

The version is broken down into 4 points e.g 1.2.3.4 We use MAJOR.MINOR.FEATURE.PATCH to describe the version numbers.

```json
version: "1.0.0"
```

**Dependencies**

This key has a JSON array of extensions that comes with this particular package. This JSON array has an extension name as a key and it's the version as value.

```json
"dependencies": {
"online_booking_engine": "1.0.0"
}
```

**Settings**

This key has a JSON array of feature settings. This JSON array has feature name as key and true or false as value for activating or deactivating a particular feature, handling this application's default features settings. below we have provided a table of feature settings attribute.jso

```json
"settings": {
      "unit_name":{
         "singular": "room", 
         "plural" : "rooms" 
         },
      "unit_type_name" :  {
         "singular":"room type",
         "plural": "room types"
         },
         "hourly_booking_enabled" : true,
         "display_tooltip" : true
   }
```
