diff --git a/Como rodar b/Como rodar deleted file mode 100644 index 1b91fa19..00000000 --- a/Como rodar +++ /dev/null @@ -1,3 +0,0 @@ -Instale o npm -instale o vite e a extensão do vite no vscode -digite no terminal "npm run dev" e o codigo irá executar em um local host diff --git a/Front end/projeto-react/Dockerfile b/Front end/projeto-react/Dockerfile new file mode 100644 index 00000000..65627936 --- /dev/null +++ b/Front end/projeto-react/Dockerfile @@ -0,0 +1,13 @@ +# Use an official Node runtime as the base image +FROM node:20-alpine + +# Set the working directory in the container +WORKDIR /app +# Copy the rest of the application code +COPY . /app/ +# Install dependencies +RUN npm install +# Expose the port the app runs on +EXPOSE 5173 +# Start the React app +CMD ["npm", "run", "dev", "--","--host"] \ No newline at end of file diff --git a/Front end/projeto-react/assets/fonts/NewakeFont-Demo.otf b/Front end/projeto-react/assets/fonts/NewakeFont-Demo.otf new file mode 100644 index 00000000..9128f9fe Binary files /dev/null and b/Front end/projeto-react/assets/fonts/NewakeFont-Demo.otf differ diff --git a/Front end/projeto-react/assets/images/Equipe.png b/Front end/projeto-react/assets/images/Equipe.png new file mode 100644 index 00000000..dca6fd9f Binary files /dev/null and b/Front end/projeto-react/assets/images/Equipe.png differ diff --git a/Front end/projeto-react/assets/images/FGA_artigos3x(1).png b/Front end/projeto-react/assets/images/FGA_artigos3x(1).png new file mode 100644 index 00000000..e15f9715 Binary files /dev/null and b/Front end/projeto-react/assets/images/FGA_artigos3x(1).png differ diff --git a/Front end/projeto-react/assets/images/Group 10.png b/Front end/projeto-react/assets/images/Group 10.png new file mode 100644 index 00000000..ea0c5556 Binary files /dev/null and b/Front end/projeto-react/assets/images/Group 10.png differ diff --git a/Front end/projeto-react/assets/images/Group 12.png b/Front end/projeto-react/assets/images/Group 12.png new file mode 100644 index 00000000..d40e6975 Binary files /dev/null and b/Front end/projeto-react/assets/images/Group 12.png differ diff --git a/Front end/projeto-react/assets/images/Group 13.png b/Front end/projeto-react/assets/images/Group 13.png new file mode 100644 index 00000000..af01407c Binary files /dev/null and b/Front end/projeto-react/assets/images/Group 13.png differ diff --git a/Front end/projeto-react/assets/images/Group 14.png b/Front end/projeto-react/assets/images/Group 14.png new file mode 100644 index 00000000..d3255e41 Binary files /dev/null and b/Front end/projeto-react/assets/images/Group 14.png differ diff --git "a/Front end/projeto-react/assets/images/Licita\303\247\303\265es.png" "b/Front end/projeto-react/assets/images/Licita\303\247\303\265es.png" new file mode 100644 index 00000000..22e77138 Binary files /dev/null and "b/Front end/projeto-react/assets/images/Licita\303\247\303\265es.png" differ diff --git a/Front end/projeto-react/assets/images/Logo-cabecalho.png b/Front end/projeto-react/assets/images/Logo-cabecalho.png new file mode 100644 index 00000000..c78e7a65 Binary files /dev/null and b/Front end/projeto-react/assets/images/Logo-cabecalho.png differ diff --git a/Front end/projeto-react/assets/images/github.png b/Front end/projeto-react/assets/images/github.png new file mode 100644 index 00000000..9490ffc6 Binary files /dev/null and b/Front end/projeto-react/assets/images/github.png differ diff --git a/Front end/projeto-react/assets/images/unb_image.png b/Front end/projeto-react/assets/images/unb_image.png new file mode 100644 index 00000000..c1832778 Binary files /dev/null and b/Front end/projeto-react/assets/images/unb_image.png differ diff --git a/Front end/projeto-react/index.html b/Front end/projeto-react/index.html index 8a23ad40..ec59ae32 100644 --- a/Front end/projeto-react/index.html +++ b/Front end/projeto-react/index.html @@ -6,6 +6,9 @@ Cultura Transparente + + + diff --git a/Front end/projeto-react/package-lock.json b/Front end/projeto-react/package-lock.json index 84b7dbab..a4a1cd8e 100644 --- a/Front end/projeto-react/package-lock.json +++ b/Front end/projeto-react/package-lock.json @@ -8,8 +8,11 @@ "name": "projeto-react", "version": "0.0.0", "dependencies": { + "apexcharts": "^3.49.2", "react": "^18.2.0", + "react-apexcharts": "^1.4.1", "react-dom": "^18.2.0", + "react-router-dom": "^6.24.0", "styled-components": "^6.1.8" }, "devDependencies": { @@ -946,6 +949,14 @@ "node": ">= 8" } }, + "node_modules/@remix-run/router": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.17.0.tgz", + "integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz", @@ -1256,6 +1267,11 @@ "vite": "^4.2.0 || ^5.0.0" } }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -1314,6 +1330,20 @@ "node": ">=4" } }, + "node_modules/apexcharts": { + "version": "3.49.2", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.49.2.tgz", + "integrity": "sha512-vBB8KgwfD9rSObA7s4kY2rU6DeaN67gTR3JN7r32ztgKVf8lKkdFQ6iUhk6oIHrV7W8PoHhr5EwKymn0z5Fz6A==", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3255,7 +3285,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3523,7 +3552,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -3570,6 +3598,18 @@ "node": ">=0.10.0" } }, + "node_modules/react-apexcharts": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.1.tgz", + "integrity": "sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": "^3.41.0", + "react": ">=0.13" + } + }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", @@ -3585,8 +3625,7 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-refresh": { "version": "0.14.0", @@ -3597,6 +3636,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.24.0.tgz", + "integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==", + "dependencies": { + "@remix-run/router": "1.17.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.24.0.tgz", + "integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==", + "dependencies": { + "@remix-run/router": "1.17.0", + "react-router": "6.24.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", @@ -4068,6 +4137,89 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/Front end/projeto-react/package.json b/Front end/projeto-react/package.json index c20e86dc..a004ae01 100644 --- a/Front end/projeto-react/package.json +++ b/Front end/projeto-react/package.json @@ -10,8 +10,11 @@ "preview": "vite preview" }, "dependencies": { + "apexcharts": "^3.49.2", "react": "^18.2.0", + "react-apexcharts": "^1.4.1", "react-dom": "^18.2.0", + "react-router-dom": "^6.24.0", "styled-components": "^6.1.8" }, "devDependencies": { @@ -24,4 +27,4 @@ "eslint-plugin-react-refresh": "^0.4.6", "vite": "^5.2.0" } -} \ No newline at end of file +} diff --git a/Front end/projeto-react/src/App.jsx b/Front end/projeto-react/src/App.jsx index 79dee522..1e387a34 100644 --- a/Front end/projeto-react/src/App.jsx +++ b/Front end/projeto-react/src/App.jsx @@ -1,20 +1,11 @@ -import { useRef, useState } from "react" -import { Container } from "./styles" -import logo from "./imagens/logo-mono2.png" -import redbox from "./imagens/redbox.png" + +import { Outlet } from "react-router-dom" function App() { - const [count, setCount] = useState(0) return (
- - logo - - - - +
- ) } diff --git a/Front end/projeto-react/src/components/Footer/Footer.jsx b/Front end/projeto-react/src/components/Footer/Footer.jsx new file mode 100644 index 00000000..e0d04d9e --- /dev/null +++ b/Front end/projeto-react/src/components/Footer/Footer.jsx @@ -0,0 +1,38 @@ +import styled from 'styled-components' + +export const Container = styled.div` + + .rodape{ + background-color: #aaa399; + height: 5em; + margin: 5em 0 0 0; + } + + .ancora{ + display: flex; + align-items: center; + gap: 0.7em; + } + .rodape__lista{ + display: flex; + flex-direction: row; + list-style-type: none; + justify-content: space-between; + align-items: center; + + } + + .links{ + color: black; + text-decoration: none; + font-family: sans-serif,NEWAKE; + font-size: 1.2em; + + } + + .img{ + max-height: 4em; + margin: 0.5em 0 0 0; + } + + ` \ No newline at end of file diff --git a/Front end/projeto-react/src/components/Footer/Footer_main.jsx b/Front end/projeto-react/src/components/Footer/Footer_main.jsx new file mode 100644 index 00000000..e250f9c2 --- /dev/null +++ b/Front end/projeto-react/src/components/Footer/Footer_main.jsx @@ -0,0 +1,23 @@ +import { Container } from "./Footer" +import imagem from "../../../assets/images/unb_image.png"; + + + +function Footer() { + return ( + + + + ); +} + +export default Footer; \ No newline at end of file diff --git a/Front end/projeto-react/src/components/Inicial/inicial.jsx b/Front end/projeto-react/src/components/Inicial/inicial.jsx new file mode 100644 index 00000000..63e2086b --- /dev/null +++ b/Front end/projeto-react/src/components/Inicial/inicial.jsx @@ -0,0 +1,62 @@ +import styled from "styled-components"; + +export const Container = styled.div` + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + + @media (max-width: 768px) { + margin: 32px; + } + + @media (max-width: 480px) { + .principal_text { + font-size: 24px; + } + + .button { + margin: auto; + font-size: 20px; + line-height: 30px; + + } + } + + .image { + display: flex; + justify-content: flex-start; + align-items: center; + position: relative; + width: 100%; + height: 100%; + padding-top: 20px; + } + + .principal_text { + font-size: 40px; + weight: 400; + text-align: center; + height: 125px; + font-family: Newake; + transform: translate(-50%, -330%); + color: #FFFFFF; + } + + .button { + transform: translate(-110%, -680%); + cursor: pointer; + margin: auto; + height: 62px; + border: none; + color: #7A41C9; + background-color: #FFCA00; + font-family: Poppins; + font-size: 27.07px; + text-align: center; + line-height: 40.61px; + font-weight: 700; + border-radius: 10px; + width: 218px; + } +`; \ No newline at end of file diff --git a/Front end/projeto-react/src/components/Inicial/inicial_main.jsx b/Front end/projeto-react/src/components/Inicial/inicial_main.jsx new file mode 100644 index 00000000..af8fe2c7 --- /dev/null +++ b/Front end/projeto-react/src/components/Inicial/inicial_main.jsx @@ -0,0 +1,18 @@ +import imagem from '../../../assets/images/Group 10.png'; +import { Container } from './inicial'; +import { StyledLink } from "../navbar/navbar"; + +const Inicial = () => { + return( +
+ + initial_banner + Transparência cultural ao
alcance de um clique.
+ + clique aqui +
+
+ ) +} + +export default Inicial; \ No newline at end of file diff --git a/Front end/projeto-react/src/components/apexchart/chart_main.jsx b/Front end/projeto-react/src/components/apexchart/chart_main.jsx new file mode 100644 index 00000000..f9486a4d --- /dev/null +++ b/Front end/projeto-react/src/components/apexchart/chart_main.jsx @@ -0,0 +1,83 @@ +import React from 'react'; +import ApexCharts from 'react-apexcharts'; + +export default function Chart() { + const options = { + chart: { + type: 'bar', + height: 500, // Reduzindo um pouco a altura do gráfico + width: '95%', // Utilizando 95% da largura disponível + toolbar: { + show: false // Oculta a barra de ferramentas do gráfico + } + }, + plotOptions: { + bar: { + horizontal: false, + distributed: true, // Distribui as barras uniformemente + barHeight: '80%', // Diminui o tamanho das barras + } + }, + xaxis: { + categories: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'], + type: 'category', + labels: { + style: { + fontSize: '14px' // Define o tamanho da fonte dos rótulos X + } + } + }, + yaxis: { + title: { + text: 'Gastos (M de reais)', + style: { + fontSize: '16px' // Define o tamanho da fonte do título Y + } + } + }, + tooltip: { + enabled: true, + formatter: function (val) { + return val + ' M'; + } + }, + dataLabels: { + formatter: function (val) { + return val.toFixed(2) + ' M'; + } + }, + colors: ['#FFCA00', '#874FD4', '#64BA8B', '#FFCA00', '#874FD4', '#64BA8B', '#FFCA00', '#874FD4', '#64BA8B', '#FFCA00', '#874FD4', '#64BA8B'], + grid: { + padding: { + left: 20, // Adiciona margem à esquerda do gráfico + right: 20 // Adiciona margem à direita do gráfico + } + }, + title: { + text: 'Quantidade de investimento na área de cultura no município do Rio de Janeiro', + align: 'center', + margin: 10, + style: { + fontSize: '24px', // Aumenta o tamanho da fonte do título + fontWeight: 'bold', // Define o peso da fonte do título + fontFamily: 'Poppins', // Define a fonte do título + color: '#fff' // Define a cor do título (branco) + }, + }, + }; + + const series = [{ + name: 'Gastos', + data: [2.3, 3.1, 4.0, 10.1, 4.0, 3.6, 3.2, 2.3, 1.4, 0.8, 0.5, 0.2] + }]; + + return ( + + ); +} diff --git a/Front end/projeto-react/src/components/licitacoes/licitacoes.jsx b/Front end/projeto-react/src/components/licitacoes/licitacoes.jsx new file mode 100644 index 00000000..9a72cf3a --- /dev/null +++ b/Front end/projeto-react/src/components/licitacoes/licitacoes.jsx @@ -0,0 +1,32 @@ +import styled from 'styled-components' + +export const Container = styled.div` + display: flex; + flex-direction: column; + align-items: center; + height: 80vh; + + .about_text_title{ + transform: translate(-70%, -520%); + display: flex; + justify-content: center; + height: 110 px; + font-family: Poppins; + font-weight: 700; + font-size: 73.61px; + left: 430px; + color: #1E503F; + } + + .about_text{ + transform: translate(-55%, -220%); + width: 520.63px; + height: 273.01px; + font-family: Poppins; + font-weight: 400; + font-size: 18.14px; + left: 300px; + color: #1E503F; + text-align: justify; + } + ` \ No newline at end of file diff --git a/Front end/projeto-react/src/components/licitacoes/licitacoes_main.jsx b/Front end/projeto-react/src/components/licitacoes/licitacoes_main.jsx new file mode 100644 index 00000000..b5be8fd1 --- /dev/null +++ b/Front end/projeto-react/src/components/licitacoes/licitacoes_main.jsx @@ -0,0 +1,16 @@ +import { Container } from "../licitacoes/licitacoes" +import licitacoes from "../../../assets/images/Group 13.png" + +const Licitacoes = () => { + return ( +
+ + logo +

Licitações

+


Licitações são procedimentos administrativos utilizados pelos órgãos públicos para selecionar a melhor proposta entre os interessados em fornecer bens, serviços ou obras. Elas seguem regras pré-determinadas, visando garantir a transparência, a igualdade de condições entre os concorrentes e a obtenção da melhor relação custo-benefício para o poder público. Geralmente, as licitações envolvem etapas como a divulgação do edital, a habilitação dos participantes, a análise das propostas e a escolha da melhor oferta, conforme os critérios estabelecidos.

+
+
+ ) +} + +export default Licitacoes; diff --git a/Front end/projeto-react/src/components/main_button/button.jsx b/Front end/projeto-react/src/components/main_button/button.jsx new file mode 100644 index 00000000..b14f9bda --- /dev/null +++ b/Front end/projeto-react/src/components/main_button/button.jsx @@ -0,0 +1,26 @@ +import styled from 'styled-components'; + +export const Container = styled.div` + display: flex; + justify-content: flex-start; /* Alinha o botão à esquerda */ + align-items: center; + background-color: #252424; + height: 100px; /* Aumentar a altura */ + padding: 20px; /* Adicionar padding ao container */ + margin-top: 20px; /* Adicionar margem superior */ + + button { + + + cursor: pointer; + font-family: Poppins; + font-size: 20px; + font-weight: 600; + background-color: #252424; + border: none; + + .logo { + height: 100%; /* Ajusta a altura da imagem para ocupar toda a altura do botão */ + } + } +`; diff --git a/Front end/projeto-react/src/components/main_button/button_main.jsx b/Front end/projeto-react/src/components/main_button/button_main.jsx new file mode 100644 index 00000000..0a0cf667 --- /dev/null +++ b/Front end/projeto-react/src/components/main_button/button_main.jsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import logo from "../../../assets/images/Logo-cabecalho.png"; +import { Container } from "../main_button/button"; // Importação do Container que contém os estilos + +const ButtonSearch = () => { + return ( + + + + + + ) +} + +export default ButtonSearch; diff --git a/Front end/projeto-react/src/components/navbar/navbar.jsx b/Front end/projeto-react/src/components/navbar/navbar.jsx index e69de29b..25f545ff 100644 --- a/Front end/projeto-react/src/components/navbar/navbar.jsx +++ b/Front end/projeto-react/src/components/navbar/navbar.jsx @@ -0,0 +1,65 @@ +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; + +export const NavBar = styled.div` + background-color: #7A41C9; + width: 100%; + max-width: 931px; + height: 60px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0px; + border-radius: 70px; + color: white; + padding: 0 20px; + margin: auto; + + .b1, .b2, .b3 { + cursor: pointer; + background-color: #7A41C9; + color: #000000; + font-size: 20px; + padding: 10px; + border: none; + font-family: Poppins; + font-weight: 600; + flex: 1; /* Allow the buttons to grow and shrink */ + text-align: center; /* Center the text inside the buttons */ + margin: 0 10px; /* Add margin between buttons */ + } +`; + +export const Container = styled.div` + margin-top: 32px; + display: flex; + justify-content: center; + align-items: center; + background-color: #252424; + height: 70.5px; + width: 100%; + padding: 0 20px; + + .b { + cursor: pointer; + font-family: Poppins; + font-size: 20px; + font-weight: 600; + background-color: #252424; + border: none; + } +`; + +export const StyledLink = styled(Link)` + background-color: #7A41C9; + color: #000000; + font-size: 20px; + padding: 10px; + border: none; + font-family: Poppins; + font-weight: 600; + flex: 1; + text-align: center; + margin: 0 10px; + text-decoration: none; +`; diff --git a/Front end/projeto-react/src/components/navbar/navbar_main.jsx b/Front end/projeto-react/src/components/navbar/navbar_main.jsx index e69de29b..f8c3d6e9 100644 --- a/Front end/projeto-react/src/components/navbar/navbar_main.jsx +++ b/Front end/projeto-react/src/components/navbar/navbar_main.jsx @@ -0,0 +1,61 @@ +import logo from "../../../assets/images/Logo-cabecalho.png"; +import { Container } from "../navbar/navbar"; +import { NavBar, StyledLink } from "../navbar/navbar"; + +const Navbar = () => { + const scrollToSobre = () => { + const Sobre = document.getElementById('Sobre'); + if (Sobre) { + window.scrollTo({ + top: 800, + behavior: 'smooth' + }); + } + }; + const scrollToTop = () => { + const logo2 = document.getElementById('logo2'); + + logo2.addEventListener('click', function () { + window.scrollTo({ + top: 0, + behavior: 'smooth' + }); + }) + }; + + const scrollToLicitacoes = () => { + const Licitacoes = document.getElementById('Licitacoes'); + if (Licitacoes) { + window.scrollTo({ + top: 1750, + behavior: 'smooth' + }); + } + }; + + const scrollToFooter = () => { + const Participantes = document.getElementById('Participantes'); + if (Participantes) { + window.scrollTo({ + top: 2750, + behavior: 'smooth' + }); + } + }; + + return ( +
+ + + + + + + Licitações + + +
+ ); +}; + +export default Navbar; diff --git a/Front end/projeto-react/src/components/participantes/participantes.jsx b/Front end/projeto-react/src/components/participantes/participantes.jsx new file mode 100644 index 00000000..a3e450f1 --- /dev/null +++ b/Front end/projeto-react/src/components/participantes/participantes.jsx @@ -0,0 +1,392 @@ +import styled from 'styled-components' + +export const Container = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + .titulo{ + font-weight: 700; + font-size: 4rem; + color: white; + font-family: Poppins; + padding-bottom: 5%; + } + + .equipe1 { + display: grid; + grid-template-columns: 350px 350px 350px; + gap: 20px; + + .quadrado1 { + background-color: purple; + width: 281px; + height: 387px; + border-radius: 10%; + } + + .nome1 { + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem1 { + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png { + width: 23px; + height: 23px; + margin-left: 70px; + margin-top: 20px; + } + + .githubname1 { + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(35%, -105%); + } + + .function1 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(30%, -105%); + } + + .quadrado2 { + background-color: yellow; + width: 281px; + height: 387px; + border-radius: 10%; + + } + .nome2{ + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem2{ + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .githubname2{ + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(35%, -105%); + } + + .function2{ + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(30%, -105%); + } + + .quadrado3{ + background-color: #FFE1B3; + width: 281px; + height: 387px; + border-radius: 10%; + } + .nome3{ + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem3{ + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png1 { + width: 23px; + height: 23px; + margin-left: 90px; + margin-top: 20px; + } + + .githubname3{ + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(43%, -105%); + } + + .function3{ + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(27%, -100%); + } + .function3_1{ + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(35%, -100%); + } + + } + + .equipe2 { + display: grid; + grid-template-columns: 350px 350px 350px; + gap: 20px; + + .quadrado4 { + background-color: #FFE1B3; + width: 281px; + height: 387px; + border-radius: 10%; + } + + .nome4 { + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem4 { + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png2 { + width: 23px; + height: 23px; + margin-left: 50px; + margin-top: 20px; + } + + .githubname4 { + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(35%, -105%); + } + + .function4 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(30%, -100%); + } + + .quadrado5 { + background-color: #93CDAD; + width: 281px; + height: 387px; + border-radius: 10%; + } + + .nome5 { + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem5 { + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png { + width: 23px; + height: 23px; + margin-left: 70px; + margin-top: 20px; + } + + .githubname5 { + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(27%, -105%); + } + + .function5 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(30%, -100%); + } + + .function3_1 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(35%, -100%); + } + + .quadrado6 { + background-color: yellow; + width: 281px; + height: 387px; + border-radius: 10%; + } + + .nome6 { + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem6 { + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png3 { + width: 23px; + height: 23px; + margin-left: 83px; + margin-top: 20px; + } + + .githubname6 { + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(40%, -105%); + } + + .function6 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(35%, -100%); + } + + .function3_12 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(38%, -100%); + } + } + .equipe3{ + display: grid; + grid-template-columns: 320px 320px 75px; + gap: 0px; + align-items: center; + justify-content: right; + .quadrado7 { + background-color: purple; + width: 281px; + height: 387px; + border-radius: 10%; + } + + .nome7 { + font-family: Poppins; + text-align: center; + margin-top: 30px; + font-weight: 700; + font-size: 26px; + } + + .imagem7 { + border-radius: 50%; + width: 150px; + height: 150px; + align-items: center; + margin: auto; + margin-left: 70px; + margin-top: 20px; + } + + .github_png { + width: 23px; + height: 23px; + margin-left: 90px; + margin-top: 10px; + } + + .githubname7 { + font-family: Poppins; + font-weight: 600; + height: 25px; + transform: translate(45%, -100%); + } + + .function7 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(30%, -80%); + } + + .function3_1 { + font-family: Poppins; + font-weight: 400; + font-style: italic; + font-size: 18px; + transform: translate(35%, -80%); + } + } +` + + + + + diff --git a/Front end/projeto-react/src/components/participantes/participantes_main.jsx b/Front end/projeto-react/src/components/participantes/participantes_main.jsx new file mode 100644 index 00000000..61be2e82 --- /dev/null +++ b/Front end/projeto-react/src/components/participantes/participantes_main.jsx @@ -0,0 +1,112 @@ +import { Container } from "./participantes.jsx" +import png_github from "../../../assets/images/github.png" + +const Participantes = () => { + return ( +
+ +
+

Nossa Equipe

+
+
+
+
+

André
Maia

+ + + +
+ +

Andre-maia51

+

Scrum Master

+
+ +
+

Mateus
Cavalcante

+ + + +
+ +

Mateuscavati

+

Project Owner

+
+ +
+

Pedro
Goiz

+ + + +
+ +

Goizzz

+

Desenvolvedor

+

Front-end

+
+ +
+ +
+ + +
+
+

Isabelle
Costa

+ + + +
+ +

Isabelle Costa

+

Desenvolvedor

+

Front-end

+
+ +
+

José
Vinicius

+ + + +
+ +

JoseViniciusQueiroz

+

Desenvolvedor

+

Back-End

+
+ +
+

Pedro
Faria

+ + + +
+ +

PhFariaa

+

Front-End

+

DevOps

+
+
+
+ +
+
+

Enrico
Zoratto

+ + + +
+ +

Sidts

+

Desenvolvedor

+

Back-End

+
+ +
+ +
+
+
+ ) +} + +export default Participantes; \ No newline at end of file diff --git a/Front end/projeto-react/src/components/sobre/sobre.jsx b/Front end/projeto-react/src/components/sobre/sobre.jsx new file mode 100644 index 00000000..40589a29 --- /dev/null +++ b/Front end/projeto-react/src/components/sobre/sobre.jsx @@ -0,0 +1,29 @@ +import styled from 'styled-components' + +export const Container = styled.div` + display: flex; + flex-direction: column; + align-items: center; + height: 90vh; + ` + +export const About = styled.div` + .about_text_title{ + transform: translate(60%, -550%); + font-family: Poppins; + font-weight: 700; + font-size: 72.56px; + color: #B27100 + } + + .about_text{ + transform: translate(55%, -245%); + width: 520.63px; + font-family: Poppins; + font-weight: 400; + font-size: 18.14px; + color: #B27100; + text-align: justify; + } + + ` \ No newline at end of file diff --git a/Front end/projeto-react/src/components/sobre/sobre_main.jsx b/Front end/projeto-react/src/components/sobre/sobre_main.jsx new file mode 100644 index 00000000..63750e72 --- /dev/null +++ b/Front end/projeto-react/src/components/sobre/sobre_main.jsx @@ -0,0 +1,23 @@ +import { Container, About } from "./sobre" +import image from "../../../assets/images/Group 14.png" + + +const Sobre = () => { + return ( +
+ + header + +

Sobre

+

Cultura Transparente é uma inovadora ferramenta desenvolvida como parte do curso de + Métodos de Desenvolvimento de Software, com o objetivo de simplificar e automatizar o processo de extração + de dados de licitações publicadas no Diário Oficial do Estado do Rio de Janeiro. Este projeto surge como + uma solução eficaz para profissionais, empresas e órgãos públicos que necessitam acompanhar licitações de + maneira eficiente e oportuna.

+
+
+
+ ) +} + +export default Sobre; diff --git a/Front end/projeto-react/src/imagens/logo-mono2.jpg b/Front end/projeto-react/src/imagens/logo-mono2.jpg deleted file mode 100644 index c4bc1b63..00000000 Binary files a/Front end/projeto-react/src/imagens/logo-mono2.jpg and /dev/null differ diff --git a/Front end/projeto-react/src/imagens/logo-mono2.png b/Front end/projeto-react/src/imagens/logo-mono2.png deleted file mode 100644 index 8e7ea3db..00000000 Binary files a/Front end/projeto-react/src/imagens/logo-mono2.png and /dev/null differ diff --git a/Front end/projeto-react/src/imagens/redbox.png b/Front end/projeto-react/src/imagens/redbox.png deleted file mode 100644 index 9c7edcff..00000000 Binary files a/Front end/projeto-react/src/imagens/redbox.png and /dev/null differ diff --git a/Front end/projeto-react/src/index.css b/Front end/projeto-react/src/index.css index 8042c623..ceabc2dd 100644 --- a/Front end/projeto-react/src/index.css +++ b/Front end/projeto-react/src/index.css @@ -5,5 +5,10 @@ } body { - background-color: #f5ede2; + background-color: #252424; +} + +@font-face { + font-family: 'Newake'; + src: url(../assets/fonts/NewakeFont-Demo.otf); } \ No newline at end of file diff --git a/Front end/projeto-react/src/main.jsx b/Front end/projeto-react/src/main.jsx index 54b39dd1..383d2186 100644 --- a/Front end/projeto-react/src/main.jsx +++ b/Front end/projeto-react/src/main.jsx @@ -2,9 +2,44 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App.jsx' import './index.css' +import Home from './routes/Home.jsx' +import Grafico from './routes/Grafico.jsx' +import { createBrowserRouter, RouterProvider } from 'react-router-dom'; + +// const router = createBrowserRouter([ +// { +// path: "/", +// element: +// }, + +// { +// path: "grafico", +// element: +// } + +// ]); +const router = createBrowserRouter([ + { + path: "/", + element: , + children: [ + { + path: "/", + element: + }, + + { + path: "grafico", + element: + } + + ] + }, + +]); ReactDOM.createRoot(document.getElementById('root')).render( - + , ) diff --git a/Front end/projeto-react/src/routes/Grafico.jsx b/Front end/projeto-react/src/routes/Grafico.jsx new file mode 100644 index 00000000..3ea82aee --- /dev/null +++ b/Front end/projeto-react/src/routes/Grafico.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import Button_search from '../components/main_button/button_main'; +import Chart from '../components/apexchart/chart_main'; +import imagem from "../../assets/images/unb_image.png"; + +const Grafico = () => { + return ( +
+ + +

+ Projeto criado por alunos da Universidade de Brasília na disciplina de Métodos de Desenvolvimento de Software ensinada pela docente Carla Rocha. +

+

+ Desenvolvido por: André Maia, Isabelle Costa, José Vinicius, Pedro Faria, Pedro Goiz, Enrico Zoratto e Mateus Cavalcante. +

+ Descrição da imagem +
+ ); +}; + +export default Grafico; diff --git a/Front end/projeto-react/src/routes/Home.jsx b/Front end/projeto-react/src/routes/Home.jsx new file mode 100644 index 00000000..71e29432 --- /dev/null +++ b/Front end/projeto-react/src/routes/Home.jsx @@ -0,0 +1,25 @@ +import React from 'react' +import Navbar from "../components/navbar/navbar_main" +import Sobre from "../components/sobre/sobre_main" +import Licitacoes from "../components/licitacoes/licitacoes_main" +import Participantes from "../components/participantes/participantes_main" +import Footer from "../components/Footer/Footer_main" +import Inicial from '../components/Inicial/inicial_main' + + +const Home = () => { + return ( +
+ +
+ + + + +
+ ) + +}; + +export default Home; \ No newline at end of file diff --git a/Front end/projeto-react/src/styles.jsx b/Front end/projeto-react/src/styles.jsx deleted file mode 100644 index 2470ce7e..00000000 --- a/Front end/projeto-react/src/styles.jsx +++ /dev/null @@ -1,63 +0,0 @@ -import styled from 'styled-components' - - -export const Container = styled.div` - background-color: #3B4074; - display: flex; - align-items : center; - border-radius: 90px; - padding: 40px; - border-width: 20px; - margin-top: 10px; - margin-right: 80px; - margin-left: 80px; - margin-bottom: 15px; - - .b1{ - background-color : #3B4074; - color: #f5ede2; - border: none; - width: 200px; - height: 50px; - font-size: 50px; - font-family: sans-serif,NEWAKE; - margin-left: 450px; - margin-right: 50px; - } - - - .b2{ - background-color : #3B4074; - color: #f5ede2; - border: none; - width: 200px; - height: 50px; - font-size: 50px; - font-family: sans-serif,NEWAKE; - margin-right: 80px; - } - - .b3{ - - background-color : #3B4074; - color: #f5ede2; - border: none; - width: 200px; - height: 50px; - font-size: 50px; - font-family: sans-serif,NEWAKE; - margin-right: 50px; - } - -`; - - - - - - - - - - - diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..745b5e97 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,5 @@ +services: + front_end: + build: ./Front end/projeto-react/ + ports: + - "5173:5173" \ No newline at end of file