Skip to content
This repository was archived by the owner on Nov 11, 2025. It is now read-only.
Merged
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
61 changes: 27 additions & 34 deletions frontend/vizzy/app/landing/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
Leaf,
} from 'lucide-react';
import Link from 'next/link';
import { useTranslations } from 'next-intl';

export default function Home() {
const t = useTranslations('landingPage');
return (
<div className="flex min-h-screen flex-col">
<main className="flex-1">
Expand All @@ -28,8 +30,7 @@
Vizzy.
</h1>
<p className="mx-auto max-w-[700px] text-black/80 md:text-xl">
Partilha inteligente entre vizinhos — compra, vende, troca ou
aluga com facilidade.
{t('description')}

Check warning on line 33 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L33

Translation key 'description' should match format 'MODULE.FEATURE.*'
</p>
</div>
<div className="space-x-4 mt-6">
Expand All @@ -38,7 +39,7 @@
className="px-8 py-6 text-lg bg-black hover:bg-black/90 text-white cursor-pointer"
>
<Link href="/">
Explora a Plataforma
{t('exploreButton')}

Check warning on line 42 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L42

Translation key 'exploreButton' should match format 'MODULE.FEATURE.*'
<ArrowRight className="ml-2 h-4 w-4" />
</Link>
</Button>
Expand All @@ -56,72 +57,64 @@
<div className="flex flex-col items-center justify-center space-y-4 text-center">
<div className="space-y-2">
<h2 className="text-3xl font-bold tracking-tighter sm:text-5xl">
Funcionalidades
{t('functionalities.title')}

Check warning on line 60 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L60

Translation key 'functionalities.title' should match format 'MODULE.FEATURE.*'
</h2>
<p className="max-w-[900px] text-muted-foreground md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed">
Descobre como a Vizzy pode transformar a tua comunidade
{t('functionalities.description')}

Check warning on line 63 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L63

Translation key 'functionalities.description' should match format 'MODULE.FEATURE.*'
</p>
</div>
</div>
<div className="mx-auto grid max-w-7xl items-center gap-6 py-12 md:grid-cols-2 lg:grid-cols-4 lg:gap-8">
<Card>
<CardHeader>
<ShoppingBag className="h-10 w-10 mb-2 text-brand-500" />
<CardTitle>Compra e Venda</CardTitle>
<CardTitle>{t('functionalities.buyAndSale.title')}</CardTitle>

Check warning on line 71 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L71

Translation key 'functionalities.buyAndSale.title' should match format 'MODULE.FEATURE.*'
<CardDescription>
Transações seguras entre vizinhos
{t('functionalities.buyAndSale.description')}

Check warning on line 73 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L73

Translation key 'functionalities.buyAndSale.description' should match format 'MODULE.FEATURE.*'
</CardDescription>
</CardHeader>
<CardContent>
<p>
Compra e vende artigos localmente com segurança e
facilidade, fortalecendo a economia da tua comunidade.
</p>
<p>{t('functionalities.buyAndSale.text')}</p>

Check warning on line 77 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L77

Translation key 'functionalities.buyAndSale.text' should match format 'MODULE.FEATURE.*'
</CardContent>
</Card>
<Card>
<CardHeader>
<RefreshCw className="h-10 w-10 mb-2 text-brand-500" />
<CardTitle>Troca de Itens</CardTitle>
<CardTitle>{t('functionalities.itemSwap.title')}</CardTitle>

Check warning on line 83 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L83

Translation key 'functionalities.itemSwap.title' should match format 'MODULE.FEATURE.*'
<CardDescription>
Dá nova vida ao que já não usas
{t('functionalities.itemSwap.description')}

Check warning on line 85 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L85

Translation key 'functionalities.itemSwap.description' should match format 'MODULE.FEATURE.*'
</CardDescription>
</CardHeader>
<CardContent>
<p>
Troca objetos que já não utilizas por outros que precisas,
reduzindo o desperdício e poupando dinheiro.
</p>
<p>{t('functionalities.itemSwap.text')}</p>

Check warning on line 89 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L89

Translation key 'functionalities.itemSwap.text' should match format 'MODULE.FEATURE.*'
</CardContent>
</Card>
<Card>
<CardHeader>
<Tool className="h-10 w-10 mb-2 text-brand-500" />
<CardTitle>Aluguer Local</CardTitle>
<CardTitle>
{t('functionalities.localRenting.title')}

Check warning on line 96 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L96

Translation key 'functionalities.localRenting.title' should match format 'MODULE.FEATURE.*'
</CardTitle>
<CardDescription>
Poupança e praticidade para ferramentas e mais
{t('functionalities.localRenting.description')}

Check warning on line 99 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L99

Translation key 'functionalities.localRenting.description' should match format 'MODULE.FEATURE.*'
</CardDescription>
</CardHeader>
<CardContent>
<p>
Aluga ferramentas, equipamentos e outros itens dos teus
vizinhos, economizando espaço e recursos.
</p>
<p>{t('functionalities.localRenting.text')}</p>

Check warning on line 103 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L103

Translation key 'functionalities.localRenting.text' should match format 'MODULE.FEATURE.*'
</CardContent>
</Card>
<Card>
<CardHeader>
<Leaf className="h-10 w-10 mb-2 text-brand-500" />
<CardTitle>Sustentabilidade</CardTitle>
<CardTitle>
{t('functionalities.sustainability.title')}

Check warning on line 110 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L110

Method t has 57 lines of code (limit is 50)
</CardTitle>
<CardDescription>
Promove o consumo consciente
{t('functionalities.sustainability.description')}
</CardDescription>
</CardHeader>
<CardContent>
<p>
Contribui para um futuro mais sustentável através da
partilha de recursos e redução do consumo excessivo.
</p>
<p>{t('functionalities.sustainability.text')}</p>
</CardContent>
</Card>
</div>
Expand All @@ -134,10 +127,10 @@
<div className="flex flex-col items-center justify-center space-y-4 text-center">
<div className="space-y-2">
<h2 className="text-3xl font-bold tracking-tighter sm:text-5xl">
Vê a Vizzy em Ação
{t('functionalities.demo.title')}
</h2>
<p className="max-w-[900px] text-muted-foreground md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed">
Descobre como é fácil utilizar a nossa plataforma
{t('functionalities.demo.description')}
</p>
</div>
<div className="mx-auto max-w-6xl w-full aspect-video overflow-hidden rounded-xl border bg-muted/50 flex items-center justify-center mt-8">
Expand All @@ -162,10 +155,10 @@
<div className="flex flex-col items-center justify-center space-y-4 text-center">
<div className="space-y-2">
<h2 className="text-3xl font-bold tracking-tighter md:text-4xl/tight text-black">
Pronto para te juntares à comunidade?
{t('bottomBanner.title')}

Check warning on line 158 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L158

Translation key 'bottomBanner.title' should match format 'MODULE.FEATURE.*'
</h2>
<p className="mx-auto max-w-[600px] text-black/80 md:text-xl/relaxed lg:text-base/relaxed xl:text-xl/relaxed">
Começa hoje a partilhar recursos com os teus vizinhos.
{t('bottomBanner.description')}

Check warning on line 161 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L161

Translation key 'bottomBanner.description' should match format 'MODULE.FEATURE.*'
</p>
</div>
<div className="mx-auto w-full max-w-sm space-y-2">
Expand All @@ -174,7 +167,7 @@
className="w-full bg-black text-white hover:bg-grey/90 cursor-pointer"
size="lg"
>
<Link href="/">Explora a Plataforma</Link>
<Link href="/">{t('bottomBanner.buttonText')}</Link>

Check warning on line 170 in frontend/vizzy/app/landing/page.tsx

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

frontend/vizzy/app/landing/page.tsx#L170

Translation key 'bottomBanner.buttonText' should match format 'MODULE.FEATURE.*'
</Button>
</div>
</div>
Expand Down
37 changes: 37 additions & 0 deletions frontend/vizzy/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -738,5 +738,42 @@
"swapInterestPlaceholder": "Insert the item you want to swap",
"swapDescriptionDescription": "Describe what you are looking to receive in return."
}
},
"landingPage": {
"description": "Smart Sharing between neighbours - buy, sell, swap and rent items easily.",
"exploreButton": "Explore the Platform",
"functionalities": {
"title": "Functionalities",
"description": "Find out how Vizzy may transform your community",
"buyAndSale": {
"title": "Buying and Selling",
"description": "Transactions between neighbours.",
"text": "Buy and Sell items locally, safely and easily! Create bonds and strengthen your community's economy."
},
"itemSwap": {
"title": "Swapping Items",
"description": "Give your unused products a new life!",
"text": "Swap objects that you don't use anymore for others that you need, reducing waste and saving money."
},
"localRenting": {
"title": "Local Renting",
"description": "Saving and Praticality for tools and much more.",
"text": "Rent Tools, Equipments and much more to/from neighbours, saving money and resources."
},
"sustainability": {
"title": "Sustainability",
"description": "Promote conscient spending.",
"text": "Contribute to a more sustainable future by sharing resources and reducing excessive consumption."
},
"demo": {
"title": "Watch Vizzy in Action",
"description": "Find out how easy it is to use our platform."
}
},
"bottomBanner": {
"title": "Are you ready to join the community?",
"description": "Start today sharing resources with your neighbours!",
"buttonText": "Explore the platform"
}
}
}
37 changes: 37 additions & 0 deletions frontend/vizzy/messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -740,5 +740,42 @@
"swapInterestPlaceholder": "Insere o item que queres em troca.",
"swapDescriptionDescription": "Descreve o que estás a procurar receber em troca."
}
},
"landingPage": {
"description": "Partilha inteligente entre vizinhos — compra, vende, troca ou aluga com facilidade.",
"exploreButton": "Explora a Plataforma",
"functionalities": {
"title": "Funcionalidades",
"description": "Descobre como a Vizzy pode transformar a tua comunidade.",
"buyAndSale": {
"title": "Compra e Venda",
"description": "Transações seguras entre vizinhos.",
"text": "Compra e vende artigos localmente com segurança e facilidade, fortalecendo a economia da tua comunidade."
},
"itemSwap": {
"title": "Troca de Itens",
"description": "Dá nova vida ao que já não usas.",
"text": "Troca objetos que já não utilizas por outros que precisas, reduzindo o desperdício e poupando dinheiro."
},
"localRenting": {
"title": "Aluguer Local",
"description": "Poupança e praticidade para ferramentas e muito mais.",
"text": "Aluga ferramentas, equipamentos e muito mais de vizinhos, poupando dinheiro e recursos."
},
"sustainability": {
"title": "Sustentabilidade",
"description": "Promove o consumo consciente.",
"text": "Contribui para um futuro mais sustentável através da partilha de recursos e redução do consumo excessivo."
},
"demo": {
"title": "Vê a Vizzy em Ação",
"description": "Descobre como é fácil utilizar a nossa plataforma."
}
},
"bottomBanner": {
"title": "Pronto para te juntares à comunidade?",
"description": "Começa hoje a partilhar recursos com os teus vizinhos!",
"buttonText": "Explora a Plataforma"
}
}
}