AI Study Plan Generator
Run ID: 69cb54ab61b1021a29a87fb92026-03-31Education
PantheraHive BOS
BOS Dashboard

Create a personalized study plan with flashcards and quizzes

Personalized Study Plan: Mastering "Test Input for Subject"

This comprehensive study plan is designed to provide a structured approach to learning and mastering the core concepts of your chosen subject. Given the generic input "test input for subject," this plan serves as a robust template. You are encouraged to customize each section with specific details relevant to your actual subject, course materials, and personal learning style.


Study Plan Overview

  • Project Name: AI Study Plan Generator
  • Subject: Your Chosen Subject (e.g., "Introduction to Machine Learning," "Organic Chemistry I," "History of Ancient Civilizations")
  • Duration: 4 Weeks (Adjustable based on subject complexity and your learning pace)
  • Overarching Goal: To develop a strong foundational understanding of [Your Chosen Subject], be able to apply its core principles, and confidently prepare for relevant assessments or practical applications.

1. Learning Objectives

By the end of this study plan, you will be able to:

  • Define and Explain: Accurately define key terms, concepts, and theories within [Your Chosen Subject].
  • Understand Core Principles: Grasp the fundamental principles and underlying mechanisms governing the subject matter.
  • Apply Knowledge: Successfully apply learned concepts to solve problems, analyze scenarios, or complete practical exercises.
  • Analyze and Evaluate: Critically analyze different approaches, theories, or solutions within the subject and evaluate their strengths and weaknesses.
  • Synthesize Information: Integrate various concepts to form a holistic understanding and explain complex relationships.
  • Identify Gaps: Recognize areas where further study or clarification is needed and actively seek resources to address them.

2. Weekly Study Schedule (Template)

This flexible 4-week schedule provides a framework. Adjust study blocks, breaks, and activities to fit your personal routine and energy levels.

General Daily Structure:

  • Morning (e.g., 9:00 AM - 12:00 PM): Focused Learning & New Concepts

* Review previous day's material (15-20 min).

* Engage with new content (readings, lectures, tutorials).

* Take detailed notes and highlight key information.

  • Lunch/Break (e.g., 12:00 PM - 1:00 PM): Recharge
  • Afternoon (e.g., 1:00 PM - 4:00 PM): Application & Practice

* Work through practice problems, case studies, or coding exercises.

* Summarize new concepts in your own words.

* Start creating flashcards for new terms.

  • Break (e.g., 4:00 PM - 4:30 PM): Short Rest
  • Evening (e.g., 4:30 PM - 6:00 PM): Review & Consolidation

* Review notes from the day.

* Use flashcards for active recall.

* Attempt short quizzes or self-assessment questions.

* Plan for the next day's study.

Weekly Breakdown:

  • Monday - Friday: Follow the general daily structure, focusing on specific topics for the week.
  • Saturday:

* Morning: Comprehensive review of the entire week's material.

* Afternoon: Tackle challenging problems, explore supplementary resources, or engage in group study.

* Evening: Light review, prepare for Sunday's rest.

  • Sunday:

* Rest & Reflection: Take a complete break from active studying. Engage in hobbies, spend time with family/friends.

* Brief Planning (Optional): Lightly plan out the topics for the upcoming week.


3. Recommended Resources

Tailor this section with specific textbooks, online courses, and tools relevant to your subject.

  • Primary Textbooks/Course Materials:

* [List required textbooks, lecture notes, syllabus, online course modules]

Example:* "Introduction to Algorithms" by Cormen et al., Lecture Slides for [Course Name]

  • Supplementary Readings/Journals:

* [List additional books, academic papers, or reputable articles for deeper understanding]

Example:* Relevant articles from ACM Transactions, IEEE Spectrum, Nature, etc.

  • Online Learning Platforms:

* MOOCs: Coursera, edX, Udacity, Khan Academy (for foundational concepts).

* Tutorials: YouTube channels (e.g., 3Blue1Brown, CrashCourse), freeCodeCamp, W3Schools.

* Documentation: Official project documentation, API references (for technical subjects).

  • Practice & Problem Solving:

* Workbooks/Problem Sets: End-of-chapter questions, dedicated problem books.

* Online Platforms: LeetCode, HackerRank (for coding), Chegg Study, Quizlet.

  • Flashcard & Quiz Tools (for Step 2):

* Anki (spaced repetition system)

* Quizlet (flashcards, various study modes)

* Flippity (create flashcards from Google Sheets)

  • Community & Collaboration:

* Study Groups: Form a small group with peers.

* Online Forums: Reddit (e.g., r/learnprogramming, r/chemistry), Stack Exchange, subject-specific Discord servers.


4. Milestones

These milestones break down your 4-week plan into manageable, achievable goals.

  • End of Week 1: Foundational Concepts & Terminology

* Master the core definitions, terminology, and historical context of [Your Chosen Subject].

* Understand the basic principles and initial theories.

* Complete initial readings for chapters 1-3 (or equivalent).

Self-Assessment:* Achieve 80% accuracy on basic definition quizzes and flashcard recall.

  • End of Week 2: Intermediate Concepts & Basic Application

* Grasp intermediate theories and mechanisms.

* Successfully apply concepts to solve introductory problems or analyze simple scenarios.

* Complete readings for chapters 4-6 (or equivalent).

Self-Assessment:* Successfully complete 70% of assigned practice problems; explain key concepts to a peer without notes.

  • End of Week 3: Advanced Concepts & Complex Application

* Understand more complex topics and their interconnections.

* Begin to critically evaluate different approaches or solutions.

* Complete readings for chapters 7-9 (or equivalent).

Self-Assessment:* Tackle 60% of challenging problems; identify and articulate strengths/weaknesses of different theories.

  • End of Week 4: Comprehensive Review & Integration

* Integrate all learned concepts into a holistic understanding.

* Identify and reinforce weak areas.

* Complete a full mock assessment.

Self-Assessment:* Achieve 75% or higher on a comprehensive practice exam; confidently answer questions covering all major topics.


5. Assessment Strategies

Regular assessment is crucial for tracking progress and identifying areas for improvement.

  • Self-Quizzing & Active Recall:

* Utilize flashcards (digital or physical) daily for active recall of terms, definitions, and formulas.

* After reading a section, close your book/notes and try to summarize what you've learned.

* Use the "Feynman Technique": Try to explain a concept to someone else (or even an imaginary audience) as if they know nothing about it.

  • Practice Problems & Exercises:

* Work through all end-of-chapter problems, textbook exercises, and supplementary problem sets.

Focus on understanding the process* of solving, not just getting the right answer.

* Review solutions carefully, even for problems you got correct, to find alternative approaches.

  • Mock Exams & Past Papers:

* If available, take timed mock exams or practice with past exam papers under realistic conditions.

Analyze mistakes thoroughly to understand why* you got them wrong and what knowledge gaps exist.

  • Concept Mapping & Summarization:

* Create visual concept maps to illustrate relationships between different topics.

* Write concise summaries of major chapters or sections in your own words.

  • Peer Review & Discussion:

* Discuss challenging concepts with a study group or tutor. Explaining ideas to others solidifies your understanding, and listening to their perspectives can reveal new insights.

  • Feedback Integration:

* Pay close attention to feedback on assignments or quizzes. Use it to adjust your study approach and focus on areas needing improvement.


Next Steps: Flashcards & Quizzes Integration

In the next step of the "AI Study Plan Generator" workflow, we will generate specific flashcards and quizzes tailored to the content you are studying. These tools will be dynamically created based on the learning objectives and resources identified in this plan, providing an interactive and effective way to reinforce your learning through active recall and spaced repetition.

aistudygenius Output

Personalized Flashcards for Enhanced Learning

This section presents a set of comprehensive flashcards designed to enhance your understanding of effective study techniques, the benefits of flashcards, and how AI can revolutionize your learning process. These flashcards are a core component of your AI-generated study plan, providing a powerful tool for active recall and spaced repetition.


Flashcard Set: Effective Study Strategies & AI Integration

Here are 18 detailed flashcards to aid your learning:

1. Question: What is Active Recall and why is it crucial for effective studying?

Answer: Active Recall is a powerful study technique where you actively retrieve information from memory rather than passively re-reading or reviewing it. Instead of just looking at the answer, you force your brain to remember it. It's crucial because it strengthens memory traces, identifies knowledge gaps more effectively than passive methods, and improves long-term retention by simulating the actual test environment.

2. Question: Explain the concept of Spaced Repetition and its benefits.

Answer: Spaced Repetition is an evidence-based learning technique that involves reviewing previously learned material at increasing intervals over time. Instead of cramming, items are revisited just as they are about to be forgotten, optimizing memory retention. Benefits include significantly improved long-term memory, reduced study time for better retention, and more efficient learning by focusing on challenging material.

3. Question: How do flashcards facilitate Active Recall and Spaced Repetition?

Answer: Flashcards are ideal for Active Recall because they present a prompt (question, term) on one side and require you to actively retrieve the answer from memory before flipping to the other side. They facilitate Spaced Repetition by allowing learners to easily categorize cards based on their mastery level (e.g., "easy," "medium," "hard") and review them at varying intervals, often managed by digital flashcard apps or AI systems.

4. Question: What is the Forgetting Curve, and how can flashcards help to combat it?

Answer: The Forgetting Curve, described by Hermann Ebbinghaus, illustrates the rate at which memories are lost over time if there is no attempt to retain them. Initially, forgetting is rapid, then it slows down. Flashcards, especially when combined with Spaced Repetition, directly combat the Forgetting Curve by prompting timely reviews of information just before it's likely to be forgotten, reinforcing memory and flattening the curve.

5. Question: List three key characteristics of an effective flashcard.

Answer:

  1. Concise & Specific: Each flashcard should focus on a single piece of information, concept, or question, avoiding clutter.
  2. Clear Question/Prompt: The question side should be unambiguous, prompting a specific answer rather than a vague essay.
  3. Comprehensive Answer: The answer side should provide a complete, yet succinct, explanation or definition, including relevant details or examples.

6. Question: How can Artificial Intelligence (AI) enhance the creation and utilization of flashcards?

Answer: AI can significantly enhance flashcards by:

  1. Automated Generation: Generating flashcards directly from study materials (notes, textbooks, articles).
  2. Personalized Spaced Repetition: Dynamically adjusting review schedules based on individual performance and learning patterns.
  3. Content Summarization: Identifying key concepts and extracting essential information for flashcard content.
  4. Adaptive Quizzing: Creating quizzes from flashcards, focusing on areas of weakness.

7. Question: What is the Pomodoro Technique, and how can it be integrated into a study plan?

Answer: The Pomodoro Technique is a time management method that uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. Each interval is known as a "pomodoro." It can be integrated into a study plan to improve focus, reduce mental fatigue, and enhance productivity by ensuring regular breaks and structured study sessions.

8. Question: Why is sleep considered vital for memory consolidation and learning?

Answer: Sleep is vital for memory consolidation because during deep sleep (NREM and REM stages), the brain actively processes and strengthens memories acquired during the day. It transfers memories from temporary storage (hippocampus) to long-term storage (cortex), prunes unnecessary connections, and reinforces important ones. Lack of sleep impairs attention, concentration, problem-solving, and the ability to form new memories.

9. Question: Define Metacognition in the context of studying and learning.

Answer: Metacognition refers to "thinking about one's thinking" or the awareness and understanding of one's own thought processes. In studying, it involves actively monitoring one's comprehension, evaluating one's learning strategies, identifying knowledge gaps, and planning how to address them. It's about being a strategic learner rather than just passively absorbing information.

10. Question: What is Retrieval Practice and how does it differ from re-reading?

Answer: Retrieval Practice is the act of recalling information from memory, such as through self-quizzing, testing, or flashcards. It strengthens memory traces and makes information easier to retrieve in the future. It differs fundamentally from re-reading, which is a passive process that often creates an illusion of knowing without actually testing recall. Retrieval practice actively engages the memory system.

11. Question: Explain the Elaborative Interrogation study technique.

Answer: Elaborative Interrogation involves asking "why" questions about the material being studied, particularly about facts and concepts. For example, "Why is this true?" or "Why does this concept work this way?" This technique encourages deeper processing by prompting learners to connect new information with existing knowledge, form mental models, and understand underlying causes, leading to better retention.

12. Question: What are the key benefits of Self-Explanation as a learning strategy?

Answer: Self-explanation involves articulating one's understanding of a concept or problem in one's own words, either verbally or in writing. Key benefits include:

  • Deepening understanding by forcing learners to clarify their thoughts.
  • Identifying gaps in knowledge or misunderstandings.
  • Improving problem-solving skills.
  • Enhancing the ability to apply learned concepts to new situations.

13. Question: Describe Interleaving and why it's more effective than "blocking" study.

Answer: Interleaving is a study technique where you mix different types of problems or topics within a single study session, rather than studying one topic exhaustively before moving to the next (blocking). It's more effective because it helps learners differentiate between concepts, improves problem-solving flexibility, and makes retrieval practice more challenging and beneficial by forcing the brain to select the correct strategy for each problem.

14. Question: What are two common mistakes to avoid when creating or using flashcards?

Answer:

  1. Overly Complex Cards: Putting too much information on one card or having a question that requires a lengthy, multi-part answer. Each card should ideally focus on one specific concept.
  2. Passive Review: Simply flipping through cards and recognizing answers without actively trying to recall them first. This negates the benefits of active recall.

15. Question: Differentiate between recognition and recall in memory.

Answer:

  • Recognition: The ability to identify previously encountered information when presented with it (e.g., multiple-choice questions, seeing a familiar face). It's a shallower form of memory retrieval.
  • Recall: The ability to retrieve information directly from memory without any prompts or cues (e.g., essay questions, remembering a name). It's a deeper and more robust form of memory retrieval, which flashcards are designed to build.

16. Question: How can AI personalize a study plan beyond just generating flashcards?

Answer: AI can personalize a study plan by:

  • Adaptive Learning Paths: Adjusting the sequence and difficulty of material based on individual performance and learning style.
  • Content Recommendations: Suggesting additional resources (videos, articles) tailored to specific learning needs or areas of struggle.
  • Progress Tracking & Analytics: Providing detailed insights into performance, identifying strengths and weaknesses.
  • Goal Setting & Motivation: Helping set realistic goals and offering nudges or encouragement.

17. Question: What is the role of feedback in the learning process, especially with AI-generated quizzes?

Answer: Feedback is crucial in learning as it provides information about the accuracy and quality of one's performance. With AI-generated quizzes, immediate and constructive feedback allows learners to:

  • Correct misunderstandings promptly.
  • Understand why an answer was wrong.
  • Reinforce correct answers.
  • Adjust their study strategies for future learning.

AI can offer personalized feedback that a human tutor might not be able to provide at scale.

18. Question: Briefly explain Bloom's Taxonomy and its relevance to study plan design.

Answer: Bloom's Taxonomy is a classification system used to define and differentiate levels of human cognition, from lower-order thinking skills (e.g., remembering, understanding) to higher-order thinking skills (e.g., applying, analyzing, evaluating, creating). In study plan design, it helps ensure that learning objectives and assessment methods progress through different cognitive levels, encouraging deeper understanding and critical thinking rather than just rote memorization. An effective study plan should incorporate activities that target various levels of the taxonomy.

ai_study_plan_generator.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}