Skip to content
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
23 changes: 11 additions & 12 deletions assets/js/acordeon.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@

const acordeonTriggers = document.querySelectorAll('.acordeon .trigger')
const acordeonTriggers = document.querySelectorAll(".acordeon .trigger");

acordeonTriggers.forEach((trigger) => {
trigger.addEventListener('click', (e) => {
const acordeon = trigger.parentElement
const isOpen = acordeon.classList.contains('open')
trigger.addEventListener("click", (e) => {
const acordeon = trigger.parentElement;
const isOpen = acordeon.classList.contains("open");

if (isOpen) {
acordeon.classList.remove('open')
} else {
acordeon.classList.add('open')
}
})
})
if (isOpen) {
acordeon.classList.remove("open");
} else {
acordeon.classList.add("open");
}
});
});
9 changes: 4 additions & 5 deletions assets/js/api.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

async function fetchProfileData() {
const url = 'https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/profile.json';
const response = await fetch(url)
const profileData = await response.json()
return profileData
const url = "./data/profile.json";
const response = await fetch(url);
const profileData = await response.json();
return profileData;
}
98 changes: 57 additions & 41 deletions assets/js/main.js
Original file line number Diff line number Diff line change
@@ -1,73 +1,89 @@

function updateProfileInfo(profileData) {
const photo = document.getElementById('profile.photo')
photo.src = profileData.photo
photo.alt = profileData.name
const photo = document.getElementById("profile.photo");
photo.src = profileData.photo;
photo.alt = profileData.name;

const name = document.getElementById('profile.name')
name.innerText = profileData.name
const name = document.getElementById("profile.name");
name.innerText = profileData.name;

const job = document.getElementById('profile.job')
job.innerText = profileData.job
const job = document.getElementById("profile.job");
job.innerText = profileData.job;

const location = document.getElementById('profile.location')
location.innerText = profileData.location
const location = document.getElementById("profile.location");
location.innerText = profileData.location;

const phone = document.getElementById('profile.phone')
phone.innerText = profileData.phone
phone.href = `tel:${profileData.phone}`
const phone = document.getElementById("profile.phone");
phone.innerText = profileData.phone;
phone.href = `tel:${profileData.phone}`;

const email = document.getElementById('profile.email')
email.innerText = profileData.email
email.href = `mailto:${profileData.email}`
const email = document.getElementById("profile.email");
email.innerText = profileData.email;
email.href = `mailto:${profileData.email}`;
}

function updateSoftSkills(profileData) {
const softSkills = document.getElementById('profile.skills.softSkills')
softSkills.innerHTML = profileData.skills.softSkills.map(skill => `<li>${skill}</li>`).join('')
const softSkills = document.getElementById("profile.skills.softSkills");
softSkills.innerHTML = profileData.skills.softSkills
.map((skill) => `<li>${skill}</li>`)
.join("");
}

function updateHardSkills(profileData) {
const hardSkills = document.getElementById('profile.skills.hardSkills')
hardSkills.innerHTML = profileData.skills.hardSkills.map(skill => `<li><img src="${skill.logo}" alt="${skill.name}" title="${skill.name}"></li>`).join('')
const hardSkills = document.getElementById("profile.skills.hardSkills");
hardSkills.innerHTML = profileData.skills.hardSkills
.map(
(skill) =>
`<li><img src="${skill.logo}" alt="${skill.name}" title="${skill.name}"></li>`
)
.join("");
}

function updateLanguages(profileData) {
const languages = document.getElementById('profile.languages')
languages.innerHTML = profileData.languages.map(language => `<li>${language}</li>`).join('')
const languages = document.getElementById("profile.languages");
languages.innerHTML = profileData.languages
.map((language) => `<li>${language}</li>`)
.join("");
}

function updatePortfolio(profileData) {
const portfolio = document.getElementById('profile.portfolio')
portfolio.innerHTML = profileData.portfolio.map(project => {
return `
const portfolio = document.getElementById("profile.portfolio");
portfolio.innerHTML = profileData.portfolio
.map((project) => {
return `
<li>
<h3 ${project.github ? 'class="github"' : ''}>${project.name}</h3>
<h3 ${project.github ? 'class="github"' : ""}>${
project.name
}</h3>
<a href="${project.url}" target="_blank">${project.url}</a>
</li>
`
}).join('')
`;
})
.join("");
}

function updateProfessionalExperience(profileData) {
const professionalExperience = document.getElementById('profile.professionalExperience')
professionalExperience.innerHTML = profileData.professionalExperience.map(experience => {
return `
const professionalExperience = document.getElementById(
"profile.professionalExperience"
);
professionalExperience.innerHTML = profileData.professionalExperience
.map((experience) => {
return `
<li>
<h3 class="title">${experience.name}</h3>
<p class="period">${experience.period}</p>
<p>${experience.description}</p>
</li>
`
}).join('')
`;
})
.join("");
}

(async () => {
const profileData = await fetchProfileData()
updateProfileInfo(profileData)
updateSoftSkills(profileData)
updateHardSkills(profileData)
updateLanguages(profileData)
updatePortfolio(profileData)
updateProfessionalExperience(profileData)
})()
const profileData = await fetchProfileData();
updateProfileInfo(profileData);
updateSoftSkills(profileData);
updateHardSkills(profileData);
updateLanguages(profileData);
updatePortfolio(profileData);
updateProfessionalExperience(profileData);
})();
83 changes: 43 additions & 40 deletions data/profile.json
Original file line number Diff line number Diff line change
@@ -1,78 +1,81 @@
{
"name": "Renan J Paula",
"photo": "https://avatars.githubusercontent.com/u/3266640?v=4",
"job": "Tech Lead no S3 Bank",
"location": "São Paulo - SP",
"phone": "(16) 98159-7656",
"email": "renanjohannsen@gmail.com",
"name": "Evilis Glenio T. Gomes",
"photo": "https://avatars.githubusercontent.com/u/69771563?v=4",
"job": "Junior Fullstack developer",
"location": "Natal - RN",
"phone": "(84) 9 8114-1407",
"email": "glenio.developer@gmail.com",
"skills": {
"hardSkills": [
{
"name": "Nodejs",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/nodejs.png"
"name": "HTML",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/html.png"
},
{
"name": "Java",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/java.png"
"name": "CSS",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/css.png"
},
{
"name": "Angular",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/angular.png"
"name": "JavaScript",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/javascript.png"
},
{
"name": "React",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/react.png"
},
{
"name": "Mongodb",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/mongodb.png"
"name": "Next.js",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/nextjs.png"
},
{
"name": "Postgresql",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/postgresql.png"
"name": "Tailwind CSS",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/tailwind.png"
},
{
"name": ".NET",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/dotnet.png"
},
{
"name": "Git",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/git.png"
},
{
"name": "Figma",
"logo": "https://raw.githubusercontent.com/digitalinnovationone/js-developer-portfolio/main/data/imgs/figma.png"
}
],
"softSkills": [
"Empatia",
"Liderança",
"Comunicação",
"Trabalho em equipe",
"Flexibilidade",
"Organização"
"Organização e Gestão de Tarefas",
"Resolução de Problemas"
]
},
"languages": [
"Português BR",
"Inglês (intermediário)",
"Espanhol (intermediário)",
"Italiano (iniciante)"
],
"languages": ["Português BR", "Inglês (intermediário)"],
"portfolio": [
{
"name": "Curso Ministrado na DIO para a criação de uma Pokedex",
"url": "https://github.com/RenanJPaula/js-developer-pokedex",
"name": "Projeto de portfólio com HTML, CSS e JS",
"url": "URL_do_projeto_aqui",
"github": true
},
{
"name": "Curso Ministrado na DIO para a criação de uma página de portfolio",
"url": "https://github.com/RenanJPaula/js-developer-portfolio",
"name": "MicroSaaS VaiLocutor",
"url": "URL_do_projeto_aqui",
"github": true
}
],
"professionalExperience": [
{
"name": "Arquiteto de software / S3 BANK",
"period": "2022 - até o momento",
"description": "É um prazer trabalhar ao lado de tantos profissionais excepcionais e construir tantas inovações de mercado."
},
{
"name": "Software Engineering Lead / DIO",
"period": "2021 - 2022",
"description": "Foi um grande prazer fazer parte deste time fantástico e poder contribuir com a transformação de tantas vidas."
"name": "Frontend Júnior / Freelancer",
"period": "2024 - até o momento",
"description": "Desenvolvendo projetos de sites e aplicações web com foco em design responsivo e interação do usuário."
},
{
"name": "CEO / Brain Machine",
"period": "2016 - 2021",
"description": "Anos incríveis ao lado de pessoas maravilhosas ajudando muitas empresas por todo o mundo."
"name": "Estágio em Desenvolvimento Web / Agência Sites Arretados",
"period": "2024",
"description": "Auxiliando na criação de sites e estratégias digitais para pequenas empresas."
}
]
}
}
Loading