Programming Merit Badge
How This Project Helps You Earn This Badge
Real Code, Real Learning
This Apollo 13 project is built with HTML, CSS, and JavaScript - the same technologies used by professional web developers at NASA, Google, and millions of websites worldwide.
📋 Requirement 4c: Intellectual Property
Official Requirement:
"Describe the differences between freeware, open source, and commercial software, and why it is important to respect the terms of use of each."
✅ How This Project Helps:
🔓 This Project is Open Source (MIT License)
The entire Apollo 13 Interactive Experience uses the MIT License, one of the most permissive open source licenses. This means:
- ✅ You can view all the source code
- ✅ You can copy and modify the code
- ✅ You can use it for personal or commercial projects
- ✅ You can share your modified versions
- ⚠️ You must include the original copyright notice
📚 Learning Resource: Compare Three Types
| Type | Example | Key Difference |
|---|---|---|
| Open Source | This Project (MIT) | Source code available, can modify and redistribute |
| Freeware | Adobe Reader | Free to use, but source code hidden, cannot modify |
| Commercial | Microsoft Office | Must pay to use, source code hidden, strict license |
Discussion Point: Why is it important to respect each type's terms? What happens if you violate a commercial software license?
💻 Requirement 5: Programming Projects
Official Requirement (Simplified):
"With your counselor's guidance, select three different programming languages and development environments. For each, write or modify a program, debug and demonstrate it, and explain how it processes inputs, makes decisions, and provides outputs."
✅ How This Project Helps:
Use This as ONE of Your Three Projects!
This project uses JavaScript as its programming language. You can use it for Requirement 5 by:
- Download the code from GitHub
- Modify a feature (see ideas below)
- Debug any issues using browser DevTools (F12)
- Demonstrate to your counselor how your changes work
- Explain how the code processes inputs, makes decisions, and provides outputs
🔧 Project Modification Ideas:
📂 Edit:
assets/js/app.js line 250-278
📂 Edit:
assets/js/app.js - add timer to decision slides
📂 Create: New HTML file + update
app.js scoring
📂 Add: HTML5 Audio API in
app.js
📚 Learning Resource: How This Code Works
Study these key functions to understand inputs, decisions, and outputs:
function initDecisions() { ... }📂 File: assets/js/app.js:36-73
function showAlignmentFeedback(slideId, userChoice) { ... }📂 File: assets/js/app.js:362-390
function calculateScore() { ... }📂 File: assets/js/app.js:230-242
How to explore: Open assets/js/app.js in any text editor and find these functions. Read the comments to understand what each part does!
🌟 Other Requirements This Project Supports
📖 Requirement 3: General Knowledge
"Create a list of 5 popular programming languages in use today and describe which industry or industries they are primarily used in and why."
This project uses JavaScript, one of the top 5 most popular languages!
- JavaScript - Web development (used in 98% of websites)
- Python - Data science, AI, automation (NASA uses it!)
- Java - Enterprise applications, Android apps
- C++ - Game development, systems programming
- SQL - Database management, data analysis
💼 Requirement 6: Careers
"Find out about three career opportunities that require knowledge in programming."
Web Developer (like the creator of this project):
- Education: Computer Science degree or coding bootcamp
- Skills: HTML, CSS, JavaScript, version control (Git)
- Experience: Build portfolio projects (like this one!)
- Salary: $60,000-$120,000+/year
Also explore: Software Engineer, Data Scientist, Game Developer
🚀 Ready to Get Started?
Download the code, try the Apollo 13 experience, and start modifying it to make it your own!
💬 Discussion Points for Your Counselor
- What's the difference between the MIT License (open source) and commercial software licenses?
- How does the
calculateScore()function process user inputs and make decisions? - What modifications did you make to the code, and how did you debug them?
- Why is JavaScript the right language for this web-based project?
- What career path interests you in programming, and why?