Skip to content

Commit 4cfd9fd

Browse files
authored
Merge pull request #51 from techknowledge-blog/feature/new-articles
New Articles and Categories
2 parents 7f1743e + 37164fb commit 4cfd9fd

File tree

3 files changed

+160
-4
lines changed

3 files changed

+160
-4
lines changed

src/seed/category.seed.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,25 @@ export async function seedCategories() {
4242
const CATEGORY_MOBILE = await prisma.category.upsert({
4343
where: { id: 7 },
4444
update: {},
45-
create: { name: 'Mobile' },
45+
create: { name: 'mobile' },
4646
});
4747

4848
const CATEGORY_CAREER = await prisma.category.upsert({
4949
where: { id: 8 },
5050
update: {},
51-
create: { name: 'Carreira' },
51+
create: { name: 'carreira' },
52+
});
53+
54+
const CATEGORY_FRONTEND = await prisma.category.upsert({
55+
where: { id: 9 },
56+
update: {},
57+
create: { name: 'frontend' },
58+
});
59+
60+
const CATEGORY_TAILWINDCSS = await prisma.category.upsert({
61+
where: { id: 10 },
62+
update: {},
63+
create: { name: 'tailwindcss' },
5264
});
5365

5466
console.log({
@@ -60,5 +72,7 @@ export async function seedCategories() {
6072
CATEGORY_CLOUDCOMPUTING,
6173
CATEGORY_MOBILE,
6274
CATEGORY_CAREER,
75+
CATEGORY_FRONTEND,
76+
CATEGORY_TAILWINDCSS,
6377
});
6478
}

src/seed/post.seed.ts

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,123 @@ Para mim, tem sido uma experiência fantástica tanto profissional quanto pessoa
598598
},
599599
);
600600

601+
const FIRST_STEPS_AS_A_FREELANCER = await prisma.post.upsert({
602+
where: { id: 13 },
603+
update: {},
604+
create: {
605+
title: 'Primeiros Passos como Freelancer: Desafios, Dicas e Descobertas.',
606+
authorId: 8,
607+
content: `Começar a jornada como freelancer é como embarcar em uma aventura cheia de incertezas, mas também repleta de possibilidades. No início, tudo parece novo e desafiador: encontrar os primeiros clientes, definir preços justos, organizar a rotina e aprender a se vender no mercado. A liberdade de trabalhar por conta própria vem acompanhada de muitas responsabilidades e é justamente nesse equilíbrio que mora o aprendizado.
608+
609+
Neste artigo, compartilho minha visão e aprendizados nesse início de caminhada.
610+
611+
### Como conseguir os primeiros clientes?
612+
613+
No início, rolam muitas dúvidas, principalmente sobre como conseguir os primeiros projetos. No meu caso, comecei oferecendo ajuda para pessoas próximas. Uma amiga que estava se formando em psicologia topou fazer um site simples comigo para divulgar o seu trabalho. Fiz de forma gratuita, como forma de praticar e também para montar meu portfólio.
614+
615+
Uma boa dica é conversar com amigos que têm outras profissões e sugerir uma landing page simples. Mesmo sem ser algo muito complexo, já é possível mostrar seu trabalho. Se ainda não tiver clientes, crie projetos com foco em um nicho específico. Isso ajuda a mostrar seu estilo e passa mais credibilidade.
616+
617+
### O papel do networking nos freelas que consegui
618+
619+
Networking é fundamental para conseguir freelas e, na verdade, para muitas outras áreas da vida profissional. Desde os 13 anos, grande parte das minhas oportunidades de trabalho surgiu por meio de conexões. Com os freelas, não foi diferente.
620+
621+
Em dezembro, enquanto conversava em um grupo de WhatsApp de desenvolvedores, comentei sobre uma landing page que fiz para minha amiga psicóloga e mencionei que estava começando a pegar freelas. Pouco tempo depois, um dos participantes me chamou no privado oferecendo um freela de frontend e aceitei na hora.
622+
623+
Desde então, sempre que aparece algo na área, ele me chama. Isso mostra como o networking pode abrir portas e fazer toda a diferença na carreira.
624+
625+
### Conselhos para quem quer começar como freelancer
626+
627+
Se você está começando na programação, busque os primeiros freelas com pessoas próximas, como amigos ou familiares, é um ambiente mais seguro para ganhar confiança.
628+
629+
Para quem já tem experiência trabalhando como desenvolvedor, a dica é começar com projetos simples, como uma landing page, e ir evoluindo aos poucos. Se possível, trabalhe junto com alguém mais experiente. Isso ajuda a ter mais segurança, aprender na prática e ainda construir networking desde o início.
630+
631+
Mais do que só desenvolver, é importante saber comunicar o valor do que você faz. O cliente precisa entender os benefícios, como uma landing page pode atrair mais pacientes, por exemplo.
632+
633+
Outro ponto importante é entender a real necessidade do cliente e o que de fato ele precisa.
634+
635+
### Dicas para montar um contrato de freela
636+
637+
Elaborar um contrato não é fácil, principalmente se você está começando como freelancer. No entanto, ele é essencial para garantir segurança no trabalho.
638+
639+
Para fazer os meus primeiros contratos, contei com a ajuda de uma amiga advogada para revisar eles e posso dizer a vocês que isso fez toda a diferença.
640+
641+
Se você não sabe por onde começar, busque o apoio de alguém da área jurídica para revisar o documento e, se possível, registre em cartório.
642+
643+
Além disso, é importante entender o perfil do cliente com quem você vai trabalhar. Já na primeira conversa, dá para perceber o tipo de relação que pode surgir. Sempre registre o que for combinado, seja por e-mail ou outro meio escrito. Isso evita mal-entendidos e protege ambos os lados.
644+
645+
### Como lido com o processo do cliente: briefing, entrega e mais
646+
647+
No universo do freelancer, sei que algumas pessoas seguem um processo para montar o projeto com o cliente, que vai desde o briefing, contrato e definir um prazo para entrega. No entanto, eu ainda não sigo um processo fixo.
648+
649+
Geralmente, tudo começa com uma conversa informal com o cliente. Vou ouvindo, entendendo a necessidade dele e tentando captar o que realmente espera do projeto.
650+
651+
A partir disso, ajusto a proposta e, se estiver tudo certo, seguimos com o trabalho. Aos poucos, tenho percebido a importância de criar um processo mais estruturado, com briefing, contrato e etapas de entrega bem definidas. Isso ajuda a organizar melhor e passar mais profissionalismo.
652+
653+
### Como me organizo no dia a dia como freelancer
654+
655+
Não costumo usar ferramentas específicas para me organizar, mas sempre faço anotações e fico atento aos prazos de entrega. Realizar a entrega no prazo e com qualidade é essencial para construir uma boa reputação como freelancer.
656+
657+
### O que eu gostaria de ter aprendido antes de começar como freelancer?
658+
659+
Gostaria de ter aprendido backend antes de começar a trabalhar como freelancer. Já perdi algumas oportunidades por não dominar essa parte, principalmente em projetos que exigiam uma entrega mais completa. Hoje estou estudando para me tornar full stack e ampliar as chances de pegar freelas mais completos e desafiadores.
660+
661+
### Como o trabalho como freelancer ajudou no meu crescimento como desenvolvedor?
662+
663+
Ser freelancer me ajudou muito a crescer como desenvolvedor. Você é constantemente desafiado a lidar com situações fora da sua zona de conforto e a aprender coisas que ainda não domina. Diferente dos estudos, o freela te coloca frente a problemas reais, com prazos e exigências de clientes, algo que você só entende de verdade quando começa a trabalhar.
664+
665+
Por exemplo, em um dos meus primeiros projetos, precisei criar um formulário com upload de múltiplos arquivos. Parecia simples no início, mas na prática, surgiram várias dificuldades que eu nunca tinha enfrentado nos estudos.
666+
667+
**Explicando um pouco melhor sobre esse meu aprendizado:**
668+
669+
Em um dos projetos, precisei criar um formulário com um **select** para escolher o tipo de arquivo e um **input file** para fazer o upload. Havia também um botão para adicionar novos campos com a mesma estrutura.
670+
671+
O problema surgiu quando adicionávamos um segundo campo: ao alterar o valor do primeiro **select**, o segundo também mudava automaticamente. Eles estavam compartilhando o mesmo estado.
672+
673+
Depois de muito tentar resolver, a saída foi criar um componente Select totalmente personalizado, com controle de estado isolado para cada instância. Só assim conseguimos fazer funcionar corretamente.
674+
675+
> 💡 **Nota:** Esses desafios do dia a dia me fizeram evoluir muito mais rápido.
676+
677+
### Conclusão
678+
679+
Trabalhar como freelancer tem sido uma jornada cheia de aprendizados, desafios e descobertas. Cada projeto me fez evoluir, tanto tecnicamente quanto na forma de lidar com clientes e me posicionar no mercado. Ainda estou construindo meu caminho, aprendendo com cada experiência, mas uma coisa é certa: com dedicação, curiosidade e boas conexões, é possível crescer muito na área. E o mais importante: começar simples, mas começar.`,
680+
previewContent:
681+
'Começar como freelancer em desenvolvimento pode parecer desafiador, mas com as experiências certas, tudo se encaixa. Neste artigo, compartilho como consegui meus primeiros clientes, os aprendizados e desafios.',
682+
slug: 'primeiros-passos-como-freelance',
683+
isPublished: true,
684+
categoryId: 8,
685+
},
686+
});
687+
688+
const COMPONENTS = await prisma.post.upsert({
689+
where: { id: 14 },
690+
update: {},
691+
create: {
692+
title: 'Componentes',
693+
authorId: 4,
694+
content: ``,
695+
previewContent:
696+
'Componentes são a base de qualquer interface bem estruturada e entender isso pode mudar a forma como você desenvolve. Neste artigo, vamos explorar o que são componentes, como pensar neles no seu dia a dia e por que eles são tão importantes no front-end.',
697+
slug: 'componentes',
698+
isPublished: true,
699+
categoryId: 9,
700+
},
701+
});
702+
703+
const TAILWINDCSS_IS_MOBILE_FIRST = await prisma.post.upsert({
704+
where: { id: 15 },
705+
update: {},
706+
create: {
707+
title: 'Tailwind é Mobile First? Vem descobrir comigo.',
708+
authorId: 2,
709+
content: ``,
710+
previewContent:
711+
'Quando comecei a usar o TailwindCSS, não fazia ideia de que ele já aplicava os estilos primeiro em dispositivos mobiles. Neste artigo, compartilho como descobri que o Tailwind é mobile first e o que isso significa na prática.',
712+
slug: 'tailwind-mobile-first',
713+
isPublished: true,
714+
categoryId: 10,
715+
},
716+
});
717+
601718
console.log({
602719
FAZ_FUNCIONAR_E_DEPOIS_MELHORA_SERA_MESMO,
603720
OLIMPIADA_DO_CONHECIMENTO,
@@ -609,5 +726,8 @@ Para mim, tem sido uma experiência fantástica tanto profissional quanto pessoa
609726
HOW_I_LEARNED_TO_CREATE_MY_OWN_INTERFACES,
610727
THE_MOBILE_DEVELOPMENT_MARKET_2025,
611728
LINVING_OUTSIDE_BRAZIL_IS_IT_REALLY_WORTH_IT,
729+
FIRST_STEPS_AS_A_FREELANCER,
730+
COMPONENTS,
731+
TAILWINDCSS_IS_MOBILE_FIRST,
612732
});
613733
}

src/seed/user.seed.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export async function seedUsers() {
1111
email: 'mikaelrsimoes19@gmail.com',
1212
function: 'Desenvolvedor Full Stack',
1313
passwordHash:
14-
'$2a$10$e0b1f5c8d3b4c6f7e8d9eO5z1QZ5h5k5l5m5n5o5p5q5r5s5t5u5v', // Example hash
14+
'$2a$10$e0b1f5c8d3b4c6f7e8d9eO5z1QZ5h5k5l5m5n5o5p5q5r5s5t5u5v',
1515
role: 'ADMIN',
1616
},
1717
});
@@ -24,7 +24,7 @@ export async function seedUsers() {
2424
email: 'contatoleticiadia@gmail.com',
2525
function: 'Desenvolvedora Full Stack',
2626
passwordHash:
27-
'$2a$10$e0b1f5c8d3b4c6f7e8d9eO5z1QZ5h5k5l5m5n5o5p5q5r5s5t5u5v', // Example hash
27+
'$2a$10$e0b1f5c8d3b4c6f7e8d9eO5z1QZ5h5k5l5m5n5o5p5q5r5s5t5u5v',
2828
role: 'ADMIN',
2929
},
3030
});
@@ -79,6 +79,26 @@ export async function seedUsers() {
7979
},
8080
});
8181

82+
const alvesJhonata = await prisma.user.upsert({
83+
where: { email: '4llves.dev@gmail.com' },
84+
update: {},
85+
create: {
86+
name: 'Alves Jhonata',
87+
email: '4llves.dev@gmail.com',
88+
function: 'Desenvolvedor Frontend e RPA',
89+
},
90+
});
91+
92+
const joaoJacinto = await prisma.user.upsert({
93+
where: { email: 'joaonetotfm@gmail.com' },
94+
update: {},
95+
create: {
96+
name: 'João Jacinto',
97+
email: 'joaonetotfm@gmail.com',
98+
function: 'Engenheiro de Software',
99+
},
100+
});
101+
82102
console.log({
83103
mikkaiser,
84104
leticia,
@@ -87,5 +107,7 @@ export async function seedUsers() {
87107
pedroMiguel,
88108
lucasAlves,
89109
teste,
110+
alvesJhonata,
111+
joaoJacinto,
90112
});
91113
}

0 commit comments

Comments
 (0)