Merge branch 'main' of https://gitea.fhgr.ch/stoffelmauro/ConsultancyProject_2_ETL
This commit is contained in:
		
						commit
						818d6fb5ec
					
				@ -21,14 +21,14 @@ LOG_STACK=single
 | 
			
		||||
LOG_DEPRECATIONS_CHANNEL=null
 | 
			
		||||
LOG_LEVEL=debug
 | 
			
		||||
 | 
			
		||||
DB_CONNECTION=sqlite
 | 
			
		||||
# DB_CONNECTION=sqlite
 | 
			
		||||
# DB_HOST=127.0.0.1
 | 
			
		||||
# DB_PORT=3306
 | 
			
		||||
# DB_DATABASE=laravel
 | 
			
		||||
# DB_USERNAME=root
 | 
			
		||||
# DB_PASSWORD=
 | 
			
		||||
 | 
			
		||||
SESSION_DRIVER=database
 | 
			
		||||
SESSION_DRIVER=file
 | 
			
		||||
SESSION_LIFETIME=120
 | 
			
		||||
SESSION_ENCRYPT=false
 | 
			
		||||
SESSION_PATH=/
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,16 @@
 | 
			
		||||
# How to run 
 | 
			
		||||
# Install
 | 
			
		||||
## Prerequisites
 | 
			
		||||
- In order to run this project please install all required software according to the laravel documentation: https://laravel.com/docs/11.x#installing-php
 | 
			
		||||
 | 
			
		||||
## Configuration & installation
 | 
			
		||||
- Make a copy of the .env.example to .env
 | 
			
		||||
- Run the following commands:
 | 
			
		||||
```bash
 | 
			
		||||
composer install && php artisan key:generate && npm i
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# Run server
 | 
			
		||||
```bash
 | 
			
		||||
composer run dev
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
npm run build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -19,8 +19,88 @@
 | 
			
		||||
<article>
 | 
			
		||||
    <div id="leaflet"></div>
 | 
			
		||||
</article>
 | 
			
		||||
 | 
			
		||||
<article class="header">
 | 
			
		||||
    <header>
 | 
			
		||||
      <h2>
 | 
			
		||||
        Gesamtauslastung
 | 
			
		||||
      </h2>
 | 
			
		||||
    </header>
 | 
			
		||||
    <div id="chart-heatmap"></div>
 | 
			
		||||
</article>
 | 
			
		||||
<script type="module">
 | 
			
		||||
const hours = [
 | 
			
		||||
    '12a', '1a', '2a', '3a', '4a', '5a', '6a',
 | 
			
		||||
    '7a', '8a', '9a', '10a', '11a',
 | 
			
		||||
    '12p', '1p', '2p', '3p', '4p', '5p',
 | 
			
		||||
    '6p', '7p', '8p', '9p', '10p', '11p'
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const extractionDates = {!! json_encode($growth['dates']) !!};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// prettier-ignore
 | 
			
		||||
let data = [];
 | 
			
		||||
 | 
			
		||||
for(let i = 0; i <= extractionDates.length; i++){
 | 
			
		||||
  for(let j = 0; j <= hours.length; j++){
 | 
			
		||||
    data.push([j,i,Math.random() * 3]);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const chartHeatmap = document.getElementById('chart-heatmap');
 | 
			
		||||
const cHeatmap = echarts.init(chartHeatmap);
 | 
			
		||||
const cHeatmapOptions = {
 | 
			
		||||
  tooltip: {
 | 
			
		||||
    position: 'top'
 | 
			
		||||
  },
 | 
			
		||||
  grid: {
 | 
			
		||||
    top: 0,
 | 
			
		||||
    right: 0,
 | 
			
		||||
    bottom: 0,
 | 
			
		||||
    left: 0
 | 
			
		||||
  },
 | 
			
		||||
  xAxis: {
 | 
			
		||||
    type: 'category',
 | 
			
		||||
    data: hours,
 | 
			
		||||
    splitArea: {
 | 
			
		||||
      show: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  yAxis: {
 | 
			
		||||
    type: 'category',
 | 
			
		||||
    data: extractionDates,
 | 
			
		||||
    splitArea: {
 | 
			
		||||
      show: true
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  visualMap: {
 | 
			
		||||
    min: 0,
 | 
			
		||||
    max: 10,
 | 
			
		||||
    calculable: true,
 | 
			
		||||
    orient: 'horizontal',
 | 
			
		||||
    left: 'center',
 | 
			
		||||
    bottom: '15%'
 | 
			
		||||
  },
 | 
			
		||||
  series: [
 | 
			
		||||
    {
 | 
			
		||||
      name: 'Punch Card',
 | 
			
		||||
      type: 'heatmap',
 | 
			
		||||
      data: data,
 | 
			
		||||
      label: {
 | 
			
		||||
        show: false
 | 
			
		||||
      },
 | 
			
		||||
      emphasis: {
 | 
			
		||||
        itemStyle: {
 | 
			
		||||
          shadowBlur: 10,
 | 
			
		||||
          shadowColor: 'rgba(0, 0, 0, 0.5)'
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cHeatmap.setOption(cHeatmapOptions);
 | 
			
		||||
 | 
			
		||||
const chartPropsPerRegion = document.getElementById('chart-props-per-region');
 | 
			
		||||
const cPropsPerRegion = echarts.init(chartPropsPerRegion);
 | 
			
		||||
const cPropsPerRegionOptions = {
 | 
			
		||||
@ -71,7 +151,7 @@ const cExtractionsOptions = {
 | 
			
		||||
  xAxis: {
 | 
			
		||||
    type: 'category',
 | 
			
		||||
    boundaryGap: false,
 | 
			
		||||
    data: {!! json_encode($growth['dates']) !!}
 | 
			
		||||
    data: extractionDates
 | 
			
		||||
  },
 | 
			
		||||
  yAxis: {
 | 
			
		||||
    type: 'value'
 | 
			
		||||
@ -121,7 +201,6 @@ L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
 | 
			
		||||
 | 
			
		||||
const properties = {!! json_encode($geo) !!}
 | 
			
		||||
properties.forEach( prop => {
 | 
			
		||||
    console.log(prop);
 | 
			
		||||
    let coords = prop.coordinates.split(',');
 | 
			
		||||
    L.marker(coords).addTo(map).bindPopup('<a href="/prop/'+prop.id+'">'+prop.coordinates+'</a>');
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								documentation/diagrams/Systemarchitektur_C4.drawio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								documentation/diagrams/Systemarchitektur_C4.drawio
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0" version="25.0.3">
 | 
			
		||||
  <diagram name="Seite-1" id="5abS_fUiar5VuBZXZINZ">
 | 
			
		||||
    <mxGraphModel dx="1195" dy="1534" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
 | 
			
		||||
      <root>
 | 
			
		||||
        <mxCell id="0" />
 | 
			
		||||
        <mxCell id="1" parent="0" />
 | 
			
		||||
        <object placeholders="1" c4Name="REST-API" c4Type="Python (FastAPI)" c4Description="REST Schnittstelle" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="DRD_0cKAZXVdgcTgqyKr-1">
 | 
			
		||||
          <mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#1061B0;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0D5091;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="1">
 | 
			
		||||
            <mxGeometry x="360" y="40" width="240" height="120" as="geometry" />
 | 
			
		||||
          </mxCell>
 | 
			
		||||
        </object>
 | 
			
		||||
        <mxCell id="DRD_0cKAZXVdgcTgqyKr-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="DRD_0cKAZXVdgcTgqyKr-2" target="DRD_0cKAZXVdgcTgqyKr-1">
 | 
			
		||||
          <mxGeometry relative="1" as="geometry" />
 | 
			
		||||
        </mxCell>
 | 
			
		||||
        <object placeholders="1" c4Name="Data" c4Type="Python (Polars)" c4Description="Eigenes Python Package. Enthält Programmcode für das ETL" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="DRD_0cKAZXVdgcTgqyKr-2">
 | 
			
		||||
          <mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#1061B0;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0D5091;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="1">
 | 
			
		||||
            <mxGeometry x="40" y="40" width="240" height="120" as="geometry" />
 | 
			
		||||
          </mxCell>
 | 
			
		||||
        </object>
 | 
			
		||||
        <object placeholders="1" c4Name="Datenbank" c4Type="Container" c4Technology="DuckDB" c4Description="Datenbank, welches die aggregierten Daten enthält." label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%:&nbsp;%c4Technology%]</div><br><div><font style="font-size: 11px"><font color="#E6E6E6">%c4Description%</font></div>" id="DRD_0cKAZXVdgcTgqyKr-3">
 | 
			
		||||
          <mxCell style="shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;" vertex="1" parent="1">
 | 
			
		||||
            <mxGeometry x="40" y="240" width="240" height="120" as="geometry" />
 | 
			
		||||
          </mxCell>
 | 
			
		||||
        </object>
 | 
			
		||||
        <mxCell id="DRD_0cKAZXVdgcTgqyKr-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="DRD_0cKAZXVdgcTgqyKr-2" target="DRD_0cKAZXVdgcTgqyKr-3">
 | 
			
		||||
          <mxGeometry relative="1" as="geometry" />
 | 
			
		||||
        </mxCell>
 | 
			
		||||
      </root>
 | 
			
		||||
    </mxGraphModel>
 | 
			
		||||
  </diagram>
 | 
			
		||||
</mxfile>
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user