feat(as-servicos): remove o link do site e cita a participacao no projeto
- demoUrl de AS Servicos passa a null (so o codigo no GitHub); teamSize deixa de ser 'Individual' - novo campo opcional role: 'Desenvolvimento da primeira landing page do site, com animacoes 3D, e de um painel para controle de projetos' - role aparece no card de projeto e no topo do case Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
1 parent
4db4b1f71c
commit
2c032b68af
5 files changed
+31
-3
No files matched your search
@@ -109,6 +109,14 @@ export default async function CasePage({ params }: CasePageProps) {
|
|||||||
<p className="ds-copy max-w-[68ch] !text-[rgba(255,255,255,.78)]">
|
<p className="ds-copy max-w-[68ch] !text-[rgba(255,255,255,.78)]">
|
||||||
{caseStudy.detail?.answer.text ?? caseStudy.summary}
|
{caseStudy.detail?.answer.text ?? caseStudy.summary}
|
||||||
</p>
|
</p>
|
||||||
|
{caseStudy.role ? (
|
||||||
|
<p className="ds-copy max-w-[68ch] !text-[rgba(255,255,255,.78)]">
|
||||||
|
<strong className="font-semibold text-white">
|
||||||
|
Minha participação:
|
||||||
|
</strong>{" "}
|
||||||
|
{caseStudy.role}
|
||||||
|
</p>
|
||||||
|
) : null}
|
||||||
{!caseStudy.detail ? (
|
{!caseStudy.detail ? (
|
||||||
<p className="mt-sp-6 text-[15px] leading-8 text-white">
|
<p className="mt-sp-6 text-[15px] leading-8 text-white">
|
||||||
{caseStudy.impact}
|
{caseStudy.impact}
|
||||||
|
|||||||
@@ -91,6 +91,12 @@ export default function Projects({
|
|||||||
<p className="ds-copy">{caseStudy.impact}</p>
|
<p className="ds-copy">{caseStudy.impact}</p>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
{caseStudy?.role && (
|
||||||
|
<div className="mt-sp-4 border-l border-[var(--slash)] pl-sp-4">
|
||||||
|
<p className="ds-kicker">Minha participação</p>
|
||||||
|
<p className="ds-copy">{caseStudy.role}</p>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<ul className="ds-tags mt-sp-6" data-reel-stagger="fade">
|
<ul className="ds-tags mt-sp-6" data-reel-stagger="fade">
|
||||||
{project.technologies.slice(0, 5).map((tech) => (
|
{project.technologies.slice(0, 5).map((tech) => (
|
||||||
|
|||||||
@@ -96,3 +96,14 @@ it("does not publish the unavailable Twins Lab demo", () => {
|
|||||||
caseStudies.find((item) => item.id === "twins-lab")?.demoUrl,
|
caseStudies.find((item) => item.id === "twins-lab")?.demoUrl,
|
||||||
).toBeUndefined();
|
).toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps AS Serviços as a project (code only) and states the author's participation", () => {
|
||||||
|
const asServicos = caseStudies.find(({ id }) => id === "as-servicos");
|
||||||
|
expect(asServicos?.demoUrl).toBeNull();
|
||||||
|
expect(asServicos?.githubUrl).toBe(
|
||||||
|
"https://github.com/evandrodevbr/as-servicos",
|
||||||
|
);
|
||||||
|
expect(asServicos?.role).toMatch(/primeira landing page/i);
|
||||||
|
expect(asServicos?.role).toMatch(/animações 3D/i);
|
||||||
|
expect(asServicos?.role).toMatch(/painel para controle de projetos/i);
|
||||||
|
});
|
||||||
+4
-1
@@ -75,6 +75,8 @@ export interface CaseStudyContent {
|
|||||||
stack: string[];
|
stack: string[];
|
||||||
demoUrl?: string | null;
|
demoUrl?: string | null;
|
||||||
githubUrl?: string | null;
|
githubUrl?: string | null;
|
||||||
|
/** Papel do autor quando o projeto não é só dele (texto editorial, sem fonte pública). */
|
||||||
|
role?: string;
|
||||||
detail?: CaseStudyDetail;
|
detail?: CaseStudyDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -659,8 +661,9 @@ export const caseStudies: CaseStudyContent[] = [
|
|||||||
impact:
|
impact:
|
||||||
"Representar engenharia física e software na mesma narrativa visual sem depender de um modelo 3D pronto.",
|
"Representar engenharia física e software na mesma narrativa visual sem depender de um modelo 3D pronto.",
|
||||||
stack: ["Next.js 16", "Three.js", "TypeScript"],
|
stack: ["Next.js 16", "Three.js", "TypeScript"],
|
||||||
demoUrl: "https://asservicos.com",
|
demoUrl: null,
|
||||||
githubUrl: "https://github.com/evandrodevbr/as-servicos",
|
githubUrl: "https://github.com/evandrodevbr/as-servicos",
|
||||||
|
role: "Desenvolvimento da primeira landing page do site, com animações 3D, e de um painel para controle de projetos.",
|
||||||
detail: {
|
detail: {
|
||||||
answer: {
|
answer: {
|
||||||
text: "Site institucional em Next.js 16 que representa quatro frentes de engenharia com uma cena Three.js gerada em código: uma casa wireframe e uma placa-mãe ligadas ao progresso da rolagem.",
|
text: "Site institucional em Next.js 16 que representa quatro frentes de engenharia com uma cena Three.js gerada em código: uma casa wireframe e uma placa-mãe ligadas ao progresso da rolagem.",
|
||||||
|
|||||||
@@ -264,13 +264,13 @@
|
|||||||
"category": "web",
|
"category": "web",
|
||||||
"level": "senior",
|
"level": "senior",
|
||||||
"status": "Código público",
|
"status": "Código público",
|
||||||
"demoUrl": "https://asservicos.com",
|
"demoUrl": null,
|
||||||
"githubUrl": "https://github.com/evandrodevbr/as-servicos",
|
"githubUrl": "https://github.com/evandrodevbr/as-servicos",
|
||||||
"badges": ["Three.js", "WebGL", "Código público"],
|
"badges": ["Three.js", "WebGL", "Código público"],
|
||||||
"featured": true,
|
"featured": true,
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"complexity": 5,
|
"complexity": 5,
|
||||||
"teamSize": "Individual"
|
"teamSize": "Em equipe"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in new issue
Block a user