---
# System prepended metadata

title: '<center>25^th^ July, 2019</center>'
tags: [Daily Internship Documentation]

---

# <center>25^th^ July, 2019</center>

###### tags: `Daily Internship Documentation`
---
## 17^th^ Day of Internship

## Summary

Today I have a weekly progress presentation. I also modify some positioning configuration in the CSS file of the Dashboard & Detailed Information Page. I also have a weekly meeting with my team to discuss about the 

URL:
* [**NTUST_SmartDispenser Github ver 2019.07.25**](https://github.com/ianjoseph2204/NTUST_SmartDispenser/tree/f8eeb2e298feea2426b478a4030221b3ed7754b6)

---
## Weekly Presentation Powerpoint

{%slideshare IanJoseph13/20190725-ian-josephstatusreport %}

---
## Documentation

### 1. Dashboard Page
#### 1.1 dashboard.page.ts

1. Remove variables that store the value of pixel that used for Jellyfish icon & Bubble text top & left margin value.

2. Aldy created a variable to mark the *ngOnInit()* has already been run or not. 

```typescript=47
  // identify if ngOnInit is done
  private ngOnInitDone: boolean = false;
```

3. Modify the *ngOnInit()* method.
```typescript=60
async ngOnInit() {

    this.detectDevice();

    if (this.isDesktopType)
      this.adjustDynamicDesktopScreen();
    else
      this.adjustDynamicMobileScreen();

    // create loading screen
    await this.showLoadScreen();

    await this.setDeviceIdFromUrl();
    await this.setAPIsData();
    await this.setLocationText();

    // check if preference is not build yet
    await this.checkPrefFirstTime();
    await this.setPrefs();
    await this.getLoginEmail();

    await this.dismissLoadScreen();

    // call again to make sure that data from ngOnInit will load to ionViewDidEnter
    await this.ionViewDidEnter();

    // make ngOnInitDone to true so data can update
    this.ngOnInitDone = true;
  }
```

4. Modify the *ionViewDidenter()* method.
```typescript=90
  async ionViewDidEnter() {

    await this.getLoginEmail();

    if (this.ngOnInitDone) {
      // always check if any report submitted from login id
      await this.setReportCondition(this.emailAddress);

      // always check if dispenser is being tracked
      await this.setTrackCondition(this.emailAddress);
    }
  }
```

5. Modify the method to adjust the screen size, Remove some unnecessary variables from it.
```typescript=152
  private adjustScreen(){
    if((!this.isDesktopType) && (window.innerHeight < window.innerWidth)){
      this.headerHeight = this.screenHeight * 0.6;
      this.contentHeight = this.screenHeight * 0.4;
    }else{
      this.headerHeight = this.screenHeight * 0.7;
      this.contentHeight = this.screenHeight * 0.3;
    }

    // set components based on display size
    this.pageLeft = window.innerWidth/2 - this.screenWidth/2;
  }

```

#### 1.2 dashboard.page.html

1. Remove style pixel properties from location bubble text.
```htmlmixed=29
      <div class="speech-bubble">
        <div class="speech-bubble-text">
          {{dispenser_building_location}}
          <br>
          {{dispenser_floor_location}}
        </div>
      </div>
```

2. Remove style pixel properties from Jellyfish icon.
```htmlmixed=37
      <div class="jellyfish-icon">
        <img alt="avatar" src="assets/dashboard/jellyfishIcon.png">
      </div>
```

#### 1.3 dashboard.page.scss

1. Modify *.jellyfish-icon* class to be responsive with the screen condition.

```css=41
.jellyfish-icon {
    position: absolute;
    height: 120px;
    width: 120px;
    border-radius: 50px;
    left: 50%;
    margin-left: -60px;
    bottom: -60px;
}
```

2. Modify *.speech-bubble* class to be responsive with the screen condition.
```htmlmixed=51
.speech-bubble {
    position: absolute;
    background: white;
    border-radius: 18px;
    width: 270px;
    opacity: 0.8;
    text-align: center;
    bottom: 80px;
    left: 50%;
    margin-left: -135px;
}

.speech-bubble-text {
    padding: 10px 20px;
    font-size: 15px;
}

.speech-bubble:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-top-color: white;
    border-bottom: 0;
    margin-left: -10px;
    margin-bottom: -10px;
}
```

### 2. Detailed Information Page
#### 2.1 detailed-information.page.ts

1. Remove variables that store the value of pixel that used for Jellyfish icon & Bubble text top & left margin value.

2. Modify the method to adjust the screen size, Remove some unnecessary variables from it.
```typescript=111
  private adjustScreen(){
    this.headerHeight = this.screenHeight * 0.3;

    if(this.headerHeight < 150)
      this.headerHeight = 150;

    this.contentHeight = this.screenHeight - this.headerHeight;

    this.pageLeft = window.innerWidth/2 - this.screenWidth/2;
  }
```

#### 2.2 detailed-information.page.html

1. Remove style pixel properties from Jellyfish icon.
```htmlmixed=17
      <div class="jellyfish-icon">
        <img alt="avatar" src="assets/dashboard/jellyfishIcon.png">
      </div>
```

2. Remove style pixel properties from Detailed Information text.
```htmlmixed=22
      <div class="detailed-information-text">
        Detailed Information
      </div>
```

#### 2.3 detailed-information.page.scss

1. Modify the *.jellyfish-icon* class to be responsive with the screen.

```css=
.jellyfish-icon{
    position: absolute;
    height: 70px;
    width: 70px;
    border-radius: 50px;
    top: 50%;
    left: 50%;
    margin-left: -35px;
    margin-top: -35px;
}
```

2. Modify the *.detailed-information-text* class to be responsive with the screen.
```css=51
.detailed-information-text{
    font-stretch: normal;
    text-align: center;
    color: white;
    top: 50%;
    margin-top: 45px;
```
---
## Discussion Result

- Dispenser API will have function to login, register, get repairman assignment (next, today, and done), send notification when arrived, send report when repairment has complete.
- Repairman can register through the app using company email address and will receive verified account notification by the company.
---
## Result

<font color=red>Final result of the application:</font>
![](https://i.imgur.com/opfKEWb.gif)
