diff --git a/docs/docs/sprint-4/postgres_setup/postgres_setup.md b/docs/docs/sprint-4/postgres_setup/postgres_setup.md new file mode 100644 index 0000000..7d5a48d --- /dev/null +++ b/docs/docs/sprint-4/postgres_setup/postgres_setup.md @@ -0,0 +1,68 @@ +--- +title: Setup do Postgres +sidebar_position: 3 +--- + + +Essa implementação utiliza o GORM, uma biblioteca de mapeamento objeto-relacional para Go, para facilitar a interação com um banco de dados PostgreSQL. Cinco estruturas de dados são definidas: User, Sensor, Props, Elements, e Layout, cada uma representando entidades diferentes em um sistema. + +A estrutura User representa os usuários do sistema, com campos como nome, e-mail e senha, e associações com outras entidades como Directorate e Layout. Directorate representa as diretorias no sistema, enquanto Layout representa os layouts de interface. A estrutura Elements representa os elementos que compõem um layout, e Props armazena propriedades genéricas associadas a esses elementos. + + + +![shcema1](/img/schema1.png) + +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) ID é a chave primária autoincrementada única do usuário +3) Name representa o nome do usuário +4) Email é o endereço de e-mail do usuário +5) Password é a senha do usuário +6) Role é o papel do usuário, com um valor padrão de 1 +7) DirectorateRefer é uma referência à diretoria do usuário +8) Directorate é a diretoria à qual o usuário pertence +9) LayoutRefer é uma referência ao layout do usuário +10) Layout é o layout associado ao usuário + + +![schema2](/img/schema2.png) + +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) ID é a chave primária autoincrementada única +3) Directorate representa o nome da diretoria + + +![schema3](/img/schema3.png) + +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) ID é a chave primária autoincrementada única do elemento +3) Name é o nome do elemento +4) PropsRefer é uma referência aos atributos (props) do elemento +5) Props é a estrutura de atributos associada ao elemento + + + +![schema4](/img/schema4.png) +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) ID é a chave primária autoincrementada única do atributo +3) Value é o valor do atributo + +![schema5](/img/schema5.png) +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) ID é a chave primária do layout +3) ElementsRefer é uma referência aos elementos do layout +4) Elements é a estrutura de elementos associada ao layout +5) Index é a posição do layout + + +![schema6](/img/schema6.png) + +1) Incorpora os campos padrão do GORM para um modelo de banco de dados +2) Identifier é o identificador do sensor +3) Name é o nome do sensor +3) CoordX é a coordenada X do sensor +4) CoordY é a coordenada Y do sensor + + + + + diff --git a/docs/static/img/schema1.png b/docs/static/img/schema1.png new file mode 100644 index 0000000..57f8954 Binary files /dev/null and b/docs/static/img/schema1.png differ diff --git a/docs/static/img/schema2.png b/docs/static/img/schema2.png new file mode 100644 index 0000000..cfc803f Binary files /dev/null and b/docs/static/img/schema2.png differ diff --git a/docs/static/img/schema3.png b/docs/static/img/schema3.png new file mode 100644 index 0000000..d310d72 Binary files /dev/null and b/docs/static/img/schema3.png differ diff --git a/docs/static/img/schema4.png b/docs/static/img/schema4.png new file mode 100644 index 0000000..de2b6af Binary files /dev/null and b/docs/static/img/schema4.png differ diff --git a/docs/static/img/schema5.png b/docs/static/img/schema5.png new file mode 100644 index 0000000..7c6d3ae Binary files /dev/null and b/docs/static/img/schema5.png differ diff --git a/docs/static/img/schema6.png b/docs/static/img/schema6.png new file mode 100644 index 0000000..e916c54 Binary files /dev/null and b/docs/static/img/schema6.png differ diff --git a/src/API-Collection.json b/src/API-Collection.json index cb81b8f..42f2070 100644 --- a/src/API-Collection.json +++ b/src/API-Collection.json @@ -59,7 +59,7 @@ "params": [], "body": { "type": "json", - "raw": "{\n \"name\": \"Meu Nome\",\n \"email\":\"meu@email.com\",\n \"password\": \"minhasenha\"\n}", + "raw": "{\n \"name\": \"Meu Nome\",\n \"email\":\"meuTimao@email.com\",\n \"password\": \"minhasenha\"\n}", "form": [] }, "tests": [] @@ -98,7 +98,7 @@ "params": [], "body": { "type": "json", - "raw": "{\n \"email\": \"meu@email.com\",\n \"password\": \"minhasenha\"\n}", + "raw": "{\n \"email\": \"meuTimao@email.com\",\n \"password\": \"minhasenha\"\n}", "form": [] }, "tests": [] diff --git a/src/docker-compose.yaml b/src/docker-compose.yaml index 8105ce8..ad02aa1 100644 --- a/src/docker-compose.yaml +++ b/src/docker-compose.yaml @@ -82,4 +82,10 @@ services: interval: 2s timeout: 2s retries: 20 - restart: always \ No newline at end of file + restart: always + + adminer: + image: adminer + restart: always + ports: + - 8089:8080 \ No newline at end of file diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 51356be..7f4aefb 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -21,10 +21,11 @@ "i": "^0.3.7", "pinia": "^2.1.7", "primevue": "^3.49.1", + "universal-cookie": "^6.1.3", "vue": "^3.4.15", - "vue-echarts": "^6.6.9", "vue-router": "^4.2.5", - "vue3-google-map": "^0.20.0" + "vue3-cookies": "^1.0.6", + "vuedraggable": "^4.1.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", @@ -1098,6 +1099,11 @@ "vue": "^2.7.0 || ^3.0.0" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -2275,6 +2281,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -3552,9 +3566,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -6164,6 +6178,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" + }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -6820,6 +6839,15 @@ "dev": true, "optional": true }, + "node_modules/universal-cookie": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-6.1.3.tgz", + "integrity": "sha512-AETYRrhpRgl9T1YtnODmQE32G81U3A+f3HO3ZeK7efbXqe3x+RNOW4RTpV0iff7zJWhGYJA6EI0Mm+w50aFTAw==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -7343,22 +7371,6 @@ "vue": "^3.2.0" } }, - "node_modules/vue3-google-map": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/vue3-google-map/-/vue3-google-map-0.20.0.tgz", - "integrity": "sha512-GUih2O3lhKKBjl9jODZgva5OtwX2DXQJEL+6EO7sEk9mD8AJbSjxbT8KjfKUP90fYIwUmZpwvcEU0cqiCLCeaA==", - "dependencies": { - "@googlemaps/js-api-loader": "^1.16.2", - "@googlemaps/markerclusterer": "^2.4.0", - "fast-deep-equal": "^3.1.3" - }, - "engines": { - "node": ">=16.11.0" - }, - "peerDependencies": { - "vue": "^3" - } - }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", diff --git a/src/frontend/package.json b/src/frontend/package.json index 1f76b27..bb951ee 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -27,10 +27,11 @@ "i": "^0.3.7", "pinia": "^2.1.7", "primevue": "^3.49.1", + "universal-cookie": "^6.1.3", "vue": "^3.4.15", - "vue-echarts": "^6.6.9", "vue-router": "^4.2.5", - "vue3-google-map": "^0.20.0" + "vue3-cookies": "^1.0.6", + "vuedraggable": "^4.1.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", diff --git a/src/frontend/src/App.vue b/src/frontend/src/App.vue index fd2016a..473caee 100644 --- a/src/frontend/src/App.vue +++ b/src/frontend/src/App.vue @@ -1,6 +1,6 @@ diff --git a/src/frontend/src/components/Comum/DashboardContainer.vue b/src/frontend/src/components/Comum/DashboardContainer.vue new file mode 100644 index 0000000..783db62 --- /dev/null +++ b/src/frontend/src/components/Comum/DashboardContainer.vue @@ -0,0 +1,47 @@ + + + + diff --git a/src/frontend/src/components/Comum/HeaderBar.vue b/src/frontend/src/components/Comum/HeaderBar.vue index b6fe51c..1acb225 100644 --- a/src/frontend/src/components/Comum/HeaderBar.vue +++ b/src/frontend/src/components/Comum/HeaderBar.vue @@ -1,5 +1,5 @@