đŻ Capstone Project - All Levels (Concatenated)
This file contains all levels of the capstone project concatenated into a single document. Each level is separated by clear delimiters to allow easy parsing back into individual files.
Structure:
- Each level starts with
<!-- LEVEL_START: capstone-lv-X.md -->
- Each level ends with
<!-- LEVEL_END: capstone-lv-X.md -->
- External links are preserved as-is
- Navigation links are preserved for reference
Level 1: Project Planning & Setup
Goal: Plan your capstone project and set up the development environment.
đ IMPORTANT: Complete Planning First!
Before you start coding, you must work through the planning document:
đ Week 8 Capstone OUTLINE.md
Complete all sections of the planning document before proceeding with Level 1. This will help you understand the project requirements, technical specifications, and success criteria.
What Youâll Do
Create a new project folder and set up all the necessary files to get started.
Instructions
- Make a new folder for your project named
capstone-project
- Inside, create these files:
âš Third-Party File Info
Download helpers-full.js from the class repo:
https://github.com/rmccrear/codex-lv2-may-2025/tree/main/guides/week5-event-driven-apps/other-dev-files
Place it in your project folder before linking it in index.html.
â
Check
Open your project folder in VS Code and verify you can see all 4 files:
index.html
app.js (we will use this instead of script.js)
styles.css
helpers-full.js (we will use this instead of helpers.js since it has a few more functions to use.)
README.md
If any files are missing, create them before moving to Level 2.
Note: What about .gitignore and secret-variables.js? These will be covered in a later level. (Before we add secrets.)
Level 2: Basic HTML Structure & Live Server Test
What Youâll Do
Set up the basic HTML structure, link all necessary files, and test with live-server.
Instructions
- Add
<!DOCTYPE html>, <html>, <head>, <body>
- Add an H1 tag with your project name
- Link Bootstrap CSS (via CDN)
- Include these scripts, in order:
helpers-full.js
secret-variables.js
app.js
Example Script Order in index.html
<!-- Example script order in index.html -->
<script src="helpers-full.js"></script>
<script src="secret-variables.js"></script>
<script src="app.js"></script>
Add a console log to your JavaScript app.js
in app.js
console.log("Hello from app.js");
đĄ Code Hints
Need help with the HTML structure? Check out these snippets:
- HTML IDs and JavaScript access: See SNIPPETS.md for ID naming and element access
- Bootstrap classes: See SNIPPETS.md for styling examples
â
Check
- In your terminal, run
npx live-server in your project folder
- Your browser should automatically open to a local URL (like http://127.0.0.1:8080)
- You should see your project title as a large heading (H1)
- Open Chrome DevTools (F12) and check the Console tab
- Look for any red error messages about missing files
- Check that you can see a console log that says âHello from app.jsâ
- If you see errors about missing files, double-check your file names and paths
Level 3: Git Setup
What Youâll Do
Initialize version control and push your project to GitHub.
Instructions
- Initialize a git repository (
git init)
- Add all files to git (
git add .)
- Create your first commit with a meaningful message like
chore: initial project setup
- Push to GitHub (if you have a remote repository set up)
â
Check
- Open your terminal/command prompt in your project folder
- Run
git status - you should see âOn branch mainâ and ânothing to commit, working tree cleanâ
- Run
git log --oneline - you should see your commit message like âchore: initial project setupâ
- IMPORTANT: Check that
secret-variables.js is NOT on GitHub:
- Go to your GitHub repository in a web browser
- Look through the files - you should NOT see
secret-variables.js listed
- If you see it, check your
.gitignore file includes secret-variables.js
- If you see any errors, make sure youâre in the correct folder and try the git commands again
đ Exploration: Commit Message Prefixes
You might be wondering why we use prefixes like chore: or feature: at the start of commit messages. These are part of a best practice convention called Conventional Commits that helps organize and categorize your changes:
chore: - For maintenance tasks, setup, or non-functional changes (like adding files, updating dependencies, or initial project setup)
feature: - For new functionality or features youâre adding to your project
fix: - For bug fixes or corrections
docs: - For documentation changes
style: - For formatting, styling, or code style changes
refactor: - For code restructuring without changing functionality
Using these prefixes makes it easier to:
- Quickly understand what type of change each commit represents
- Generate changelogs automatically
- Filter commits by type when reviewing project history
- Follow consistent practices in professional development
In this level, we use chore: because weâre doing initial project setup - creating the foundation without adding new features yet.
Level 4: Overall Project Check
What Youâll Do
Verify everything is working correctly with both live-server and git.
Instructions
Run comprehensive tests to ensure your project setup is complete and secure.
â
Check
- Live Server Test:
- Run
npx live-server in your project folder
- Open your browser and navigate to the live-server URL
- You should see your project title as a large heading (H1)
- Open Chrome DevTools (F12) and check the Console tab
- Look for any red error messages - if there are none, youâre good to go!
- Git Status Check:
- Run
git status - you should see âOn branch mainâ and ânothing to commit, working tree cleanâ
- Run
git log --oneline - you should see your commit message
- Security Check:
- Go to your GitHub repository in a web browser
- Look through the files - you should NOT see
secret-variables.js listed
- If you see it, check your
.gitignore file includes secret-variables.js
- If you do accidentally commit your
secret-variables.js, GitHub will not allow you to upload it. Ask for help on how to remove it from your git history.
Check off these items in your README:
đ Congratulations!
Youâve set up your project foundation securely. Time to build the UI!
Level 5: UI & DOM Wiring - Basic Interface
Goal: Build the Bootstrap UI, connect it with helpers (or direct DOM methods), and test interactions.
(Choose meaningful ids. Example only: <input id="userPrompt">.)
What Youâll Do
Add the basic interface elements to your HTML.
Instructions
In the HTML, add the interface:
- An input for the userâs prompt
- A button to send
- A plain
<div> or a <pre> for the output (no styling yet)
đĄ Code Hints
Need help with the HTML structure? Check out these snippets:
- HTML IDs and JavaScript access: See SNIPPETS.md for ID naming and element access
- Input elements: See SNIPPETS.md for
<input> examples
- Button elements: See SNIPPETS.md for
<button> examples
- Basic structure: Use meaningful
id attributes like id="user-chat-input" and id="send-btn"
â
Check
Navigate to your file in your browser (remember, youâre using live-server) and verify you can see:
- A text input box where you can type
- A button (it wonât do anything yet, but it should be visible)
- A blank area below for the output
- Open Chrome DevTools (F12) and check the Console tab for any errors
Level 6: Bootstrap Styling
What Youâll Do
Add Bootstrap classes to style your input and button.
Instructions
Add Bootstrap classes to style the input and button.
đĄ Code Hints
Stuck on styling? Bootstrap has special classes for form elements. Check out the Bootstrap Classes section in SNIPPETS.md for inspiration.
đ Connect to Previous Lessons
Working with Bootstrap classes? Check out Week 4, Lesson 2: Bootstrap Framework for a complete guide to Bootstrap utilities and components. Focus on the button and form styling sections.
â
Check
- Open your webpage in a browser
- You should see your input and button with Bootstrap styling (they should look more polished)
- The input should have a clean border and the button should have Bootstrap button styling
- Open Chrome DevTools (F12) and check the Console tab for any errors
- If the styling doesnât look right, check that Bootstrap CSS is properly linked in your HTML
Level 7: Card Structure
What Youâll Do
Convert the output area into a proper Bootstrap card.
Instructions
Convert the output <div> into a Bootstrap card with proper structure (card container, body, title, and text).
đĄ Code Hints
Building Bootstrap cards? Cards need specific container and content classes to look right. Check out the Bootstrap Classes section in SNIPPETS.md for card structure examples.
â
Check
- Open your webpage in a browser
- You should see a Bootstrap card where your output area used to be
- The card should have a clean border, padding, and professional appearance
- Open Chrome DevTools (F12) and check the Console tab for any errors
- If the card doesnât appear styled, check that youâre using the correct Bootstrap card classes
Level 8: IDs and Testing
What Youâll Do
Add meaningful IDs to all elements and test that they can be accessed.
Instructions
- Add meaningful
id attributes to all elements (input, button, card, etc.)
- Test that you can access them with
getElementById() in the console
- Use
setProperty() to test that you can modify element properties
đĄ Code Hints
Need help with IDs? Check out these snippets:
- HTML IDs and JavaScript access: See SNIPPETS.md for ID naming and element access
- Testing elements: Use
console.log(document.getElementById("your-id")) to test access
â
Check
- Open your webpage in a browser
- Open Chrome DevTools (F12) and go to the Console tab
- Type
document.getElementById("your-input-id") and press Enter
- You should see the input element returned (not null)
- Test all your IDs this way to make sure they work
- Try using
setProperty() to test element modification:
setProperty("your-input-id", "backgroundColor", "yellow")
setProperty("your-button-id", "border", "3px solid red")
- If any return
null, check that the ID is spelled correctly in your HTML
đ Optional: Diving Deeper - DOM Operations
For extra practice, you can also test element access with:
console.log(document.getElementById("your-input-id"))
This will show you the full element object in the console, which can help you understand what properties and methods are available.
You can also use the native DOM style property to modify elements directly:
// Same as setProperty("your-input-id", "backgroundColor", "yellow")
document.getElementById("your-input-id").style.backgroundColor = "yellow";
// Same as setProperty("your-button-id", "border", "3px solid red")
document.getElementById("your-button-id").style.border = "3px solid red";
The DOM Operations approach is the standard way to manipulate styles in professional JavaScript development and is used across all major frameworks and libraries. Learning the native DOM API prepares you for real-world codebases where helper functions arenât available.
Level 9: Event Listeners
What Youâll Do
Add event listeners to your button and input using the onEvent helper function.
Instructions
- Add an event listener to your button for the âclickâ event
- Add an event listener to your input for the âinputâ event
- Use
onEvent(elementId, eventType, function) syntax
đĄ Code Hints
Need help with event listeners? Check out these snippets:
- Event handling: See SNIPPETS.md for
onEvent examples
- Anonymous functions: Use
function() { } syntax for your event handlers
â
Check
- Open your webpage in a browser
- Open Chrome DevTools (F12) and go to the Console tab
- Click your button - you should see a message in the console
- Type in your input - you should see messages in the console as you type
- If you donât see messages, check that your event listeners are set up correctly
đ Optional: Diving Deeper - Named Functions
Instead of using anonymous functions, you can create named functions for your event handlers:
function clickHandler() {
console.log("Button was clicked!");
setText("output", "Hello from the button!");
}
// Use the named functions with onEvent
onEvent("my-button", "click", clickHandler);
Named functions make your code more readable and reusable, especially when you need to use the same handler for multiple elements.
đ Optional: Diving Deeper - Native addEventListener
You can also use the native DOM addEventListener method instead of the helper function:
function clickHandler() {
console.log("Button was clicked!");
setText("output", "Hello from the button!");
}
// Use native addEventListener
document.getElementById("my-button").addEventListener("click", clickHandler);
This approach gives you direct access to the native DOM API and is the standard method used in professional JavaScript development.
What Youâll Do
Get the value from your input and display it in the output area.
Instructions
- Use
getValue() to get the input value
- Use
setText() to display it in the output area
- Test with different inputs
đĄ Code Hints
Need help with input/output? Check out these snippets:
- Getting input values: See SNIPPETS.md for
getValue() examples
- Setting text: See SNIPPETS.md for
setText() examples
â
Check
- Open your webpage in a browser
- Type something in the input box
- Click the button
- You should see the text you typed appear in the output area
- Try typing different things and clicking the button again
- If nothing appears, check that youâre using
getValue() and setText() correctly
Level 11: Secret Files Setup
What Youâll Do
Create the secret files needed for API keys and version control.
Instructions
- Create
secret-variables.js for storing API keys
- Create
.gitignore to prevent committing secrets
đ secret-variables.js (starter template)
// secret-variables.js
// Store secret keys or tokens here.
// â ď¸ Do not commit this file to a public repo.
// Put your huggingface secret token here
HF_TOKEN = "your-huggingface-api-token-goes-here";
// Optional: if you are using an API with secret, put it
API_TOKEN = "your-api-key-goes-here";
đ .gitignore (starter template)
Copy this and put it in the .gitignore.
Check that the filenames are all spelled exactly right.
Donât commit before you add your .gitignore
# Secret files (â ď¸ do not push secrets!)
secret-variables.js
â
Check
- Create
secret-variables.js with the template above
- Create
.gitignore with the template above
- Verify both files exist in your project folder
- Make sure the filenames are spelled exactly right
- Donât commit until you create your
.gitignore to keep your token off GitHub and prevent it from becoming public information.
What Youâll Do
Add validation to check if the input is empty before processing.
Instructions
- Use an
if statement to check if the input is empty
- Show an error message if itâs empty
- Only process the input if itâs not empty
đĄ Code Hints
Need help with validation? Check out these snippets:
- Conditional logic: See SNIPPETS.md for
if statement examples
- Error messages: Use
setText() to show error messages in the output area. For example: âPlease enter text.â or another similar error message.
- Change the color: Use
setProperty() to make error text red, for example: setProperty("output", "color", "red")
â
Check
- Open your webpage in a browser
- Click the button without typing anything - you should see an error message
- Type something and click the button - you should see the text you typed
- Clear the input and click the button again - you should see the error message again
- If the validation doesnât work, check your
if statement and error message
Level 13: API Integration Planning
What Youâll Do
Choose and plan your API integration based on your project requirements.
Instructions
- Review the OUTLINE.md requirements for API integration
- Choose one or more APIs from the suggested list
- Plan how youâll integrate them into your project
- Set up your API keys in
secret-variables.js
đĄ Code Hints
Need help choosing APIs? Check out these resources:
- API Selection: See SNIPPETS.md for API examples
- API Keys: Make sure to add your keys to
secret-variables.js and reference them as global variables
đ Connect to Previous Lessons
Working with APIs? Check out Week 6: APIs and Postman for a complete guide to API integration, testing with Postman, and handling responses.
â
Check
- Review the OUTLINE.md requirements
- Choose your APIs and plan your integration
- Add your API keys to
secret-variables.js
- Test that your keys are accessible as global variables
- If you need help choosing APIs, ask your instructor or check the suggested list in the outline
Level 14: Basic API Call
What Youâll Do
Make your first API call and display the response.
Instructions
- Use
fetch() to make an API call
- Handle the response with
.then() and .catch()
- Two changes needed on generated code: Change
response.text() to response.json(), and change arrow function to regular function (see Postman Generated Code section in Code Hints)
- Display the response in your output area
đĄ Code Hints
Need help with API calls? Check out these snippets:
- Postman Generated Code: See SNIPPETS.md for
fetch() examples
- Response handling: Use
.then() to process the response
â
Check
- Open your webpage in a browser
- Click the button to trigger your API call
- You should see the API response in the output area
- Open Chrome DevTools (F12) and check the Console tab for any errors
- If you see errors, check your API URL and response handling
Level 15: API Response Processing
What Youâll Do
Process the API response to extract and display meaningful data.
Instructions
- Parse the JSON response
- Extract the specific data you need (for example, temperature? pokemon stats?)
- Format and display it nicely in your output area
đĄ Code Hints
Need help with response processing? Check out these snippets:
- JSON parsing: See SNIPPETS.md for response handling examples
- Data extraction: Use dot notation to access nested properties
- Formatting: Use
console.log() to test how you want to format the data before displaying it to users in a later level.
â
Check
- Open your webpage in a browser
- Click the button to trigger your API call
- You should see formatted data in the output area (not raw JSON)
- The data should be meaningful and well-formatted
- If you see raw JSON or errors, check your response processing code
Level 16: Error Handling (Optional Challenge)
What Youâll Do
Add proper error handling to your API calls.
Instructions
- Use
.catch() to handle network errors (connection issues, timeouts)
- Use
if(response.ok === false) { console.log('API Error: ' + response.status + ' ' + response.statusText) } to handle API errors (404, 500, etc.)
- Display user-friendly error messages to your users (not just console logs)
- Test your error handling by temporarily breaking the API URL:
- Change
https:// to thtps:// (typo in protocol)
- Add extra characters to the URL like
&latitude=500 (There is not latitude 500, latitude goes from -90 to 90.)
- Put a typo in the endpoint path, for example: change
/v1/forecast to /v1/forecst (missing âaâ)
- Remember to fix the URL back to working state when done testing
đĄ Code Hints
Need help with error handling? Check out these snippets:
- Error handling: See SNIPPETS.md for
.catch() examples
- User messages: Use
setText() to show error messages to users
â
Check
- Open your webpage in a browser
- Click the button to trigger your API call
- You should see the API response in the output area
- Temporarily break your API URL (add âxâ to the end)
- Click the button again - you should see a user-friendly error message
- Fix the API URL and test again - it should work normally
Level 17: User Interaction Design
What Youâll Do
Design and implement user interactions that make your API calls more dynamic and useful. This is your chance to get creative and bring your unique idea to life! Think about what would make your app engaging and fun to use. Consider how users will discover and interact with your creation - will they click buttons, type inputs, or explore different options? This is where your project transforms from a simple API call into something truly special that showcases your creativity and problem-solving skills.
Instructions
- Think about how you want your user to interact with your app and the API you chose
- Consider different interaction patterns:
- Single button: One button that triggers the API call
- Multiple buttons: Different buttons for different actions (e.g., one for each city, like in week 6 weather-app)
- Input fields: Allow users to enter data that gets inserted to the URL (e.g., latitude and longitude)
- Conditional logic: Use if statements to handle different user inputs (e.g.,
if(input === "joke") { fetchJokeAPI() })
- Choose the interaction pattern that best fits your API and user needs
- Implement your chosen interaction pattern
- Remember to test as you go, as we did in the previous levels.
đĄ Code Hints
Need help with user interactions? Check out these snippets:
- Multiple buttons: See SNIPPETS.md for multiple button examples
- Input handling: Use
getValue() to get user input and add it to your API URL
- Conditional logic: Use
if statements to handle different user choices
â
Check
- Open your webpage in a browser
- Test your chosen interaction pattern:
- If using buttons, click each one to verify it works
- If using inputs, type different values and test the results
- If using conditional logic, test different input scenarios
- Verify that your API calls work with the user interactions
- Make sure the user experience feels intuitive and responsive
Level 18: AI Integration Planning
What Youâll Do
Choose and plan your AI model integration based on your project requirements.
Instructions
- Review the OUTLINE.md requirements for AI integration
- Choose one or more AI models from the suggested list
- Plan how youâll integrate them into your project
- Set up your AI API keys in
secret-variables.js
đĄ Code Hints
Need help choosing AI models? Check out these resources:
- AI Model Selection: Go to huggingface.co/models and filter by âtext generationâ and âfireworksâ (as shown in Week 7 Lesson 1)
- API Keys: Make sure to add your keys to
secret-variables.js and reference them as global variables
đ Connect to Previous Lessons
Working with AI models? Check out Week 7: AI Models and APIs for a complete guide to AI integration, Hugging Face models, and prompt engineering.
â
Check
- Review the OUTLINE.md requirements
- Choose your AI models and plan your integration
- Add your AI API keys to
secret-variables.js
- Test that your keys are accessible as global variables
- If you need help choosing AI models, ask your instructor or check the suggested list in the outline
Level 19: Basic AI Call
What Youâll Do
Make your first AI model call and display the response.
Instructions
- Use
fetch() to make an AI model call
- Handle the response with
.then() and .catch()
- Extract the generated text from the response (like in Week 7 Lesson 1)
- Display the generated text in your output area
đĄ Code Hints
Need help with AI calls? Check out these snippets:
- AI model calls: See SNIPPETS.md for Hugging Face examples
- Response handling: Use the callback in
.then() to process the response
- Error handling: Use callback in
.catch() to handle errors
â
Check
- Open your webpage in a browser
- Click the button to trigger your AI call
- You should see the AI response in the output area
- Open Chrome DevTools (F12) and check the Console tab for any errors
- If you see errors, check your AI API URL and response handling
Level 20: AI Response Processing
What Youâll Do
Process the AI response to extract and display meaningful data.
Instructions
- Parse the JSON response
- Extract the specific data you need
- Format and display it nicely in your output area
đĄ Code Hints
Need help with AI response processing? Check out these snippets:
- JSON parsing: See SNIPPETS.md for response handling examples
- Data extraction: Use dot notation to access nested properties
- Formatting: Use template literals to format your output
â
Check
- Open your webpage in a browser
- Click the button to trigger your AI call
- You should see formatted data in the output area (not raw JSON)
- The data should be meaningful and well-formatted
- If you see raw JSON or errors, check your response processing code
Level 21: AI Error Handling (Optional Challenge)
What Youâll Do
Add proper error handling to your AI model calls.
Instructions
- Use
.catch() to handle AI errors (similar to Level 16 API error handling)
- Use
if(response.ok === false) { console.log('AI Error: ' + response.status + ' ' + response.statusText) } to handle AI API errors
- Display user-friendly error messages to your users (not just console logs)
- Test your error handling by temporarily breaking the AI API call:
- Change
https:// to thtps:// (typo in protocol)
- Put a typo in the endpoint path, for example: change
/v1/chat/completions to /v1/chat/completionss (extra âsâ)
- Add invalid data to the request body like
"model": "invalid-model-name" (Look at the POJO sent as an argument to the fetch function call.)
- Remember to fix the API call back to working state when done testing
đĄ Code Hints
Need help with AI error handling? Check out these snippets:
- Error handling: See SNIPPETS.md for
.catch() examples
- User messages: Use
setText() to show error messages to users
â
Check
- Open your webpage in a browser
- Click the button to trigger your AI call
- You should see the AI response in the output area
- Temporarily break your AI API URL (add âxâ to the end)
- Click the button again - you should see a user-friendly error message
- Fix the AI API URL and test again - it should work normally
Level 22: AI Interaction Design
What Youâll Do
Design and implement user interactions that make your AI calls more dynamic and engaging. This is where you can really showcase your creativity with AI! Think about how users will interact with your AI - will they ask questions, give instructions, or explore different AI personalities? Consider what would make your AI app feel magical and intuitive. This is your opportunity to create something that demonstrates the power of AI while being fun and useful for your users.
Instructions
- Think about how you want your user to interact with your AI and what makes it special
- Consider different AI interaction patterns:
- Question-Answer: Users ask questions and get AI responses
- Creative Writing: Users provide prompts and get AI-generated stories, poems, or content
- Personality Chat: Users chat with an AI that has a specific personality (pirate, robot, etc.)
- Task Assistant: Users give instructions and AI helps complete tasks
- Interactive Story: Users make choices that influence AI-generated story outcomes
- Multi-turn Conversations: Users have ongoing conversations with context
- Special Challenge - Data-Enhanced AI: Use your API data to create richer, more personalized AI prompts (e.g., âBased on the weather in [city], write a poem about the dayâ or âCreate a story using this Pokemonâs stats: [pokemon data]â)
- Choose the AI interaction pattern that best fits your vision and user needs
- Implement your chosen AI interaction pattern
- Test different prompts and responses to ensure your AI feels engaging
- Remember to test as you go, as we did in the previous levels
đĄ Code Hints
Need help with AI interactions? Check out these snippets:
- AI calls: See SNIPPETS.md for AI integration examples
- Input handling: Use
getValue() to get user input and add it to your AI prompt
- Data-enhanced prompts: Combine your API data with AI prompts using template literals:
let prompt = `Based on the weather in ${cityName}: ${weatherDescription}, write a creative story about the day.`;
- Response formatting: Use template literals to format AI responses nicely
- Conditional logic: Use
if statements to handle different user inputs or AI responses
â
Check
- Open your webpage in a browser
- Test your chosen AI interaction pattern:
- If using question-answer, try different types of questions
- If using creative writing, test different prompt styles
- If using personality chat, verify the AI maintains its character
- If using task assistance, test different types of tasks
- If using data-enhanced AI, test with different API data to see how it affects AI responses
- Verify that your AI calls work smoothly with the user interactions
- Make sure the AI responses feel engaging and relevant to user inputs
- Test edge cases like empty inputs or very long prompts
- If using API data in prompts, verify the data is properly formatted and the AI uses it meaningfully (see Preformatted Raw Text Formatting with CSS for formatting help)
Level 23: Integration Testing
What Youâll Do
Test that all your integrations (API and AI) work together correctly.
Instructions
- Test your API calls with different inputs
- Test your AI calls with different prompts
- Test error handling for both
- Make sure everything works together
đĄ Code Hints
Need help with testing? Check out these resources:
- Testing strategies: Test with different inputs and edge cases
- Error scenarios: Test with invalid inputs and broken URLs
- Integration points: Make sure API and AI responses work together
â
Check
- Open your webpage in a browser
- Test your API calls with different inputs
- Test your AI calls with different prompts
- Test error handling for both
- Make sure everything works together smoothly
- If you find issues, fix them before moving to the next level
Level 24: UI Polish
What Youâll Do
Polish your user interface with better styling and user experience.
Instructions
- Add better Bootstrap styling
- Improve the layout and spacing
- Add loading states and feedback
- Make the interface more user-friendly
đĄ Code Hints
Need help with UI polish? Check out these resources:
- Bootstrap components: See SNIPPETS.md for styling examples
- Loading states: Use
setText() to show loading messages
- User feedback: Add visual feedback for user actions
â
Check
- Open your webpage in a browser
- Your interface should look polished and professional
- Add loading states for API calls
- Improve the overall user experience
- Test that all functionality still works after styling changes
Level 25: Final Testing
What Youâll Do
Perform comprehensive testing of your entire application.
Instructions
- Test all functionality thoroughly
- Test with different inputs and edge cases
- Test error handling
- Make sure everything works as expected
đĄ Code Hints
Need help with testing? Check out these resources:
- Testing checklist: Test all features systematically
- Edge cases: Test with empty inputs, very long inputs, special characters
- Error scenarios: Test with broken APIs, network issues, invalid responses
â
Check
- Open your webpage in a browser
- Test all functionality thoroughly
- Test with different inputs and edge cases
- Test error handling
- Make sure everything works as expected
- Fix any issues you find
Level 26: Documentation
What Youâll Do
Update your README.md with comprehensive project documentation.
Instructions
- Update your README.md with project description
- Add setup instructions
- Add usage instructions
- Add API information
- Add screenshots if helpful
đĄ Code Hints
Need help with documentation? Check out these resources:
- README template: Use the EXAMPLE_README.md as a template
- Documentation best practices: Include setup, usage, and API information
- Screenshots: Add screenshots to show your project in action
â
Check
- Update your README.md with comprehensive documentation
- Include setup instructions
- Include usage instructions
- Include API information
- Add screenshots if helpful
- Make sure the documentation is clear and complete
Level 27: Final Commit
What Youâll Do
Commit all your final changes and push to GitHub.
Instructions
- Add all your changes to git
- Create a final commit with a meaningful message
- Push to GitHub
đĄ Code Hints
Need help with git? Check out these resources:
- Git commands: Use
git add ., git commit -m "message", and git push
- Commit message: Use a descriptive message like
feat: complete capstone project with API and AI integration
â
Check
- Run
git status to see what files have changed
- Add all changes with
git add .
- Create a commit with a meaningful message
- Push to GitHub with
git push
- Verify your changes are on GitHub
Level 28: Project Review
What Youâll Do
Review your project against the requirements and make any final adjustments.
Instructions
- Review the OUTLINE.md requirements
- Check that youâve met all the technical requirements
- Check that youâve met all the functional requirements
- Make any final adjustments needed
đĄ Code Hints
Need help with review? Check out these resources:
- Requirements checklist: Go through each requirement systematically
- Technical requirements: Check API integration, AI integration, error handling
- Functional requirements: Check user interface, user experience, functionality
â
Check
- Review the OUTLINE.md requirements
- Check that youâve met all the technical requirements
- Check that youâve met all the functional requirements
- Make any final adjustments needed
- Test everything one more time
Level 29: Final Polish
What Youâll Do
Add final polish to your project to make it presentation-ready.
Instructions
- Add any final styling improvements
- Add any final functionality improvements
- Make sure everything is working perfectly
- Prepare for presentation
đĄ Code Hints
Need help with final polish? Check out these resources:
- Styling improvements: Use Bootstrap classes for better appearance
- Functionality improvements: Add any missing features
- Presentation prep: Make sure everything works smoothly
â
Check
- Add any final styling improvements
- Add any final functionality improvements
- Make sure everything is working perfectly
- Prepare for presentation
- Test everything one final time
Level 30: Presentation Prep
What Youâll Do
Prepare your project for presentation and demonstration.
Instructions
- Prepare a demo script
- Test your demo thoroughly
- Prepare for questions
- Make sure everything is ready
đĄ Code Hints
Need help with presentation prep? Check out these resources:
- Demo script: Plan what youâll show and in what order
- Testing: Test your demo thoroughly
- Questions: Be prepared to explain your code and decisions
â
Check
- Prepare a demo script
- Test your demo thoroughly
- Prepare for questions
- Make sure everything is ready
- Practice your presentation
Level 31: Final Testing
What Youâll Do
Perform one final comprehensive test of your entire application.
Instructions
- Test all functionality one more time
- Test with different inputs and edge cases
- Test error handling
- Make sure everything is working perfectly
đĄ Code Hints
Need help with final testing? Check out these resources:
- Testing checklist: Test all features systematically
- Edge cases: Test with empty inputs, very long inputs, special characters
- Error scenarios: Test with broken APIs, network issues, invalid responses
â
Check
- Test all functionality one more time
- Test with different inputs and edge cases
- Test error handling
- Make sure everything is working perfectly
- Fix any issues you find
Level 32: Final Commit
What Youâll Do
Commit all your final changes and push to GitHub.
Instructions
- Add all your changes to git
- Create a final commit with a meaningful message
- Push to GitHub
đĄ Code Hints
Need help with git? Check out these resources:
- Git commands: Use
git add ., git commit -m "message", and git push
- Commit message: Use a descriptive message like
feat: final capstone project completion
â
Check
- Run
git status to see what files have changed
- Add all changes with
git add .
- Create a commit with a meaningful message
- Push to GitHub with
git push
- Verify your changes are on GitHub
Level 33: Project Submission
What Youâll Do
Submit your project for evaluation.
Instructions
- Submit your project according to your instructorâs guidelines
- Make sure all requirements are met
- Prepare for evaluation
đĄ Code Hints
Need help with submission? Check out these resources:
- Submission guidelines: Follow your instructorâs specific requirements
- Requirements checklist: Make sure all requirements are met
- Evaluation prep: Be ready to explain your project
â
Check
- Submit your project according to your instructorâs guidelines
- Make sure all requirements are met
- Prepare for evaluation
- Be ready to explain your project
Level 34: Project Complete
What Youâll Do
Celebrate your completed capstone project!
Instructions
- Take a moment to appreciate what youâve accomplished
- Reflect on what youâve learned
- Be proud of your work
đ Congratulations!
Youâve successfully completed your capstone project! Youâve built a full-stack web application that integrates:
- Event-driven user interface with Bootstrap styling
- API integration with proper error handling
- AI model integration with response processing
- Professional documentation and version control
- Comprehensive testing and quality assurance
What Youâve Learned
Through this project, youâve gained experience with:
- HTML, CSS, and JavaScript fundamentals
- Bootstrap framework for responsive design
- API integration and data handling
- AI model integration and prompt engineering
- Error handling and user experience
- Version control with Git and GitHub
- Project planning and documentation
- Testing and quality assurance
Next Steps
- Continue building projects to reinforce your skills
- Explore more advanced topics in web development
- Consider contributing to open source projects
- Keep learning and growing as a developer
đ Well Done!
Youâve completed a significant milestone in your coding journey. Your capstone project demonstrates your ability to build real-world applications and solve complex problems with code.
Project Complete! đ