From dc4d2497435a7c038034f02641542cde10cf31a1 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Tue, 12 Apr 2022 22:50:14 +0200 Subject: Izmena --- .../item-dataset/item-dataset.component.css | 2 +- .../item-dataset/item-dataset.component.html | 31 ++++++++-------------- .../item-dataset/item-dataset.component.ts | 23 ++++++++++++++-- .../_elements/item-model/item-model.component.html | 16 +++-------- 4 files changed, 37 insertions(+), 35 deletions(-) (limited to 'frontend/src/app/_elements') diff --git a/frontend/src/app/_elements/item-dataset/item-dataset.component.css b/frontend/src/app/_elements/item-dataset/item-dataset.component.css index 1457311f..dc851671 100644 --- a/frontend/src/app/_elements/item-dataset/item-dataset.component.css +++ b/frontend/src/app/_elements/item-dataset/item-dataset.component.css @@ -1,5 +1,5 @@ .card{ - margin-top:10%; + margin-top:0; padding: 0; } .p-2{ diff --git a/frontend/src/app/_elements/item-dataset/item-dataset.component.html b/frontend/src/app/_elements/item-dataset/item-dataset.component.html index 142a9194..11ff61c3 100644 --- a/frontend/src/app/_elements/item-dataset/item-dataset.component.html +++ b/frontend/src/app/_elements/item-dataset/item-dataset.component.html @@ -6,42 +6,33 @@
Opis -

{{dataset.description}}opis1234564654768798768

+

{{dataset.description}}


-
- - +
+

{{dataset.extension}}

- - - + {{visibleicon}} +
+
+ {{accessibleicon}}

- +
- - +
{{column}}{{column.columnName}}
- - - + +
- - - - Kreirano{{dataset.dateCreated |date}}
- - - Poslednja izmena{{dataset.lastUpdated |date}}
calendar_today Kreirano{{dataset.dateCreated |date}}
edit_calendar Poslednja izmena{{dataset.lastUpdated |date}}
diff --git a/frontend/src/app/_elements/item-dataset/item-dataset.component.ts b/frontend/src/app/_elements/item-dataset/item-dataset.component.ts index 320cb10f..44b95310 100644 --- a/frontend/src/app/_elements/item-dataset/item-dataset.component.ts +++ b/frontend/src/app/_elements/item-dataset/item-dataset.component.ts @@ -9,13 +9,32 @@ import Dataset from 'src/app/_data/Dataset'; export class ItemDatasetComponent { @Input() dataset: Dataset = new Dataset(); - + visibleicon=''; + accessibleicon=''; isShowDiv = true; toggleDisplayDiv() { this.isShowDiv = !this.isShowDiv; } constructor() { } - + ngOnInit(): void { + if(this.dataset.isPublic==true) + { + this.visibleicon='visibility' + } + else + { + this.visibleicon='visibility_off'; + } + + if(this.dataset.accessibleByLink==true) + { + this.accessibleicon='link' + } + else + { + this.accessibleicon='link_off'; + } + } } diff --git a/frontend/src/app/_elements/item-model/item-model.component.html b/frontend/src/app/_elements/item-model/item-model.component.html index c64f8ca1..447f023e 100644 --- a/frontend/src/app/_elements/item-model/item-model.component.html +++ b/frontend/src/app/_elements/item-model/item-model.component.html @@ -9,23 +9,15 @@
Opis

- {{model.description}}opis1234564654768798768 + {{model.description}}


- - - -
- - - - Kreirano{{model.dateCreated |date}}
- - - Poslednja izmena{{model.lastUpdated |date}}
+ calendar_today Kreirano{{model.dateCreated |date}} + edit_calendar Poslednja izmena{{model.lastUpdated |date}} +
-- cgit v1.2.3 From 3f17af55326b0c901fddd6eb20767b4c068a779b Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Tue, 12 Apr 2022 22:53:34 +0200 Subject: "Treniraj model" stranica uradjena. Biranje eksperimenta i modela pa treniranje. Dodata item-experiment komponenta(kartica). Dodat api poziv getMyExperiments. Izmenjene klase Model i Experiment na back-u i trainModel u kontroleru. --- .../api/api/Controllers/ExperimentController.cs | 2 +- backend/api/api/Controllers/ModelController.cs | 14 ++++++-- backend/api/api/Models/Experiment.cs | 1 + backend/api/api/Models/Model.cs | 1 - .../item-experiment/item-experiment.component.css | 0 .../item-experiment/item-experiment.component.html | 10 ++++++ .../item-experiment.component.spec.ts | 25 +++++++++++++ .../item-experiment/item-experiment.component.ts | 15 ++++++++ frontend/src/app/_services/experiments.service.ts | 4 +++ frontend/src/app/_services/models.service.ts | 4 +-- frontend/src/app/app.module.ts | 4 ++- .../src/app/experiment/experiment.component.ts | 18 ---------- frontend/src/app/training/training.component.css | 2 +- frontend/src/app/training/training.component.html | 20 ++++++++--- frontend/src/app/training/training.component.ts | 42 +++++++++++++++++----- 15 files changed, 124 insertions(+), 38 deletions(-) create mode 100644 frontend/src/app/_elements/item-experiment/item-experiment.component.css create mode 100644 frontend/src/app/_elements/item-experiment/item-experiment.component.html create mode 100644 frontend/src/app/_elements/item-experiment/item-experiment.component.spec.ts create mode 100644 frontend/src/app/_elements/item-experiment/item-experiment.component.ts (limited to 'frontend/src/app/_elements') diff --git a/backend/api/api/Controllers/ExperimentController.cs b/backend/api/api/Controllers/ExperimentController.cs index 0063c532..c2cde931 100644 --- a/backend/api/api/Controllers/ExperimentController.cs +++ b/backend/api/api/Controllers/ExperimentController.cs @@ -75,7 +75,7 @@ namespace api.Controllers return Ok(experiment); } - [HttpPost("getMyExperiments")] + [HttpGet("getMyExperiments")] [Authorize(Roles = "User,Guest")] public async Task>> getMyExperiments() { diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs index 618b15e8..fc403ccf 100644 --- a/backend/api/api/Controllers/ModelController.cs +++ b/backend/api/api/Controllers/ModelController.cs @@ -33,10 +33,13 @@ namespace api.Controllers _mlConnectionService = mlConnectionService; } - [HttpPost("sendModel")] + [HttpPost("trainModel")] [Authorize(Roles = "User,Guest")] - public async Task> Test([FromBody] string modelId,string experimentId) + public async Task> Test([FromBody] TrainModelObject trainModelObject) { + string experimentId = trainModelObject.ExperimentId; + string modelId = trainModelObject.ModelId; + string uploaderId; var header = Request.Headers[HeaderNames.Authorization]; if (AuthenticationHeaderValue.TryParse(header, out var headerValue)) @@ -238,4 +241,11 @@ namespace api.Controllers } } + + public class TrainModelObject + { + public string ModelId { get; set; } + public string ExperimentId { get; set; } + + } } diff --git a/backend/api/api/Models/Experiment.cs b/backend/api/api/Models/Experiment.cs index d5ce7627..bf029116 100644 --- a/backend/api/api/Models/Experiment.cs +++ b/backend/api/api/Models/Experiment.cs @@ -10,6 +10,7 @@ namespace api.Models public string _id { get; set; } public string name { get; set; } public string description { get; set; } + public string encoding { get; set; } public List ModelIds { get; set; } public string datasetId { get; set; } public string uploaderId { get; set; } diff --git a/backend/api/api/Models/Model.cs b/backend/api/api/Models/Model.cs index f0e4d346..72f989a6 100644 --- a/backend/api/api/Models/Model.cs +++ b/backend/api/api/Models/Model.cs @@ -23,7 +23,6 @@ namespace api.Models //Neural net training public string type { get; set; } - public string encoding { get; set; } public string optimizer { get; set; } public string lossFunction { get; set; } //public int inputNeurons { get; set; } diff --git a/frontend/src/app/_elements/item-experiment/item-experiment.component.css b/frontend/src/app/_elements/item-experiment/item-experiment.component.css new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/app/_elements/item-experiment/item-experiment.component.html b/frontend/src/app/_elements/item-experiment/item-experiment.component.html new file mode 100644 index 00000000..51fbfef3 --- /dev/null +++ b/frontend/src/app/_elements/item-experiment/item-experiment.component.html @@ -0,0 +1,10 @@ +
+
+ Naziv eksperimenta: {{experiment.name}} +
+
+

+ Opis: {{experiment.description}} +

+
+
\ No newline at end of file diff --git a/frontend/src/app/_elements/item-experiment/item-experiment.component.spec.ts b/frontend/src/app/_elements/item-experiment/item-experiment.component.spec.ts new file mode 100644 index 00000000..1da7d05d --- /dev/null +++ b/frontend/src/app/_elements/item-experiment/item-experiment.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ItemExperimentComponent } from './item-experiment.component'; + +describe('ItemExperimentComponent', () => { + let component: ItemExperimentComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ItemExperimentComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ItemExperimentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/_elements/item-experiment/item-experiment.component.ts b/frontend/src/app/_elements/item-experiment/item-experiment.component.ts new file mode 100644 index 00000000..31900d35 --- /dev/null +++ b/frontend/src/app/_elements/item-experiment/item-experiment.component.ts @@ -0,0 +1,15 @@ +import { Component, Input, OnInit } from '@angular/core'; +import Experiment from 'src/app/_data/Experiment'; + +@Component({ + selector: 'app-item-experiment', + templateUrl: './item-experiment.component.html', + styleUrls: ['./item-experiment.component.css'] +}) +export class ItemExperimentComponent{ + + @Input() experiment: Experiment = new Experiment(); + + constructor() { } + +} diff --git a/frontend/src/app/_services/experiments.service.ts b/frontend/src/app/_services/experiments.service.ts index 60d1bfb2..ecb3e262 100644 --- a/frontend/src/app/_services/experiments.service.ts +++ b/frontend/src/app/_services/experiments.service.ts @@ -15,4 +15,8 @@ export class ExperimentsService { addExperiment(experiment: Experiment): Observable { return this.http.post(`${API_SETTINGS.apiURL}/experiment/add`, experiment, { headers: this.authService.authHeader() }); } + + getMyExperiments(): Observable { + return this.http.get(`${API_SETTINGS.apiURL}/experiment/getmyexperiments`, { headers: this.authService.authHeader() }); + } } diff --git a/frontend/src/app/_services/models.service.ts b/frontend/src/app/_services/models.service.ts index 3fbad109..9a1e71da 100644 --- a/frontend/src/app/_services/models.service.ts +++ b/frontend/src/app/_services/models.service.ts @@ -35,8 +35,8 @@ export class ModelsService { addDataset(dataset: Dataset): Observable { return this.http.post(`${API_SETTINGS.apiURL}/dataset/add`, dataset, { headers: this.authService.authHeader() }); } - trainModel(model: Model): Observable { - return this.http.post(`${API_SETTINGS.apiURL}/model/sendmodel`, model, { headers: this.authService.authHeader(), responseType: 'text' }); + trainModel(modelId: string, experimentId: string): Observable { + return this.http.post(`${API_SETTINGS.apiURL}/model/trainmodel`, { ModelId: modelId, ExperimentId: experimentId }, { headers: this.authService.authHeader(), responseType: 'text' }); } getMyDatasets(): Observable { diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index 3909c680..727bca63 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -45,6 +45,7 @@ import { AlertDialogComponent } from './_modals/alert-dialog/alert-dialog.compon import { AddNewDatasetComponent } from './_elements/add-new-dataset/add-new-dataset.component'; import { GraphComponent } from './_elements/graph/graph.component'; import { TrainingComponent } from './training/training.component'; +import { ItemExperimentComponent } from './_elements/item-experiment/item-experiment.component'; @NgModule({ declarations: [ @@ -79,7 +80,8 @@ import { TrainingComponent } from './training/training.component'; AlertDialogComponent, AddNewDatasetComponent, GraphComponent, - TrainingComponent + TrainingComponent, + ItemExperimentComponent ], imports: [ BrowserModule, diff --git a/frontend/src/app/experiment/experiment.component.ts b/frontend/src/app/experiment/experiment.component.ts index 74ee9ee7..b8b6f69c 100644 --- a/frontend/src/app/experiment/experiment.component.ts +++ b/frontend/src/app/experiment/experiment.component.ts @@ -204,22 +204,4 @@ export class ExperimentComponent implements OnInit { } }); } - - trainModel() { - this.trainingResult = undefined; - //console.log('Training model...', this.selectedModel); - if (!this.selectedDataset) { - Shared.openDialog('Greška', 'Izvor podataka nije izabran!'); - return; - } - // TODO proveri nullValues - if (!this.selectedModel) { - Shared.openDialog('Greška', 'Model nije izabran!'); - return; - } - this.modelsService.trainModel(this.selectedModel).subscribe((response: any) => { - console.log('Train model complete!', response); - this.trainingResult = response; - }); - } } diff --git a/frontend/src/app/training/training.component.css b/frontend/src/app/training/training.component.css index ee4b0448..490c56b5 100644 --- a/frontend/src/app/training/training.component.css +++ b/frontend/src/app/training/training.component.css @@ -29,7 +29,7 @@ border-color: #003459; } -.selectedDatasetClass { +.selectedExperimentClass { /*border-color: 2px solid #003459;*/ background-color: lightblue; } diff --git a/frontend/src/app/training/training.component.html b/frontend/src/app/training/training.component.html index 1939d3cf..2e574c12 100644 --- a/frontend/src/app/training/training.component.html +++ b/frontend/src/app/training/training.component.html @@ -4,13 +4,25 @@
-

1. Izaberi eksperiment

-TODO +

1. Izaberite eksperiment iz kolekcije

+
+ +
+
+
    +
  • + +
  • +
+
-

2.Izaberi model

+

2.Izaberite model

-

3. Treniraj model

+

3. Trenirajte model

diff --git a/frontend/src/app/training/training.component.ts b/frontend/src/app/training/training.component.ts index cb6c304c..4f20bc87 100644 --- a/frontend/src/app/training/training.component.ts +++ b/frontend/src/app/training/training.component.ts @@ -1,29 +1,55 @@ import { Component, OnInit } from '@angular/core'; +import Shared from '../Shared'; import Experiment from '../_data/Experiment'; import Model from '../_data/Model'; +import { DatasetsService } from '../_services/datasets.service'; +import { ExperimentsService } from '../_services/experiments.service'; +import { ModelsService } from '../_services/models.service'; @Component({ selector: 'app-training', templateUrl: './training.component.html', styleUrls: ['./training.component.css'] }) -export class TrainingComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } +export class TrainingComponent{ + myExperiments?: Experiment[]; selectedExperiment?: Experiment; selectedModel?: Model; trainingResult: any; - selectModel($model: Model) { + term: string = ""; + + constructor(private modelsService: ModelsService, private datasetsService: DatasetsService, private experimentsService: ExperimentsService) { + this.experimentsService.getMyExperiments().subscribe((experiments) => { + this.myExperiments = experiments; + console.log(this.myExperiments); + }); + } + + selectThisExperiment(experiment: Experiment) { + this.selectedExperiment = experiment; + } + selectModel(model: Model) { + this.selectedModel = model; } trainModel() { - //eksperiment i model moraju da budu izabrani + this.trainingResult = undefined; + + if (this.selectedExperiment == undefined) { + Shared.openDialog("Greška", "Molimo Vas da izaberete eksperiment iz kolekcije."); + return; + } + if (this.selectedModel == undefined) { + Shared.openDialog("Greška", "Molimo Vas da izaberete model."); + return; + } + this.modelsService.trainModel(this.selectedModel._id, this.selectedExperiment._id).subscribe((response: any) => { + console.log('Train model complete!', response); + this.trainingResult = response; + }); } } -- cgit v1.2.3