---
title: Dev Portfolio Project Final Part - Experiences & Projects
id: 643
html_url: "https://acmcsuf.com/blog/643"
discussion_url: "https://github.com/EthanThatOneKid/acmcsuf.com/discussions/643"
author: "anhduy1202 (https://github.com/anhduy1202)"
labels: ["dev", "svelte"]
created: "2022-10-28T21:40:21.000Z"
edited: "2022-10-28T21:42:17.000Z"
---
Dev Portfolio Project Final Part - Experiences & Projects
=========================================================
INTRODUCTION 🥳
* In this blog, we'll guide you to create the last 2 components: Experiences and Projects for our
portfolio website and it looks something like this
Screen Shot 2022-10-28 at 2 28 24 PM
[https://user-images.githubusercontent.com/58461444/198735898-fd187cd5-a778-4e39-8a25-a2042436e771.png]https://user-images.githubusercontent.com/58461444/198735898-fd187cd5-a778-4e39-8a25-a2042436e771.png
Screen Shot 2022-10-28 at 2 28 38 PM
[https://user-images.githubusercontent.com/58461444/198735921-7cdbfc80-fec2-4446-85ef-8d694c0cb636.png]https://user-images.githubusercontent.com/58461444/198735921-7cdbfc80-fec2-4446-85ef-8d694c0cb636.png
WHAT'LL BE COVERED IN THIS BLOG 🤓
* #each loop in Svelte ( we've learned this in part 2 )
LET'S START 🤖
CREATE EXPERIENCES + PROJECTS COMPONENTS
* Similar to what we did in previous parts, we'll create Experiences.svelte and Projects.svelte in
our components folder
Screen Shot 2022-10-28 at 2 31 46 PM
[https://user-images.githubusercontent.com/58461444/198736292-379ae7f0-471d-470b-8bb0-27a7af48af7e.png]https://user-images.githubusercontent.com/58461444/198736292-379ae7f0-471d-470b-8bb0-27a7af48af7e.png
NOTE: Don't forget to import our component in App.svelte - our main Svelte file
> App.svelte
EXPERIENCES COMPONENT
* Similar to what we did in NavBar.svelte, we'll also create a JavaScript Array of Objects to hold
our data and then use Svelte #each loop to render them to our browser
{#each exps as { title, duration }}
{/each}
SCROLLING EFFECT
NOTICE THAT WE SET THE ID="EXPERIENCES" FOR OUR SINCE WE WANT THE SCROLLING ANIMATION THAT
WHENEVER WE CLICK AN ITEM ON OUR NAVBAR IT'LL SCROLL TO THE SECTION WITH THE MATCHING ID, LET'S
RECALL OUR NAVBAR CODE FOR THIS:
> NavBar.svelte
const navItems = [
{ title: "About", url: "#About" }, // Scroll to section with id About
{ title: "Experiences", url: "#Experiences" }, // Scroll to section with id Experiences
{ title: "Projects", url: "#Projects" }, // Scroll to section with id Projects
];
And we also need to add a little bit of CSS to make the scrolling become smoother
> app.css
html {
scroll-behavior: smooth;
}
PROJECTS COMPONENT
* Similar to what we did in Experiences.svelte, we'll also create a JavaScript Array of Objects to
hold our data and then use Svelte #each loop to render them to our browser
{#each projects as { title, description, url }}
{/each}
NOW, YOU'VE SUCCESSFULLY BUILT UP A DECENT WEBSITE 🤩 🤩 YOU CAN ALWAYS CHECK THE FULL CODE HERE
[https://github.com/acmCSUFDev/intro-to-web-dev/tree/part-2-reference]
LET'S SEE HOW'RE WE GOING TO DEPLOY THIS IN THE NEXT BLOG :D