Skip to content

Expert · Build, deploy and get hired · topic 63 of 64 · 40 min

Your portfolio project

Explanation

A portfolio is a small website that shows who you are and links to 2 or 3 real projects that are live and on GitHub. Recruiters spend only a minute or two, so each project needs a working link, a clear README with screenshots, clean commits, and good accessibility and Lighthouse scores on a phone. Your own ideas beat copied tutorial projects.

What recruiters look at

A recruiter or developer opens your portfolio for a minute or two, often on a phone. They check: does the link work, does it look clean and readable, are there 2 or 3 projects that solve a real problem, is the code on GitHub with a clear README, and do the commits look like real work. They do not read every line of your code.

Think of it like this: Your portfolio is like a shop window in a busy market. People glance for a few seconds while walking past. A good shopkeeper puts the best three items in front, well lit and clearly priced, not the whole godown.

Plan the portfolio site

  • Header: your name and role ("Front-end developer"), with a nav to the sections.
  • About: two or three honest lines and where you are based.
  • Projects: a card for each one with a screenshot, title, the problem it solves in one line, the tech used, and Live and Code links.
  • Skills: only what you can explain in an interview.
  • Contact: email, GitHub, LinkedIn and a link to your resume PDF.
html
<article class="project">
  <img src="images/expense.webp" alt="Expense tracker showing spending by category" width="640" height="400">
  <h3>Hostel expense tracker</h3>
  <p>Tracks mess, travel and book costs in rupees. Data stays on the phone with localStorage.</p>
  <p>HTML, CSS, JavaScript</p>
  <a href="https://your-name.github.io/expense-tracker/">Live site</a>
  <a href="https://github.com/your-name/expense-tracker">Code</a>
</article>
One project card: semantic, with alt text and real links

Pick 2 or 3 real projects

ProjectShows these skillsMake it yours
Expense trackerForms, arrays, reduce, localStorageRupee formatting, categories like rent, mess and travel, monthly totals, export to CSV
An app using a public API (weather, train status style, cricket scores)fetch, async/await, loading and error statesDebounced search, a clear message when offline, saved favourites
Landing page for a local businessSemantic HTML, responsive CSS, accessibility, SEOReal content (with the owner's permission), a map link, a WhatsApp click-to-chat link, fast on slow data
Optional: a React + TypeScript version of one of theseComponents, state, types, routingAdd one feature the plain version did not have
Careful: Avoid copied tutorial projects: recruiters see the same movie-site clone and to-do app hundreds of times. If you start from a tutorial, change it a lot (your own design, data and features) and say honestly in the README what you added.

Many public APIs need a key. If a key must stay secret, it cannot sit in front-end code (you learned why with VITE_ variables). Prefer APIs that need no key or give a key meant for browser use, and read their terms.

A README that sells the project

output
# Hostel Expense Tracker

Track daily spending in rupees and see where the money goes each month.

Live: https://your-name.github.io/expense-tracker/

![Screenshot of the monthly summary](docs/screenshot.png)

## Features
- Add, edit and delete expenses; data is saved in localStorage
- Monthly total and spending by category

## Tech used
HTML, CSS, JavaScript, Vite

## How to run
npm install
npm run dev

## What I learned
Using reduce for totals, and testing with a keyboard only.
README.md: what, live link, screenshot, features, tech, how to run

Clean Git history and good scores

Make small commits with clear messages, like "Add monthly total to expense list", not "final final 2". Keep node_modules, dist and .env out of Git. Use branches and pull requests even when you work alone; you get preview deploys for free. Then run Lighthouse in mobile mode: Accessibility, Best Practices and SEO can usually reach high scores with careful work, and Performance should be good too. Test with the keyboard only and on a real 360 px wide phone, because mobile-first is how most Indian users browse.

GitHub profile and LinkedIn

  • GitHub: a clear photo, a short bio, your best 3 repos pinned, and a profile README (a repo with the same name as your username).
  • Every pinned repo has a description, a live link in the About box and a README.
  • LinkedIn: a headline like "Front-end developer | HTML, CSS, JavaScript, React", your portfolio in the Featured section, and a short post about each project with a screenshot or short screen recording.
  • Use the same name, photo and links everywhere, so people know it is you.
Tip: Ask a friend to open your portfolio on their phone while you watch silently. Wherever they get stuck or confused, fix that first.

Watch the lesson

Your portfolio project · 1/7

1-2 minutes, on a phone

A recruiter spends a minute or two on your portfolio, often on a phone.

Prefer a video by a teacher? Find free videos on “web developer portfolio projects for freshers github readme tips” on YouTube ↗

In real life: From tutorial to a real project

Karthik had a weather app copied from a video, like hundreds of other applicants. He changed it into "Rain Alert for Farmers": you pick your district, it shows the next three days of rain in Tamil and English, and it works on a cheap phone with a slow connection. He wrote a README with a screenshot, the live link and what he learned, fixed contrast and labels until Lighthouse Accessibility was high, and pinned it on GitHub. In two interviews, the first question was about this project, and he could explain every decision.

Practice (0/3 done)

Task 1 · Code · HTML

Write the HTML skeleton of a portfolio page. It needs: lang on <html>; a <title>; <meta name="viewport"> and <meta name="description"> with a content of at least 20 characters; exactly one <h1>; a <nav> with at least 2 links that have an href; and a <section id="projects"> with at least 2 <article> cards. Each card has an <h3>, an <img> with a non-empty alt, and a link whose href is a real address (not empty and not "#").

Task 2 · Code · Javascript

Write a function readmeScore(readme) that checks a README text and returns { score, missing }. There are 5 checks, in this order: "title" (the first non-empty line starts with "# ", one hash and a space), "live link" (the text contains "https://"), "screenshot" (contains "!["), "how to run" (contains "npm install"), and "tech used" (some line, in lower case and trimmed, starts with "## tech"). score is how many checks pass (0 to 5); missing is the list of names of the checks that fail, in the same order. readmeScore("") returns { score: 0, missing: ["title", "live link", "screenshot", "how to run", "tech used"] }.

Task 3 · Practice

Build and deploy your real portfolio: the portfolio site itself plus 2 or 3 projects of your own (for example an expense tracker with localStorage, an app using a public API, and a landing page for a local business). Each project has its own repo, live link and README.

Quick quiz

Question 1

1.Which project usually impresses a recruiter most?

Question 2

2.Which set of things should every project README have?

Question 3

3.Which commit message is best?

Question 4

4.Your weather project needs an API key that must stay secret. Where should it go?

Question 5

5.What does mobile-first mean for your portfolio?

Read more (free)

Pass the quiz (60% or more) or mark this topic as done when you are ready.

Your progress is saved on this device only.

← Previous: Deploying your site