Guided Build: Functionality & Data
From Static to Dynamic
In Session 1, you built the core screen of your project. It looks like something — but it doesn't DO much yet. Today, you're making it functional. By the end of this session, users will be able to interact with your project and their actions will be saved.
This is the hardest session. Adding real functionality is where most bugs happen. That's normal. You have your Bug Report Template (PDF) and your AI troubleshooting skills from Lesson 5.3. You'll use both today.
Before You Start
- Your Session 1 Repl is open and the live preview still works
- Your data plan from Module 4 is open or in mind
- Bug Report Template (PDF) is nearby (you'll probably need it)
- A parent or older sibling reachable while you work — this is the bug-heavy session
Find this and all other downloadable resources on the Dashboard Resources page.
Stuck? Use the Module 5 Starters
This is the bug-heavy session. If your project breaks badly and AI can't unstick it after a few tries, the Module 5 Starters page walks you through two safety nets:
- A starter prompt for your track — paste it into a fresh Repl's AI panel and you'll get a working baseline.
- A working starter project you can either (a) study as a reference and describe specific features to AI, or (b) view the source and copy it into a fresh Repl as your foundation. Step-by-step instructions for both options are here.
Better to start fresh from a working baseline than spend an hour untangling.
Two Replit notes before you keep going
- You don't need to "paste your code" into AI. Replit's AI panel can already see every file in your Repl. When the prompts in this lesson say "here's my current code: [paste]," that's leftover language from working outside Replit. Just delete that part of the prompt — AI already has the context.
- You don't need to save backups. Replit auto-saves and keeps history. If a change breaks your project badly, you can ask AI: "Undo the last change you made." Or use Replit's built-in version history (look for a clock or History icon).
Track 1: Personal Productivity Tool — Session 2
Only follow this step if you're on Track 1. If you're on Track 2 or 3, click "Next" to find your track.
What you're adding today: User input (add new items), data persistence (saves between sessions), and progress calculation.
Step 1: Add the ability to create new items. Right now your list shows hardcoded items. Let's make users able to add their own:
Expected result: Your app should now let you type a habit name, click Add, and see it appear in the list. The existing habits should still be there.
Step 2: Make checkboxes actually work. Clicking a checkbox should mark a habit as complete for today and update the progress display:
Step 3: Add data persistence with localStorage. Right now, if you close the browser tab, your data disappears. localStorage is a small built-in storage area inside the browser that lets a webpage remember things across visits — perfect for a personal tracker. Let's wire it up:
Expected result: Refresh your Replit preview. Your habits should still be there. Check a few habits, refresh again — checked status should persist. (To test the "new day" reset, you can ask AI to add a "simulate next day" test button you can use, then remove it later.)
Step 4: Add a delete option. Users need to be able to remove habits they no longer want to track:
Track 1 Checkpoint — End of Session 2
Your app should now:
- Let users add new habits via input field
- Let users check/uncheck habits with visual feedback
- Show a progress indicator (X/Y completed today)
- Save data between browser sessions (localStorage)
- Let users delete habits
- Reset checkmarks daily while preserving habit list and streaks
Replit auto-saves and tracks history — no manual backup needed. If something breaks, ask AI to undo the last change, or use Replit's history view to roll back.
Track 2: Creative Portfolio or Community Site — Session 2
Only follow this step if you're on Track 2. If you're on a different track, click "Next" to continue.
What you're adding today: Real content pages, interactive features (filtering, search, or recommendations), and polish.
Step 1: Build out your primary content page. Your homepage has a preview grid. Now build the full page that it links to (Gallery, Recommendations, Opportunities, etc.):
Expected result: A content page with your items displayed in a grid, category tags visible, and filter buttons that actually work — clicking "Fantasy" shows only fantasy books, etc.
Step 2: Build your About/Contact page.
Step 3: Add an interactive feature. A portfolio or community site becomes memorable when it has something interactive. Choose ONE: a search bar, a recommendation quiz ("Answer 3 questions and I'll recommend..."), a dark/light mode toggle, or sort options (newest, oldest, highest rated).
Track 2 Checkpoint — End of Session 2
Your site should now have:
- A homepage with working navigation to all pages
- A content page with your real items, category filters that work
- An About/Contact page with your real information
- At least one interactive feature (search, quiz, dark mode, or sorting)
- Consistent design across all pages (same nav, footer, colors, fonts)
Replit auto-saves and tracks history — no manual backup needed.
Track 3: Data Explorer Dashboard — Session 2
Only follow this step if you're on Track 3. If you're on a different track, click "Next" to continue.
What you're adding today: User input for new data, interactive filters, and dynamic chart updates.
Step 1: Add data entry. Users need to be able to add new data points to your dashboard:
Expected result: A form appears on your dashboard. When you add an entry, the table updates, the charts redraw with the new data, and the summary numbers change. Close and reopen — your added data is still there.
Step 2: Add filters.
Step 3: Add a third visualization. A good dashboard tells a story with multiple views. Add one more chart:
Track 3 Checkpoint — End of Session 2
Your dashboard should now:
- Let users add new data entries via a form
- Save data between sessions (localStorage)
- Have at least 3 different charts/visualizations
- Have working filters (date range and/or category)
- Update all charts and metrics when data changes or filters are applied
Replit auto-saves and tracks history — no manual backup needed. If something breaks, ask AI to undo the last change, or use Replit's history view to roll back.
Session 2 Troubleshooting
This session has more things that can break. Here are fixes for the most common problems:
Data isn't saving between sessions:
Charts don't update when data changes: Chart.js charts need to be explicitly updated. If you add data and the chart doesn't change:
New features broke existing ones: This happens when new code conflicts with old code. Don't panic:
KEY CONCEPTS
KEY CONCEPTS — LESSON 5.4
1. Session 2 transforms your static screen into a working project: user input, data persistence, and dynamic updates.
2. localStorage saves data between browser sessions so users don't lose their work. Always test that it actually persists by closing and reopening.
3. This session has the most bugs — that's expected. Use the bug report pattern: what you expected, what happened, what you tried, relevant code.
4. Always save a backup before each session. If something breaks badly, you can revert instead of starting over.
5. By the end of this session, your project should handle real user input and save data between visits.
Level Up: Coming Next
Lesson 5.5 — Guided Build: Test, Fix, Polish. Now it's time to systematically test your project, fix bugs, and polish it until it's ready to share.
Continue to Lesson 5.5 →