CapstoneProfile page and a QR code
Project 05 · Week 4 capstone

Profile page and a QR code

Stop attaching a CV and hoping. Build one page that says who you are, put it online, and print a QR code on your CV that opens it when someone scans it.

The problem

A professor asks what you work on. You send a CV as an attachment and hope they open it. Maybe they do, three days later, in a folder of forty other attachments. You have no single link — nothing you can say out loud that lands them on a page that explains, clearly, who you are academically.

So build one. One page: your background, your research interest, your projects. And a small square of black and white that opens it.

Here is what that square is for. You print it on your actual CV. Someone scans it at a conference, standing in front of you, and your page opens on their phone while you are still shaking hands. No attachment. No hoping. A link that is already in their pocket.

This project ends up on the internet with your name on it. That is the point of it.

What your program does

  1. You keep your details in one file — your name, your degree, your research interests, your projects.
  2. Your program turns them into a web page.
  3. You put that page online, for free. Now it has a link.
  4. Your program turns that link into a QR code image.

Four steps. Two of them you can already do — reading a file, and building text with your details filled in. The other two you will have to go and find out.

And step 3 is not one of yours. Step 3 is GitHub, and GitHub is the next session — it is coming. I am telling you this now because it changes what this project is. In the other projects, publishing is a nice-to-have you can skip. Here it is load-bearing. A QR code points at a link, and a link only exists once the page is online. So this is the one project that genuinely does not work until it is published. That is deliberate. It is the project that drags your work out of your laptop and onto the internet, which is exactly where the next session is taking you anyway.

What you'll be holding at the end

A live web page anyone can visit, sitting at a real link. And a QR code image that, when someone scans it with a real phone, opens that page.

Both with your name on them. One you can send in an email. One you can print on paper and hand to a stranger.

What you'll have to find out

These are the questions you take to the docs, to an AI, or to me. Nobody has taught you the answers.

  • How do you build a web page out of Python? A web page is just a text file with a particular shape. Which means open() and f-strings get you further than you would ever guess — you are writing a text file, same as always, it just has to be the right kind of text.
  • How do you turn a link into a QR code image? There is a library for this. Go and find it.
  • How do you put a page on the internet, for free? There is a place we will publish it. Finding that place, and getting your page to sit there, is part of the work.

Remember the recipe: say the problem in plain words, find the box, install it, find the smallest example that works, run it, check it, then use it in your own function.

Requirements

To pass, your project must:

  • Read your details from a file, not typed into the middle of your program. Someone should be able to change your research interest without touching your code.
  • Use at least one function you wrote, with parameters and a return value. build_page(name, degree, interests) is the obvious one.
  • Generate the page from your details. Your program writes the page. You do not write the page by hand and call it done.
  • Be published, at a real URL you can open on someone else's phone.
  • Produce a QR code image that actually opens that URL when scanned with a real phone. This one you have to test, not assume. Running the code and seeing an image appear is not the check. Picking up your phone and scanning it is the check.
  • Come with a README that says what it does, how to run it, one thing it can't do, and one thing you would add next.
  • Be something you can explain out loud, line by line. If a line is in your program and you cannot say what it does, either find out or take it out.

Done, and going further

Done is a page saved on your own computer, and a QR code that opens anything at all when you scan it. If you got a library to make a page, and got a QR code to open a link on your phone, you have done the hard part. That is a pass.

Going further, if you have the appetite:

  • Publish it, and point the QR code at the real URL — the whole thing, end to end.
  • Style the page so it does not look like plain text.
  • Add sections — a photo, a list of talks, a contact line.
  • Generate a downloadable PDF of the same details, so people can save you as a file too.

Where people get stuck

A QR code that opens file:///Users/you/page.html works on your laptop and fails on every phone on Earth. That address means "a file on this exact computer." Your laptop has that file. The professor's phone does not, and never will. Only a real public link works from someone else's device — which is the whole reason publishing is not optional here.

A library that makes an image often needs a second library underneath it to actually save that image. If the code runs right up to the moment it should save the picture and then falls over, do not stare at your own lines. Go looking for the missing helper the image library quietly depends on. That is usually the thing.

Never trust a QR code you have not scanned yourself. Making the image is not checking the image. Pick up a real phone, point it at the code, and watch what opens. Until you have done that, you do not know that it works — you only know that it exists.