Professional Resume Builder
Run ID: 69bca8f277c0421c0bf4a1f22026-03-29Career
PantheraHive BOS
BOS Dashboard

Create a tailored resume for your target job

Professional Resume Builder Workflow: Generate Resume

Here is a tailored, ATS-optimized resume draft for an Entry Level position in the Test Industry, targeting a "Test Target Job Title." This draft includes specific recommendations and placeholders to guide you in filling out your personal details.


ATS-Optimized Resume Draft

[Your Name]

[Your Phone Number] | [Your Email Address] | [Your LinkedIn Profile URL (if applicable)] | [Your Portfolio/Website URL (if applicable)]

[Your City, State]


Summary/Objective

Highly motivated and results-oriented individual seeking an Entry Level Test Target Job Title within the Test Industry. Possessing a strong foundation in [mention 2-3 key skills relevant to industry/job, e.g., data analysis, project coordination, software development] and a proven ability to [mention a key soft skill, e.g., learn quickly, problem-solve, collaborate effectively]. Eager to apply academic knowledge and transferable skills to contribute to [Name of Company/Type of Organization]'s success and grow professionally in a dynamic environment.

  • ATS Optimization Tip: Customize this summary/objective for each application. Use keywords directly from the job description. If you have a specific career goal, an "Objective" is suitable for entry-level. If you have relevant projects or internships, a "Summary" highlighting those achievements is better.

Education

[Your University Name], [Your City, State]

  • Bachelor of [Your Degree, e.g., Science in Computer Science, Arts in Business Administration]
  • Expected Graduation: [Month, Year] (or Graduated: [Month, Year])
  • GPA: [Your GPA]/4.0 (Only include if 3.5 or higher)
  • Relevant Coursework: [List 3-5 courses relevant to "Test Target Job Title" or "Test Industry", e.g., Data Structures, Marketing Analytics, Financial Modeling, Introduction to Project Management, Industry-Specific Regulations]
  • Honors/Awards (Optional): Dean's List, [Scholarship Name], [Academic Award]

Skills

  • ATS Optimization Tip: This section is critical for ATS. Group skills logically and use exact keywords from job descriptions.
  • Technical Skills: [List specific software, programming languages, tools, e.g., Python, SQL, Microsoft Excel (Advanced), Salesforce, Tableau, Adobe Creative Suite, Industry-Specific Software like CAD/CAM, ERP systems]
  • Industry-Specific Skills: [List skills directly related to the "Test Industry", e.g., Market Research, Quality Assurance, Regulatory Compliance, Supply Chain Management, Customer Relationship Management, Data Analysis, Test Automation]
  • Soft Skills: Communication, Problem-Solving, Teamwork, Adaptability, Critical Thinking, Time Management, Project Coordination, Attention to Detail
  • Languages (Optional): [Language], [Proficiency Level]

Experience

  • ATS Optimization Tip: Even for entry-level, you can include internships, volunteer work, significant academic projects, part-time jobs, or leadership roles. Focus on transferable skills and quantifiable achievements.

[Your Most Recent Relevant Experience/Internship/Significant Project Role] | [Organization Name], [City, State]

[Month, Year] – [Month, Year]

  • [Action Verb] [quantifiable achievement/result] by [method used], demonstrating [skill].

Example:* Analyzed market trends for new product launch, contributing to a 15% increase in lead generation for the Q3 campaign.

  • [Action Verb] [responsibility/task] utilizing [tool/skill], resulting in [positive outcome].

Example:* Managed social media content calendar across three platforms, growing audience engagement by 20% over six months.

  • [Action Verb] [responsibility/task], collaborating with [stakeholders], to [achieve objective].

Example:* Collaborated with a cross-functional team of 5 to develop a new client onboarding process, reducing setup time by 10%.

  • [Action Verb] [responsibility/task] and [another responsibility], gaining experience in [relevant area].

Example:* Conducted data entry and maintained accurate records for over 200 client accounts, ensuring data integrity and compliance.

[Previous Relevant Experience/Volunteer Work/Part-time Job] | [Organization Name], [City, State]

[Month, Year] – [Month, Year]

  • [Action Verb] [quantifiable achievement/result] by [method used], demonstrating [skill].
  • [Action Verb] [responsibility/task] utilizing [tool/skill], resulting in [positive outcome].

Projects (Optional but Recommended for Entry Level)

  • ATS Optimization Tip: Highlight projects that showcase skills relevant to the "Test Target Job Title" and "Test Industry."

[Project Title] | [Month, Year] – [Month, Year]

  • Developed/Designed/Implemented [project outcome] using [technologies/tools, e.g., Python, SQL, Figma].
  • Applied [specific skill, e.g., statistical analysis, UI/UX principles, research methodology] to [solve a problem/achieve an objective], resulting in [quantifiable outcome or learning].
  • Collaborated with [number] team members to [achieve project goal], managing [specific aspect, e.g., documentation, testing].

[Another Project Title] | [Month, Year] – [Month, Year]

  • [Action Verb] [project outcome] using [technologies/tools].
  • [Action Verb] [specific skill] to [solve a problem/achieve an objective], resulting in [outcome].

Certifications / Awards (Optional)

  • [Certification Name] | [Issuing Body], [Year Issued]
  • [Award Name] | [Issuing Body/Organization], [Year Awarded]

Actionable Recommendations for Resume Refinement:

  1. Tailor Every Application: This is a template. For each job application, read the job description carefully and customize your summary/objective, skills, and bullet points under experience/projects to match the keywords and requirements.
  2. Quantify Achievements: Whenever possible, use numbers, percentages, and metrics to demonstrate impact (e.g., "increased efficiency by 15%", "managed a budget of $5,000", "served over 100 customers").
  3. Use Strong Action Verbs: Start each bullet point with a powerful action verb (e.g., Developed, Managed, Analyzed, Implemented, Coordinated, Researched, Led, Created).
  4. Proofread Meticulously: Typos and grammatical errors can be immediate disqualifiers. Use grammar checkers and ask a trusted friend or mentor to review your resume.
  5. Choose a Clean, Professional Format: Use a standard, easy-to-read font (e.g., Calibri, Arial, Lato, Georgia) in a size between 10-12pt for body text and 14-18pt for your name and section headers. Maintain consistent formatting.
  6. Keep it Concise: For an entry-level position, aim for a one-page resume. Recruiters spend only a few seconds scanning each resume.
  7. Save as PDF: Always submit your resume as a PDF unless explicitly asked for a different format. This preserves your formatting across different systems.
  8. Leverage LinkedIn: Ensure your LinkedIn profile is up-to-date and consistent with your resume. Many recruiters will check it.
  9. Network: While not directly resume-related, networking can significantly increase your chances of landing an interview, even with an entry-level resume.

This resume draft provides a strong foundation. By meticulously filling in your specific details and applying the recommendations, you will create a compelling document for your job search.

Step 2: resume

Professional Resume Builder: Cover Letter Generation

Tailored Cover Letter

Here is a professionally crafted cover letter, optimized for an "Entry Level Test Target Job Title" within the "Test Industry." This letter emphasizes relevant skills, enthusiasm, and potential, while incorporating keywords for ATS compatibility.


[Your Name]

[Your Address] | [Your Phone Number] | [Your Email Address] | [Your LinkedIn Profile URL (Optional)]

[Date]

[Hiring Manager Name (If known), or "Hiring Team"]

[Hiring Manager Title (If known)]

[Company Name]

[Company Address]

Dear [Mr./Ms./Mx. Last Name, or "Hiring Team"],

I am writing to express my enthusiastic interest in the Entry Level Test Target Job Title, as advertised on [Platform where you saw the advertisement, e.g., LinkedIn, company website]. Having closely followed developments in the Test Industry, I am highly motivated to launch my career with a forward-thinking organization like [Company Name] and believe my foundational skills and strong eagerness to learn make me an ideal candidate for this position.

During my academic career and through [mention relevant projects, internships, or volunteer work], I have developed a robust understanding of core principles essential to the Test Industry. My experience includes [mention a specific skill, e.g., data analysis, project coordination, client communication, technical support, research methodologies] and a proven ability to [mention an achievement, e.g., efficiently manage tasks, collaborate effectively in team environments, quickly adapt to new software]. I am proficient in [list 2-3 relevant software/tools or methodologies, e.g., Microsoft Office Suite, basic programming languages, industry-specific tools], and I am confident in my capacity to quickly master new technologies and processes critical to the Test Target Job Title.

I am particularly drawn to [Company Name]'s commitment to [mention a specific company value or project, if known, e.g., innovation, sustainability, client success]. The opportunity to contribute my dedication and problem-solving abilities to an Entry Level role within your dynamic team is incredibly appealing. I am eager to apply my analytical mindset, strong communication skills, and proactive approach to support your objectives and grow professionally within the Test Industry.

Thank you for considering my application. I am confident that my drive, adaptability, and foundational skillset would enable me to become a valuable contributor to your team. I have attached my resume for your review and welcome the opportunity to discuss how my qualifications align with the requirements of this Entry Level Test Target Job Title.

Sincerely,

[Your Name]


Key Takeaways for ATS Optimization & Impact

  • Keyword Integration: The cover letter strategically incorporates "Entry Level," "Test Target Job Title," and "Test Industry" multiple times to ensure high relevance for Applicant Tracking Systems (ATS).
  • Enthusiasm & Potential: For an entry-level role, highlighting eagerness to learn, adaptability, and future potential is crucial.
  • Transferable Skills: Focuses on transferable skills (e.g., communication, problem-solving, teamwork, analytical mindset) that are valuable across various roles and industries.
  • Specific Examples (Placeholder): Encourages the user to insert specific examples from their academic background, projects, or internships to demonstrate their foundational knowledge and abilities.
  • Call to Action: Clearly states the next step (attached resume, desire to discuss further) to guide the reader.
  • Professional Tone: Maintains a formal and respectful tone suitable for professional correspondence.

Next Steps & Recommendations

  1. Personalize Placeholders: Replace [Your Name], [Your Address], [Your Phone Number], [Your Email Address], [Date], and [Platform where you saw the advertisement] with your actual details.
  2. Research the Company: If you know the specific company, replace [Company Name] and [Hiring Manager Name/Team] with accurate information. Research the company's values, recent projects, or mission to personalize the paragraph starting with "I am particularly drawn to [Company Name]'s commitment to..." This shows genuine interest and helps you stand out.
  3. Tailor Specific Examples: In the second paragraph, replace [mention a specific skill, e.g., data analysis...] and [mention an achievement, e.g., efficiently manage tasks...] with concrete examples from your coursework, projects, internships, or volunteer experiences that directly relate to the "Test Target Job Title."
  4. Proofread Thoroughly: Before sending, carefully proofread for any typos, grammatical errors, or formatting inconsistencies. Consider reading it aloud or having someone else review it.
  5. Save as PDF: Always save your cover letter as a PDF to preserve formatting when submitting online.
professional_resume_builder.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);}});}