Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Página projeto final #1

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions site/assets/db/dbmatheus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"boa": {
"title": "Se você é uma dessas pessoas sortudas que conseguem viver confortavelmente e ainda têm uma boa parte da renda sobrando no final do mês, parabéns! É hora de maximizar seu potencial financeiro. Aqui estão algumas dicas:",
"tip1": {
"subtitle": "Investimentos Inteligentes:",
"content": "Com uma renda mais elevada, você tem a oportunidade de explorar uma ampla gama de investimentos. Considere diversificar seu portfólio em diferentes classes de ativos, como ações, títulos e imóveis. A diversificação pode ajudar a maximizar retornos e reduzir riscos."
},
"tip2": {
"subtitle": "Fundo de Emergência:",
"content": "Apesar de viver abaixo dos seus meios, imprevistos podem acontecer. É fundamental ter um fundo de emergência robusto. Recomenda-se ter o equivalente a pelo menos seis meses de despesas em uma conta de fácil acesso, como uma poupança ou conta corrente remunerada."
},
"tip3": {
"subtitle": "Planejamento Tributário:",
"content": "Com uma renda mais alta, você pode se beneficiar de estratégias inteligentes de planejamento tributário. Explore opções como deduções fiscais, investimentos com benefícios fiscais e planos de previdência privada. Planejar adequadamente seus impostos pode resultar em economias significativas a longo prazo."
}
},
"normal": {
"title": "Se você está confortável com sua renda, mas deseja aproveitar ao máximo suas finanças, aqui estão algumas dicas para otimizar seus recursos:",
"tip1": {
"subtitle": "Orçamento Inteligente:",
"content": "Mesmo com uma renda considerada normal, é essencial ter um orçamento bem planejado. Acompanhe seus gastos e identifique áreas onde você pode economizar. Reduzir despesas desnecessárias pode liberar recursos para investimentos ou para construir um fundo de emergência."
},
"tip2": {
"subtitle": "Investimentos Estratégicos:",
"content": "Embora possa não ter a mesma amplitude de opções que pessoas com renda mais alta, ainda é possível fazer investimentos inteligentes. Considere opções acessíveis, como fundos de investimento de baixo custo ou plataformas de investimento online. Busque por oportunidades que ofereçam um equilíbrio entre retorno e risco."
},
"tip3": {
"subtitle": "Educação Financeira:",
"content": "Investir em sua própria educação financeira pode ser uma das melhores decisões que você pode tomar. Procure por recursos gratuitos ou de baixo custo, como livros, cursos online ou workshops locais, para aprimorar seu conhecimento sobre finanças pessoais e investimentos."
}
},
"ruim": {
"title": "Mesmo enfrentando desafios financeiros, é crucial ter um plano orçamentário sólido. Acompanhe atentamente seus gastos e identifique áreas onde cortes podem ser feitos. Priorize despesas essenciais, como moradia, alimentação e saúde, e busque maneiras de reduzir custos nessas áreas sem comprometer sua qualidade de vida.",
"tip1": {
"subtitle": "Economia Criativa:",
"content": "Quando os recursos são limitados, a criatividade pode ser sua aliada. Explore opções como comprar itens usados, fazer trocas com amigos ou familiares e buscar por descontos e promoções. Além disso, considere formas de aumentar sua renda, como trabalhos freelancer ou oportunidades de meio período."
},
"tip2": {
"subtitle": "Planejamento de Longo Prazo:",
"content": "Mesmo com recursos limitados, é importante pensar no futuro. Estabeleça metas financeiras realistas e desenvolva um plano para alcançá-las gradualmente. Isso pode envolver economizar uma pequena quantia regularmente, mesmo que pareça insignificante no momento, e procurar por oportunidades de crescimento financeiro a longo prazo."
},
"tip3": {
"subtitle": "Educação Financeira Acessível:",
"content": "Aprender sobre finanças pessoais não precisa ser caro. Procure por recursos gratuitos ou de baixo custo, como workshops comunitários, materiais educativos online e programas governamentais de educação financeira. Invista tempo e esforço em melhorar sua compreensão sobre gestão financeira, para tomar decisões mais informadas e eficazes no futuro."
},
"tip4": {
"subtitle": "Resiliência e Persistência:",
"content": "Enfrentar dificuldades financeiras pode ser desafiador, mas é importante manter uma atitude positiva e persistente. Esteja aberto a aprender com seus erros, ajustar sua abordagem conforme necessário e buscar apoio em sua rede de apoio pessoal e comunitário. Com determinação e esforço, é possível superar obstáculos financeiros e alcançar maior estabilidade econômica."
}

}
}
120 changes: 120 additions & 0 deletions site/assets/estilos/meu.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
#sugesttitle {
background-color: white;
margin-bottom: 0;
border-radius: 5%;
text-align: center;
}

#sugestbox {
margin: 1% 5%;
box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
border-radius: 3%;
}

.card-group {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 10px; /* Ajuste a distância entre os cards conforme necessário */
}

.card {
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
overflow: hidden;
width: 30%;
transition: transform 0.3s ease;
text-align: center;
}

.card:hover {
background-color: lightgray;
transform: scale(0.95);
}

.card img {
width: 100%;
height: auto;
}

.linksugest {
text-decoration: none;
color: inherit;
font-family: 'Roboto', Arial, sans-serif;
}

.linksugest:hover {
text-decoration: underline;
font-style: italic;
}

.problem-item a {
color: #333;
text-decoration: none;
transition: color 0.3s ease;
font-family: 'Roboto', Arial, sans-serif;
}

.problem-item a:hover {
color: #4CAF50;
}

.section {
background: white;
padding: 20px;
margin-bottom: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.content {
max-width: 800px;
margin: 50px auto;
padding: 20px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}

.section-title {
color: green;
font-size: 20px;
margin-top: 30px;
}

p {
color: #666;
font-size: 16px;
line-height: 1.6;
}

#Good {
font-family: 'Roboto', Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f2f2f2;
}

.LinkBeter {
color: #4CAF50;
text-decoration: none;
font-weight: bold;
}

.LinkBeter:hover {
color: #388E3C;
text-decoration: underline;
cursor: pointer;
}

.card img {
width: 100%;
height: auto;
transition: transform 0.3s ease; /* Adiciona a transição suave */
}

.card img:hover {
transform: scale(1.4); /* Aumenta a imagem */
}

5 changes: 4 additions & 1 deletion site/assets/estilos/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -704,7 +704,10 @@ footer a:hover{
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/



.lll{
color: inherit; /* Inherit pega a cor do elemento pai */
text-decoration: none; /* Remove o sublinhado */
}


/*SAMUEL - INÍCIO
Expand Down
Binary file added site/assets/images/credit.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added site/assets/images/emprest.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added site/assets/images/invest.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions site/assets/script/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
const http = require("http");
const fs = require("fs");
const path = require("path");
const url = require("url");

const server = http.createServer((req, res) => {
const { pathname } = url.parse(req.url, true);

if (req.method === "POST" && pathname === "/processar_categorias") {
let data = "";
req.on("data", (chunk) => {
data += chunk;
});
req.on("end", () => {
const categorias = JSON.parse(data).categorias;
// Aqui você pode processar as categorias recebidas como desejar
console.log("Categorias recebidas:", categorias);

// Respondendo ao cliente
res.writeHead(200, { "Content-Type": "application/json" });
res.end(
JSON.stringify({
message: "Categorias recebidas com sucesso!",
}),
);
});
} else {
let filePath = path.join(
__dirname,
"site",
pathname === "/" ? "/telas/CadastroCategoria.html" : pathname,
);

// Verifica a extensão do arquivo para definir o tipo de conteúdo correto
const extname = path.extname(filePath);
let contentType = "text/html";
switch (extname) {
case ".js":
contentType = "text/javascript";
break;
case ".css":
contentType = "text/css";
break;
case ".json":
contentType = "application/json";
break;
case ".png":
contentType = "image/png";
break;
case ".jpg":
contentType = "image/jpg";
break;
}

fs.readFile(filePath, (err, data) => {
if (err) {
res.writeHead(404);
res.end(JSON.stringify(err));
return;
}
res.writeHead(200, { "Content-Type": contentType });
res.end(data);
});
}
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
29 changes: 29 additions & 0 deletions site/assets/script/meu.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
document.addEventListener('DOMContentLoaded', () => {
fetch('/path/to/data.json') // Certifique-se de fornecer o caminho correto para o arquivo JSON
.then(response => response.json())
.then(data => {
const situation = data.normal;
document.getElementById('title').innerText = situation.title;

const tipsContainer = document.getElementById('tips');
for (let key in situation) {
if (key.startsWith('tip')) {
const tip = situation[key];
const tipElement = document.createElement('div');

const subtitle = document.createElement('h3');
subtitle.classList.add('section-title');
subtitle.innerText = tip.subtitle;

const content = document.createElement('p');
content.innerText = tip.content;

tipElement.appendChild(subtitle);
tipElement.appendChild(content);

tipsContainer.appendChild(tipElement);
}
}
})
.catch(error => console.error('Erro ao carregar o JSON:', error));
});
38 changes: 38 additions & 0 deletions site/assets/script/verificar_permissoes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
document
.getElementById("enviarCategorias")
.addEventListener("click", function () {
const categoriaInput = document.querySelector(
'input[name="categoria"]',
);
const valorInput = document.querySelector('input[name="valor"]');

const data = {
categoria: categoriaInput.value,
valor: valorInput.value,
};
fetch(
"https://d9785d6e-affa-4a12-8d5f-c2321e97bb61-00-toke8mdh1vjb.riker.replit.dev/categorias",
{
// Atualize o endpoint conforme necessário
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
},
)
.then((response) => {
if (response.ok) {
return response.json();
}
throw new Error("Erro ao enviar categorias para o servidor.");
})
.then((data) => {
console.log("Categorias enviadas com sucesso:", data);
alert("Categorias enviadas com sucesso para o banco de dados.");
})
.catch((error) => {
console.error("Erro:", error.message);
alert("Erro ao enviar categorias para o banco de dados.");
});
});
66 changes: 66 additions & 0 deletions site/telas/SugestBad.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Cartão de Crédito</title>
<link rel="stylesheet" href="/site/assets/estilos/meu.css">
<script src="https://unpkg.com/@phosphor-icons/web"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script defer src="/site/assets/script/meu.js"></script>
</head>

<body id="Bad">
<div class="content">
<h1 id="title"></h1>
<div id="tips"></div>
</div>

<script>
document.addEventListener('DOMContentLoaded', () => {
fetch('/site/assets/db/dbmatheus.json') // Certifique-se de fornecer o caminho correto para o arquivo JSON
.then(response => {
if (!response.ok) {
throw new Error('Erro na rede');
}
return response.json();
})
.then(data => {
if (data.ruim) {
const situation = data.ruim;
document.getElementById('title').innerText = situation.title;

const tipsContainer = document.getElementById('tips');
for (let key in situation) {
if (key.startsWith('tip')) {
const tip = situation[key];
const tipElement = document.createElement('div');

const subtitle = document.createElement('h3');
subtitle.classList.add('section-title');
subtitle.innerText = tip.subtitle;

const content = document.createElement('p');
content.innerText = tip.content;

tipElement.appendChild(subtitle);
tipElement.appendChild(content);

tipsContainer.appendChild(tipElement);
}
}
} else {
console.error('Dados da categoria "ruim" não encontrados');
document.getElementById('title').innerText = 'Erro: Dados não encontrados';
}
})
.catch(error => {
console.error('Erro ao carregar o JSON:', error);
document.getElementById('title').innerText = 'Erro ao carregar os dados';
});
});
</script>
</body>

</html>
Loading