Project 3: The Capstone

CMU 15-113: Effective Coding with AI

Checkpoint Due Date: Mon. 4/20 at 8:00 PM
Final Due Date: Thu. 4/23 at 8:00 PM
Time Estimate: ~8 hours (spread over ~2 weeks)
Deliverables: Source code on GitHub (including README.md + prompt log + reflection) + live demo + short video + Google form response

Assignment Overview

Goal: Simply put, make something extremely cool that demonstrates your technical skills and design sensibilities, while using AI effectively as part of your process. This project should be portfolio-ready, and an asset that you will be eager to show off in the future. The format is very open-ended, but we will be looking for attention to detail, thoughtful use of AI, clear documentation of your process, and demonstrable learning since the start of the semester.


Timeline: Roughly two weeks to complete. Expect to spend about 8 hours of focused work. We'll have at least two hours of working time in-class. There will be a checkpoint at the beginning of the final week (Mon. 4/20) where we'll expect to see a working demo, and then you'll have until Thu. 4/24 to polish everything up and make your final submission.


Why This Matters: Like Projects 1 and 2, this project is meant to open doors for you. This assignment asks you to combine your technical skills with responsible and strategic AI usage to produce a project you can show in interviews and on your portfolio. It's also very open-ended, which is actually part of the challenge. What will you create in a mostly-unconstrained space? It could be a web app, a phone app, something that only runs locally, or something else entirely as long as it demonstrates your mastery of Effective Coding with AI.


Note: Like what followed Project 2, there will be an oral exam in the last week where we will expect you to understand and be able to explain what each part of the code is responsible for. Once again, you'll also need to write or substantially modify at least some of your code, so be careful not to just vibe-code until it's too complicated for you to grasp. As you work, ask yourself this: Would you be comfortable discussing this project in an in-person technical job interview, without notes? If not, begin investing effort in understanding the code the AI has written for you, or focus on simplifying the project until you feel you understand and can discuss it.

Requirements & Grading

What You Must Submit

Privacy & Security: Do not commit API keys, credentials, or secrets to GitHub. Store secrets as environment variables or use Render/Vercel secret management.

Grading

Full credit requires a working, well-documented, and thoughtfully designed project. Special emphasis will be placed on:

You may reuse and/or improve upon code from earlier assignments, but we still expect ~8 hours of *new* work for this project.

Detailed Instructions

  1. Decide on a creative idea. Pick a project that excites you and can be completed in ~8 hours. Focus on something that will be useful or impressive on your portfolio. The safest ideas will be those that you can get working relatively quickly, but which have many features that you can add and improve once the core is working.
First focus on substance over polish: Demonstrate clear functionality and learning. UI polish will help your grade, but the graders will first evaluate for functionality and technical implementation.
  1. Build the core app. You may use any stack (i.e. any combination of technologies) that meets the project requirements, but make sure your project includes at least two of the following:
    • Frontend-backend communication (e.g., fetch + API endpoint)
    • Thoughtful third-party API usage with secure keys
    • Use of a database
    • Use of Expo and/or React Native or something else that allows it to run on a physical phone
    • Substantial data analysis or visualization
    • Exceptionally rich interactivity through a technology we haven't explored yet, like WebGL
    • Use of a computer vision or ML module/algorithm
    • (If these features really don't fit your idea, talk to Mike ASAP in case we can work something out.)
    Also include at least one substantial part of the code that you wrote or meaningfully modified yourself so you can explain it in person or on video.
  2. Document thoroughly and document as you build (rather than just at the end). Add a clear README.md and a detailed prompt log (prompt_log.txt or similar) that shows your workflow and AI usage. Include your SPEC.md and REVIEW.md if you use an agentic process!
  3. Commit and push changes regularly. We will expect to see several commits made to your repository over the two-week project period, since this will be evidence for sustained effort. We recommend pushing your changes whenever you are done working each day. (This also prevents you from losing your progress if your computer breaks at the deadline, which will happen to at least one or two of you. And if for some reason you aren't able to submit the form on time, we could in theory still find and grade your existing work, which is good for you and good for us.)
  4. Attend the midpoint in-person check-in. Bring as much working code as possible and be ready to describe progress and remaining work.
  5. Test end-to-end. Make sure the deployed frontend talks to any backend services (if applicable). Make sure that error states are handled gracefully (i.e. try not to crash due to unexpected user behavior, and provide sensible error messages for issues that cannot be avoided, like a backend server outage). We strongly recommend testing any backends locally first, in order to speed up the debugging process.
  6. Write your reflection. See below for more details, and include it in your repository.
  7. Push to GitHub (& deploy if relevant). Deploy the app (in whatever form makes sense for your project) and verify any links work. If creating a phone app, make sure it runs on your phone and ideally someone else's phone too.
  8. Record a short demo video. Show the app running (in its deployed location, not just locally unless it only makes sense to do so) and briefly explain the architecture and the portion of code you implemented yourself.
  9. Complete the Google form. Submit your repository URL and video link before the deadline.

Reflection

In REFLECTION.md, answer the following. Be honest and specific; there are no wrong answers here, but you must write this yourself, without AI. (Approx. 250-500 words total.)

  1. Describe your process. At a high level, how did you go about creating this project?
  2. What AI tools and strategies did you use? What models did you choose, and were you using them in a browser chat, in something like Cursor, in the command line, etc? Did you use an agentic process like in HW8, or something else?
  3. Why did you make the choices above?
  4. What changed from your pre-113 approach? Compare your approach to how you might have approached the project before 15-113. What has changed, if anything? Do you feel more or less well-equipped to create projects like this within a reasonable time frame?
  5. What might you do with this project with more time?

Tips (Mostly repeated from Project 2)

Note: Start early and back up your work! We aren't willing to extend the deadline into Finals Week (except perhaps in a very rare and serious emergency, under the guidance of your advisor) so you should try to get done early, especially since we're looking for a mostly-working project by the checkpoint. Extensions on this project for typical reasons (illnesses, broken computers, etc) are very unlikely, even on the checkpoint, since this will delay useful feedback.

Questions? Ask on Ed, attend office hours, or email the instructor. Consult the course AI usage and collaboration policies on the course homepage.