diff options
Diffstat (limited to 'backend/api')
-rw-r--r-- | backend/api/api/Controllers/DatasetController.cs | 74 | ||||
-rw-r--r-- | backend/api/api/Controllers/FileController.cs | 42 | ||||
-rw-r--r-- | backend/api/api/Controllers/ModelController.cs | 86 | ||||
-rw-r--r-- | backend/api/api/Controllers/PredictorController.cs | 66 | ||||
-rw-r--r-- | backend/api/api/Program.cs | 2 | ||||
-rw-r--r-- | backend/api/api/Services/DatasetService.cs | 21 | ||||
-rw-r--r-- | backend/api/api/Services/FileService.cs | 8 | ||||
-rw-r--r-- | backend/api/api/Services/FillAnEmptyDb.cs | 269 | ||||
-rw-r--r-- | backend/api/api/Services/IDatasetService.cs | 3 | ||||
-rw-r--r-- | backend/api/api/Services/IFileService.cs | 1 |
10 files changed, 275 insertions, 297 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs index 39e4e36e..e9c824f9 100644 --- a/backend/api/api/Controllers/DatasetController.cs +++ b/backend/api/api/Controllers/DatasetController.cs @@ -181,80 +181,6 @@ namespace api.Controllers } - public void AddToEmptyDb() - { - - if (_datasetService.CheckDb()) - { - - Dataset dataset = new Dataset(); - - dataset.username = "igrannonica"; - dataset.name = "Igrannonica dataset 1"; - dataset.description = "Opis dataseta 1"; - //dataset.header = "" - dataset.fileId = ""; - dataset.extension = ""; - dataset.isPublic = true; - dataset.accessibleByLink = true; - dataset.dateCreated = DateTime.Now; - dataset.lastUpdated = DateTime.Now; - - dataset.delimiter = ""; - dataset.hasHeader = true; - //dataset.columnInfo = ; - dataset.nullCols = 0; - dataset.nullRows = 0; - dataset.isPreProcess = true; - - - _datasetService.Create(dataset); - - dataset.username = "igrannonica"; - dataset.name = "Igrannonica dataset 2"; - dataset.description = "Opis dataseta 2"; - //dataset.header = "" - dataset.fileId = ""; - dataset.extension = ""; - dataset.dateCreated = DateTime.Now; - dataset.lastUpdated = DateTime.Now; - - dataset.delimiter = ""; - dataset.hasHeader = true; - //dataset.columnInfo = ; - dataset.nullCols = 0; - dataset.nullRows = 0; - dataset.isPreProcess = true; - - - _datasetService.Create(dataset); - - dataset.username = "igrannonica"; - dataset.name = "Igrannonica dataset 1"; - dataset.description = "Opis dataseta 1"; - //dataset.header = "" - dataset.fileId = ""; - dataset.extension = ""; - dataset.dateCreated = DateTime.Now; - dataset.lastUpdated = DateTime.Now; - - dataset.delimiter = ""; - dataset.hasHeader = true; - //dataset.columnInfo = ; - dataset.nullCols = 0; - dataset.nullRows = 0; - dataset.isPreProcess = true; - - - _datasetService.Create(dataset); - - - - - } - - } - // PUT api/<DatasetController>/{name} [HttpPut("{name}")] [Authorize(Roles = "User")] diff --git a/backend/api/api/Controllers/FileController.cs b/backend/api/api/Controllers/FileController.cs index b36d9eb9..0be480f2 100644 --- a/backend/api/api/Controllers/FileController.cs +++ b/backend/api/api/Controllers/FileController.cs @@ -264,47 +264,5 @@ namespace api.Controllers } - - [HttpGet("proba")] - public void AddFileToEmptyDb() - { - FileModel file = new FileModel(); - - string folderName = "UploadedFiles/Igrannonica"; - var folderPath = Path.Combine(Directory.GetCurrentDirectory(), folderName, "Igrannonica"); - var fullPath = Path.Combine(folderPath, "titanic.csv"); - - file._id = ""; - file.type = ".csv"; - file.uploaderId = "Igrannonica"; - file.path = fullPath; - file.date = DateTime.Now; - - _fileservice.Create(file); - - - file = new FileModel(); - - fullPath = Path.Combine(folderPath, "diamonds.csv"); - file._id = ""; - file.type = ".csv"; - file.uploaderId = "Igrannonica"; - file.path = fullPath; - file.date = DateTime.Now; - - _fileservice.Create(file); - - - file = new FileModel(); - - fullPath = Path.Combine(folderPath, "IMDB-Movie-Data.csv"); - file._id = ""; - file.type = ".csv"; - file.uploaderId = "Igrannonica"; - file.path = fullPath; - file.date = DateTime.Now; - - _fileservice.Create(file); - } } } diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs index 727d4a10..625054d4 100644 --- a/backend/api/api/Controllers/ModelController.cs +++ b/backend/api/api/Controllers/ModelController.cs @@ -178,92 +178,6 @@ namespace api.Controllers - public void AddToEmptyDb() - { - - if (_modelService.CheckDb()) - { - Model model = new Model(); - - model._id = ""; - model.username = "Igrannonica"; - model.name = "Igrannonica model 1"; - model.description = "Opis modela 1"; - model.dateCreated = DateTime.Now; - model.lastUpdated = DateTime.Now; - model.experimentId = ""; - model.type = "regresioni"; - model.encoding = "label"; - model.optimizer = "Adam"; - model.lossFunction = "mean_squared_error"; - model.hiddenLayerNeurons = 1; - model.hiddenLayers = 1; - model.batchSize = 5; - model.outputNeurons = 0; - model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; - model.outputLayerActivationFunction = "sigmoid"; - model.metrics = new string[] { }; - model.epochs = 5; - model.isTrained = false; - - _modelService.Create(model); - - model = new Model(); - - model._id = ""; - model.username = "Igrannonica"; - model.name = "Igrannonica model 2"; - model.description = "Opis modela 2"; - model.dateCreated = DateTime.Now; - model.lastUpdated = DateTime.Now; - model.experimentId = ""; - model.type = ""; - model.encoding = ""; - model.optimizer = ""; - model.lossFunction = ""; - model.hiddenLayerNeurons = 0; - model.hiddenLayers = 0; - model.batchSize = 0; - model.outputNeurons = 0; - model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; - model.outputLayerActivationFunction = ""; - model.metrics = new string[] { }; - model.epochs = 0; - model.isTrained = false; - - _modelService.Create(model); - - model = new Model(); - - model._id = ""; - model.username = "Igrannonica"; - model.name = "Igrannonica model 3"; - model.description = "Opis modela 3"; - model.dateCreated = DateTime.Now; - model.lastUpdated = DateTime.Now; - model.experimentId = ""; - model.type = ""; - model.encoding = ""; - model.optimizer = ""; - model.lossFunction = ""; - model.hiddenLayerNeurons = 0; - model.hiddenLayers = 0; - model.batchSize = 0; - model.outputNeurons = 0; - model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; - model.outputLayerActivationFunction = ""; - model.metrics = new string[] { }; - model.epochs = 0; - model.isTrained = false; - - _modelService.Create(model); - - //dodaj javne datasetove - } - - } - - // PUT api/<ModelController>/{name} [HttpPut("{name}")] diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs index bfb5283f..b9215822 100644 --- a/backend/api/api/Controllers/PredictorController.cs +++ b/backend/api/api/Controllers/PredictorController.cs @@ -16,14 +16,12 @@ namespace api.Controllers private readonly IPredictorService _predictorService; private IJwtToken jwtToken; private readonly IMlConnectionService _mlConnectionService; - private readonly IFileService _fileService; - public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService, IFileService fileService) + public PredictorController(IPredictorService predictorService, IConfiguration configuration, IJwtToken Token, IMlConnectionService mlConnectionService) { _predictorService = predictorService; jwtToken = Token; _mlConnectionService = mlConnectionService; - _fileService = fileService; } @@ -191,68 +189,6 @@ namespace api.Controllers } } - - public void AddToEmptyDb() - { - - if (_predictorService.CheckDb()) - { - Predictor predictor = new Predictor(); - - predictor._id = ""; - predictor.username = "Igrannonica"; - predictor.name = "Igrannonica Predictor 1"; - predictor.description = "Opis predictora 1"; - //predictor.inputs = { 1, 3, 5, 7, 9 }; - predictor.output = "s"; - predictor.isPublic = true; - predictor.accessibleByLink = true; - predictor.dateCreated = DateTime.Now; - predictor.experimentId = "0"; - //izmeni experiment id - - _predictorService.Create(predictor); - - - predictor = new Predictor(); - - predictor._id = ""; - predictor.username = "Igrannonica"; - predictor.name = "Igrannonica Predictor 1"; - predictor.description = "Opis predictora 1"; - //predictor.inputs = { 1, 3, 5, 7, 9 }; - predictor.output = "s"; - predictor.isPublic = true; - predictor.accessibleByLink = true; - predictor.dateCreated = DateTime.Now; - predictor.experimentId = "0"; - //izmeni experiment id - - _predictorService.Create(predictor); - - - predictor = new Predictor(); - - predictor._id = ""; - predictor.username = "Igrannonica"; - predictor.name = "Igrannonica Predictor 1"; - predictor.description = "Opis predictora 1"; - //predictor.inputs = { 1, 3, 5, 7, 9 }; - predictor.output = "s"; - predictor.isPublic = true; - predictor.accessibleByLink = true; - predictor.dateCreated = DateTime.Now; - predictor.experimentId = "0"; - //izmeni experiment id - - _predictorService.Create(predictor); - - //dodaj javne datasetove - } - - } - - // POST api/<PredictorController>/usepredictor {predictor,inputs} [HttpPost("usepredictor/{id}")] [Authorize(Roles = "User,Guest")] diff --git a/backend/api/api/Program.cs b/backend/api/api/Program.cs index 69fa984b..2d6dcfbb 100644 --- a/backend/api/api/Program.cs +++ b/backend/api/api/Program.cs @@ -43,7 +43,7 @@ builder.Services.AddSingleton<IMLWebSocketService>(mlwss); builder.Services.AddHostedService(_ => mlwss); builder.Services.AddHostedService<TempFileService>(); -//builder.Services.AddHostedService<TempFileService>(); +builder.Services.AddHostedService<FillAnEmptyDb>(); //Add Authentication builder.Services.AddAuthentication( diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 1d1b5eec..176ab424 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -83,15 +83,22 @@ namespace api.Services _dataset.ReplaceOne(x=>x._id==dataset._id, dataset); } - public bool CheckDb() + public string GetDatasetId(string fileId) { - Dataset? dataset = null; - dataset = _dataset.Find(dataset => dataset.username == "igrannonica").FirstOrDefault(); + Dataset dataset = _dataset.Find(dataset => dataset.fileId == fileId && dataset.username == "Igrannonica").FirstOrDefault(); - if (dataset != null) - return false; - else - return true; + return dataset._id; } + /* +public bool CheckDb() +{ + Dataset? dataset = null; + dataset = _dataset.Find(dataset => dataset.username == "igrannonica").FirstOrDefault(); + + if (dataset != null) + return false; + else + return true; +}*/ } } diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs index 069bef90..426f2624 100644 --- a/backend/api/api/Services/FileService.cs +++ b/backend/api/api/Services/FileService.cs @@ -23,8 +23,8 @@ namespace api.Services return null; _file.InsertOne(file); return file; - } + public string GetFilePath(string id, string uploaderId) { FileModel file; @@ -36,6 +36,7 @@ namespace api.Services return null; return file.path; } + public FileModel getFile(string id) { return _file.Find(x=>x._id==id).FirstOrDefault(); @@ -50,8 +51,13 @@ namespace api.Services return false; else return true; + } + public string GetFileId(string fullPath) + { + FileModel file = _file.Find(file => file.path == fullPath).FirstOrDefault(); + return file._id; } } } diff --git a/backend/api/api/Services/FillAnEmptyDb.cs b/backend/api/api/Services/FillAnEmptyDb.cs index 4c05bdc1..33c1ada6 100644 --- a/backend/api/api/Services/FillAnEmptyDb.cs +++ b/backend/api/api/Services/FillAnEmptyDb.cs @@ -4,41 +4,58 @@ using MongoDB.Driver; namespace api.Services { - public class FillAnEmptyDb + public class FillAnEmptyDb : IHostedService { - private readonly IMongoCollection<Dataset> _dataset; - private readonly IMongoCollection<Model> _model; - private readonly IMongoCollection<Predictor> _predictor; - private readonly IDatasetService _datasetService; private readonly IFileService _fileService; + private readonly IDatasetService _datasetService; + private readonly IModelService _modelService; + private readonly IExperimentService _experimentService; + private readonly IPredictorService _predictorService; - public FillAnEmptyDb(IUserStoreDatabaseSettings settings, IMongoClient mongoClient, IDatasetService datasetService, IFileService fileService) + public FillAnEmptyDb(IUserStoreDatabaseSettings settings, IMongoClient mongoClient) { var database = mongoClient.GetDatabase(settings.DatabaseName); - _dataset = database.GetCollection<Dataset>(settings.DatasetCollectionName); - _model = database.GetCollection<Model>(settings.ModelCollectionName); - _predictor = database.GetCollection<Predictor>(settings.PredictorCollectionName); - _datasetService = datasetService; - _fileService = fileService; + _fileService = new FileService(settings,mongoClient); + _datasetService = new DatasetService(settings, mongoClient); + _modelService = new ModelService(settings, mongoClient); + _experimentService = new ExperimentService(settings, mongoClient); + _predictorService = new PredictorService(settings, mongoClient); } - public void AddToEmptyDb() + + + //public void AddToEmptyDb() + public Task StartAsync(CancellationToken cancellationToken) { if (_fileService.CheckDb()) { - //prvo dodati fajl 3 csv-a - Dataset dataset = new Dataset(); + /* + FileModel file = new FileModel(); + + string folderName = "UploadedFiles/Igrannonica"; + var folderPath = Path.Combine(Directory.GetCurrentDirectory(), folderName, "Igrannonica"); + var fullPath = Path.Combine(folderPath, "titanic.csv"); + + file._id = ""; + file.type = ".csv"; + file.uploaderId = "Igrannonica"; + file.path = fullPath; + file.date = DateTime.Now; + _fileService.Create(file); + + + Dataset dataset = new Dataset(); dataset._id = ""; dataset.username = "Igrannonica"; - dataset.name = "Titanik"; + dataset.name = "Titanik dataset"; dataset.description = "Opis dataseta 1"; dataset.header = new string[] { "PassengerId", "Survived", "Pclass", "Name", "Sex", "Age", "SibSp", "Parch", "Ticket", "Fare", "Cabin", "Embarked" }; - dataset.fileId = "";//DODAAAAAJ getFileId(username naziv fajla) + dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; dataset.isPublic = true; dataset.accessibleByLink = true; @@ -54,14 +71,86 @@ namespace api.Services _datasetService.Create(dataset); + Model model = new Model(); + + model._id = ""; + model.username = "Igrannonica"; + model.name = "Titanik model"; + model.description = "Opis modela 1"; + model.dateCreated = DateTime.Now; + model.lastUpdated = DateTime.Now; + model.experimentId = ""; + model.type = "regresioni"; + model.encoding = "label"; + model.optimizer = "Adam"; + model.lossFunction = "mean_squared_error"; + model.hiddenLayerNeurons = 1; + model.hiddenLayers = 1; + model.batchSize = 5; + model.outputNeurons = 0; + model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; + model.outputLayerActivationFunction = "sigmoid"; + model.metrics = new string[] { }; + model.epochs = 5; + model.isTrained = false; + + _modelService.Create(model); + + + Experiment experiment = new Experiment(); + + experiment._id = ""; + experiment.datasetId = _datasetService.GetDatasetId(dataset.fileId); + experiment.uploaderId = "Igrannonica"; + experiment.inputColumns = new string[] { }; + experiment.outputColumn = ""; + experiment.randomOrder = false; + experiment.randomTestSet = false; + experiment.randomTestSetDistribution = 0; + experiment.nullValues = ""; + experiment.nullValuesReplacers = new NullValues[] { }; + + _experimentService.Create(experiment); + + + Predictor predictor = new Predictor(); + + predictor._id = ""; + predictor.username = "Igrannonica"; + predictor.name = "Igrannonica Predictor 1"; + predictor.description = "Opis predictora 1"; + //predictor.inputs = { 1, 3, 5, 7, 9 }; + predictor.output = "s"; + predictor.isPublic = true; + predictor.accessibleByLink = true; + predictor.dateCreated = DateTime.Now; + predictor.experimentId = "0"; + //izmeni experiment id + + _predictorService.Create(predictor); + + //-------------------------------------------------------------------- + + file = new FileModel(); + + fullPath = Path.Combine(folderPath, "diamonds.csv"); + file._id = ""; + file.type = ".csv"; + file.uploaderId = "Igrannonica"; + file.path = fullPath; + file.date = DateTime.Now; + + _fileService.Create(file); + + dataset = new Dataset(); dataset._id = ""; dataset.username = "Igrannonica"; - dataset.name = "Diamonds dataset 2"; + dataset.name = "Diamonds dataset"; dataset.description = "Opis dataseta 2"; - dataset.header = new string[] { "PassengerId", "Survived", "Pclass", "Name", "Sex", "Age", "SibSp", "Parch", "Ticket", "Fare", "Cabin", "Embarked" }; - dataset.fileId = ""; + dataset.header = new string[] { "carat", "cut", "color", "clarity", "depth", "table", "price", "x", "y", "z" }; + dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; dataset.isPublic = true; dataset.accessibleByLink = true; @@ -76,6 +165,79 @@ namespace api.Services _datasetService.Create(dataset); + */ + /* + model = new Model(); + + model._id = ""; + model.username = "Igrannonica"; + model.name = "Igrannonica model 2"; + model.description = "Opis modela 2"; + model.dateCreated = DateTime.Now; + model.lastUpdated = DateTime.Now; + model.experimentId = ""; + model.type = ""; + model.encoding = ""; + model.optimizer = ""; + model.lossFunction = ""; + model.hiddenLayerNeurons = 0; + model.hiddenLayers = 0; + model.batchSize = 0; + model.outputNeurons = 0; + model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; + model.outputLayerActivationFunction = ""; + model.metrics = new string[] { }; + model.epochs = 0; + model.isTrained = false; + + _modelService.Create(model); + + + experiment = new Experiment(); + + experiment._id = ""; + experiment.datasetId = _datasetService.GetDatasetId(dataset.fileId); + experiment.uploaderId = "Igrannonica"; + experiment.inputColumns = new string[] { }; + experiment.outputColumn = ""; + experiment.randomOrder = false; + experiment.randomTestSet = false; + experiment.randomTestSetDistribution = 0; + experiment.nullValues = ""; + experiment.nullValuesReplacers = new NullValues[] { }; + + _experimentService.Create(experiment); + + + predictor = new Predictor(); + + predictor._id = ""; + predictor.username = "Igrannonica"; + predictor.name = "Igrannonica Predictor 1"; + predictor.description = "Opis predictora 1"; + //predictor.inputs = { 1, 3, 5, 7, 9 }; + predictor.output = "s"; + predictor.isPublic = true; + predictor.accessibleByLink = true; + predictor.dateCreated = DateTime.Now; + predictor.experimentId = "0"; + //izmeni experiment id + + _predictorService.Create(predictor); + + //-------------------------------------------------------------------- + + file = new FileModel(); + + fullPath = Path.Combine(folderPath, "IMDB-Movie-Data.csv"); + file._id = ""; + file.type = ".csv"; + file.uploaderId = "Igrannonica"; + file.path = fullPath; + file.date = DateTime.Now; + + _fileService.Create(file); + dataset = new Dataset(); @@ -84,7 +246,7 @@ namespace api.Services dataset.name = "Igrannonica dataset 3"; dataset.description = "Opis dataseta 3"; dataset.header = new string[] { "PassengerId", "Survived", "Pclass", "Name", "Sex", "Age", "SibSp", "Parch", "Ticket", "Fare", "Cabin", "Embarked" }; - dataset.fileId = ""; + dataset.fileId = _fileService.GetFileId(fullPath); dataset.extension = ".csv"; dataset.isPublic = true; dataset.accessibleByLink = true; @@ -98,10 +260,77 @@ namespace api.Services dataset.isPreProcess = false; _datasetService.Create(dataset); + + + model = new Model(); + + model._id = ""; + model.username = "Igrannonica"; + model.name = "Igrannonica model 3"; + model.description = "Opis modela 3"; + model.dateCreated = DateTime.Now; + model.lastUpdated = DateTime.Now; + model.experimentId = ""; + model.type = ""; + model.encoding = ""; + model.optimizer = ""; + model.lossFunction = ""; + model.hiddenLayerNeurons = 0; + model.hiddenLayers = 0; + model.batchSize = 0; + model.outputNeurons = 0; + model.hiddenLayerActivationFunctions = new string[] { "sigmoid" }; + model.outputLayerActivationFunction = ""; + model.metrics = new string[] { }; + model.epochs = 0; + model.isTrained = false; + + _modelService.Create(model); + + + experiment = new Experiment(); + + experiment._id = ""; + experiment.datasetId = _datasetService.GetDatasetId(dataset.fileId); + experiment.uploaderId = "Igrannonica"; + experiment.inputColumns = new string[] { }; + experiment.outputColumn = ""; + experiment.randomOrder = false; + experiment.randomTestSet = false; + experiment.randomTestSetDistribution = 0; + experiment.nullValues = ""; + experiment.nullValuesReplacers = new NullValues[] { }; + + _experimentService.Create(experiment); + + + predictor = new Predictor(); + + predictor._id = ""; + predictor.username = "Igrannonica"; + predictor.name = "Igrannonica Predictor 1"; + predictor.description = "Opis predictora 1"; + //predictor.inputs = { 1, 3, 5, 7, 9 }; + predictor.output = "s"; + predictor.isPublic = true; + predictor.accessibleByLink = true; + predictor.dateCreated = DateTime.Now; + predictor.experimentId = "0"; + //izmeni experiment id + + _predictorService.Create(predictor); + + */ } + + return Task.CompletedTask; } + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } } } diff --git a/backend/api/api/Services/IDatasetService.cs b/backend/api/api/Services/IDatasetService.cs index eeb95c3b..c6138943 100644 --- a/backend/api/api/Services/IDatasetService.cs +++ b/backend/api/api/Services/IDatasetService.cs @@ -16,6 +16,7 @@ namespace api.Services void Delete(string username, string name); public List<Dataset> GetGuestDatasets(); public void Update(Dataset dataset); - bool CheckDb(); + string GetDatasetId(string fileId); + //bool CheckDb(); } } diff --git a/backend/api/api/Services/IFileService.cs b/backend/api/api/Services/IFileService.cs index d90a19bc..e061dfdb 100644 --- a/backend/api/api/Services/IFileService.cs +++ b/backend/api/api/Services/IFileService.cs @@ -8,5 +8,6 @@ namespace api.Services string GetFilePath(string id, string uploaderId); public FileModel getFile(string id); bool CheckDb(); + string GetFileId(string fullPath); } }
\ No newline at end of file |