diff --git a/app/mentorship/page.tsx b/app/mentorship/page.tsx index 64c4f16..c74638f 100644 --- a/app/mentorship/page.tsx +++ b/app/mentorship/page.tsx @@ -457,6 +457,30 @@ export default function MentorshipPage() { Whether you're starting from scratch or already have experience and feel stuck, this mentorship is for you. Already building? Use our 1:1 guidance to level up and target better companies.

+ {/* Palestine Support Banner */} +
+
+ {/* Palestine Flag */} +
+ {/* Black stripe */} +
+ {/* White stripe */} +
+ {/* Green stripe */} +
+ {/* Red triangle */} +
+
+
+ + šŸ‡µšŸ‡ø We Stand With Palestine + + + Exclusive Access for Palestinians + +
+
+
diff --git a/images/templates/achievements/01-2000-discord-members.svg b/images/templates/achievements/01-2000-discord-members.svg new file mode 100644 index 0000000..62f93b0 --- /dev/null +++ b/images/templates/achievements/01-2000-discord-members.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ‰ MILESTONE UNLOCKED + + + 2,000 + + + + + + Discord Members + + + + šŸ’¬ + + + Thank you for being part of our journey! + Together, we're building the future of tech in Pakistan šŸ‡µšŸ‡° + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/02-30000-community-members.svg b/images/templates/achievements/02-30000-community-members.svg new file mode 100644 index 0000000..e64d032 --- /dev/null +++ b/images/templates/achievements/02-30000-community-members.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸš€ COMMUNITY MILESTONE + + + 30,000 + + + + + + Community Members + + + + + 500+ + SESSIONS + + + 50+ + MENTORS + + + 100% + FREE + + + + Pakistan's largest developer community keeps growing! + Thank you for believing in our mission šŸ™Œ + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/03-20000-youtube-subscribers.svg b/images/templates/achievements/03-20000-youtube-subscribers.svg new file mode 100644 index 0000000..1387e45 --- /dev/null +++ b/images/templates/achievements/03-20000-youtube-subscribers.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + ā–¶ YOUTUBE MILESTONE + + + 20,000+ + + + + + + YouTube Subscribers + + + + + + + 20K engineers learning together! + Free tutorials on DSA, System Design, DevOps & more + + + + SUBSCRIBE FOR FREE → + + + + + + + YOUTUBE.COM/@DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/04-5000-discord-members.svg b/images/templates/achievements/04-5000-discord-members.svg new file mode 100644 index 0000000..f04995e --- /dev/null +++ b/images/templates/achievements/04-5000-discord-members.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽŠ DISCORD MILESTONE + + + 5,000 + + + + + + Discord Members + + + + šŸ’¬ + + + 5K developers learning, growing, winning together! + Join our daily discussions, code reviews & live sessions + + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/05-10000-linkedin-followers.svg b/images/templates/achievements/05-10000-linkedin-followers.svg new file mode 100644 index 0000000..8e9cbab --- /dev/null +++ b/images/templates/achievements/05-10000-linkedin-followers.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + in LINKEDIN MILESTONE + + + 10,000 + + + + + + LinkedIn Followers + + + + in + + + 10K professionals following our journey! + Daily insights on tech careers, tips & opportunities + + + + FOLLOW US → + + + + + + + LINKEDIN.COM/COMPANY/DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/06-500-sessions-completed.svg b/images/templates/achievements/06-500-sessions-completed.svg new file mode 100644 index 0000000..2bacaab --- /dev/null +++ b/images/templates/achievements/06-500-sessions-completed.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ“ EDUCATION MILESTONE + + + 500+ + + + + + + Free Sessions Delivered + + + + + System Design + + + DSA + + + DevOps + + + AWS + + + & More + + + + 500+ hours of free tech education! + By industry experts from Microsoft, Google, Meta & more + + + + + 50+ + MENTORS + + + 20K+ + LEARNERS + + + 100% + FREE + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/07-50-mentors.svg b/images/templates/achievements/07-50-mentors.svg new file mode 100644 index 0000000..9a78554 --- /dev/null +++ b/images/templates/achievements/07-50-mentors.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸ‘Øā€šŸ« MENTORSHIP MILESTONE + + + 50+ + + + + + + Industry Mentors + + + From top companies around the world + + + + Microsoft + + + Google + + + Meta + + + Upwork + + + & More + + + + Free 1:1 mentorship for all members! + Career guidance • Code reviews • Interview prep • Project help + + + + GET A MENTOR → + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/08-15-gsoc-selections.svg b/images/templates/achievements/08-15-gsoc-selections.svg new file mode 100644 index 0000000..c201483 --- /dev/null +++ b/images/templates/achievements/08-15-gsoc-selections.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸ† GOOGLE SUMMER OF CODE + + + 15+ + + + + + + GSoC Selections + + + Selected in top open source organizations + + + + Chromium + + + FOSSology + + + Python + + + & More + + + + We help you crack Google Summer of Code! + Free proposal reviews • Mentorship • Mock interviews + + + + + + + + + + JOIN FREE → + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/09-100-remote-placements.svg b/images/templates/achievements/09-100-remote-placements.svg new file mode 100644 index 0000000..53ce53a --- /dev/null +++ b/images/templates/achievements/09-100-remote-placements.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸ’¼ CAREER MILESTONE + + + 100+ + + + + + + Remote Job Placements + + + Placed in top remote platforms worldwide + + + + Upwork + + + Toptal + + + Turing + + + Arc + + + & Direct + + + + + + $50K+ + AVG SALARY + + + 100% + FREE SUPPORT + + + + + START YOUR JOURNEY → + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/10-50000-youtube-views.svg b/images/templates/achievements/10-50000-youtube-views.svg new file mode 100644 index 0000000..2fd4185 --- /dev/null +++ b/images/templates/achievements/10-50000-youtube-views.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + ā–¶ YOUTUBE MILESTONE + + + 50,000+ + + + + + + Video Views + + + 50K developers learning from our free tutorials! + + + + + System Design + + + DSA + + + DevOps + + + AWS + + + Careers + + + + + + 100+ + VIDEOS + + + 20K+ + SUBSCRIBERS + + + FREE + FOREVER + + + + + SUBSCRIBE NOW → + + + YOUTUBE.COM/@DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/11-10000-discord-members.svg b/images/templates/achievements/11-10000-discord-members.svg new file mode 100644 index 0000000..3859f66 --- /dev/null +++ b/images/templates/achievements/11-10000-discord-members.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽŠ DISCORD MILESTONE + + + 10,000 + + + + + + Discord Members + + + + šŸ’¬ + + + 10K developers in one amazing community! + Daily discussions • Code reviews • Career guidance • Live sessions + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/12-25000-community-members.svg b/images/templates/achievements/12-25000-community-members.svg new file mode 100644 index 0000000..f671852 --- /dev/null +++ b/images/templates/achievements/12-25000-community-members.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ‰ COMMUNITY CELEBRATION + + + 25,000 + + + + + + Community Members + + + + + 2022 + + + 2023 + + + 2024 + + + 2025 + + + GOAL + + + + 25K strong and growing every day! + Thank you for being part of Pakistan's tech revolution šŸ‡µšŸ‡° + + + + JOIN THE FAMILY → + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/13-1000-engineers-trained.svg b/images/templates/achievements/13-1000-engineers-trained.svg new file mode 100644 index 0000000..7477f06 --- /dev/null +++ b/images/templates/achievements/13-1000-engineers-trained.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ“ TRAINING MILESTONE + + + 1,000 + + + + + + Engineers Trained + + + Skilled in modern technologies and best practices + + + + Full Stack + + + DevOps + + + Cloud + + + DSA + + + System Design + + + + + + 100+ + REMOTE JOBS + SECURED + + + 15+ + GSOC + SELECTIONS + + + $50K+ + AVG SALARY + ACHIEVED + + + + + BE NEXT → + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/14-5000-instagram-followers.svg b/images/templates/achievements/14-5000-instagram-followers.svg new file mode 100644 index 0000000..2591754 --- /dev/null +++ b/images/templates/achievements/14-5000-instagram-followers.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸ“ø INSTAGRAM MILESTONE + + + 5,000 + + + + + + Instagram Followers + + + + + + + + 5K following our visual journey! + Daily tech tips, career advice & community highlights + + + + FOLLOW US → + + + + + + + + + @DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/15-3-years-anniversary.svg b/images/templates/achievements/15-3-years-anniversary.svg new file mode 100644 index 0000000..ee6f18b --- /dev/null +++ b/images/templates/achievements/15-3-years-anniversary.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ‚ ANNIVERSARY MILESTONE + + + 3 + YEARS + + + + + + Building Engineers Since 2022 + + + + + 20K+ + MEMBERS + + + 500+ + SESSIONS + + + 100+ + LIVES CHANGED + + + + 3 years of free tech education! + Thank you for growing with us šŸ™ + + + + CELEBRATE WITH US → + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/16-10000-watch-hours.svg b/images/templates/achievements/16-10000-watch-hours.svg new file mode 100644 index 0000000..d9574e4 --- /dev/null +++ b/images/templates/achievements/16-10000-watch-hours.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + ā–¶ WATCH TIME MILESTONE + + + 10,000+ + + + + + + Watch Hours + + + 10,000 hours of free tech education consumed! + + + + + 100+ + VIDEOS + + + 50K+ + VIEWS + + + 20K+ + SUBSCRIBERS + + + + System Design • DSA • DevOps • AWS • Career Growth + + + + WATCH & LEARN → + + + YOUTUBE.COM/@DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/17-5000-twitter-followers.svg b/images/templates/achievements/17-5000-twitter-followers.svg new file mode 100644 index 0000000..c5d271c --- /dev/null +++ b/images/templates/achievements/17-5000-twitter-followers.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + DEV WEEKENDS + + + + š• TWITTER MILESTONE + + + 5,000 + + + + + + X / Twitter Followers + + + + š• + + + 5K engaging with our daily tech insights! + Tech tips • Industry trends • Career opportunities + + + + FOLLOW @DEVWEEKENDS → + + + + + + + + + X.COM/DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/achievements/18-25-ambassadors.svg b/images/templates/achievements/18-25-ambassadors.svg new file mode 100644 index 0000000..b1a6b8b --- /dev/null +++ b/images/templates/achievements/18-25-ambassadors.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + 🌟 AMBASSADOR MILESTONE + + + 25 + + + + + + Campus Ambassadors + + + Representing Dev Weekends across Pakistan + + + + + 20+ + UNIVERSITIES + + + 50+ + EVENTS + + + 5K+ + STUDENTS REACHED + + + + Spreading tech education across campuses! + Workshops • Bootcamps • Career sessions • Mentorship + + + + BECOME AN AMBASSADOR → + + + DEVWEEKENDS.COM/AMBASSADOR + \ No newline at end of file diff --git a/images/templates/achievements/19-50000-total-reach.svg b/images/templates/achievements/19-50000-total-reach.svg new file mode 100644 index 0000000..e787268 --- /dev/null +++ b/images/templates/achievements/19-50000-total-reach.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸ† MEGA MILESTONE + + + 50,000 + + + + + + Total Community Reach + + + Across all platforms combined! + + + + + 20K+ + COMMUNITY + + + 20K+ + YOUTUBE + + + 10K+ + LINKEDIN + + + 5K+ + DISCORD + + + More + PLATFORMS + + + + 50K developers in our network! + Pakistan's fastest-growing tech community šŸš€ + + + + JOIN THE MOVEMENT → + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/achievements/20-100000-goal.svg b/images/templates/achievements/20-100000-goal.svg new file mode 100644 index 0000000..1f32117 --- /dev/null +++ b/images/templates/achievements/20-100000-goal.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽŠ THE BIG ONE - DREAM GOAL + + + 100,000 + + + + + + + + Community Members + + + Our ultimate goal - 100K engineers! + + + + + 1000+ + TRAINED + + + 500+ + SESSIONS + + + 100+ + PLACED + + + āˆž + DREAMS + + + + Help us reach 100K engineers! + Together, we're building Pakistan's tech future šŸ‡µšŸ‡° + + + + BE PART OF HISTORY → + + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/certificates/01-ambassador-recognition.svg b/images/templates/certificates/01-ambassador-recognition.svg new file mode 100644 index 0000000..f2c72dd --- /dev/null +++ b/images/templates/certificates/01-ambassador-recognition.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + + + Certificate of Recognition + + + CAMPUS AMBASSADOR + + + This certificate is proudly presented to + + + [Ambassador Name] + + + + + + In recognition of outstanding dedication and contribution as a + Dev Weekends Campus Ambassador, inspiring fellow students and spreading + the mission of free tech education across Pakistan. + + + Representing + [University Name] + + + + + Date + + + + + Zeeshan Adil + Founder, Dev Weekends + + + + + Program Lead + Ambassador Program + + + + + + DW + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/templates/certificates/02-star-ambassador.svg b/images/templates/certificates/02-star-ambassador.svg new file mode 100644 index 0000000..8108078 --- /dev/null +++ b/images/templates/certificates/02-star-ambassador.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + ⭐ STAR AMBASSADOR ⭐ + + + Excellence Award + + + + + + Awarded to + + + [Ambassador Name] + + + + + + For exceptional performance and leadership as + Dev Weekends Campus Ambassador of the Quarter + + + + + [X]+ + EVENTS ORGANIZED + + + + + [X]+ + STUDENTS REACHED + + + + + [X] + MONTHS ACTIVE + + + + [University Name] + [Quarter/Year] + + + + + Zeeshan Adil, Founder + + + + + Date of Issue + + + + + DW + \ No newline at end of file diff --git a/images/templates/certificates/03-ambassador-graduation.svg b/images/templates/certificates/03-ambassador-graduation.svg new file mode 100644 index 0000000..43b57ef --- /dev/null +++ b/images/templates/certificates/03-ambassador-graduation.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + šŸŽ“ PROGRAM COMPLETION + + + Ambassador Graduation + Certificate + + + + + + This is to certify that + + + [Ambassador Name] + + + + + + has successfully completed the Dev Weekends Campus Ambassador Program + demonstrating exceptional leadership, community building, and dedication + to empowering fellow students in their tech journey. + + + + [Duration] • [University] + + + + + Event Management + + + + Community Building + + + + Public Speaking + + + + Tech Advocacy + + + + Leadership + + + + + + Zeeshan Adil, Founder + + + + + Graduation Date + + + + + + DW + \ No newline at end of file diff --git a/images/templates/certificates/04-impact-maker.svg b/images/templates/certificates/04-impact-maker.svg new file mode 100644 index 0000000..bda2814 --- /dev/null +++ b/images/templates/certificates/04-impact-maker.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + 🌟 IMPACT MAKER AWARD + + + Certificate of Impact + + + + + + Honoring the remarkable contributions of + + + [Ambassador Name] + + + [University Name] + + + + + + For making a significant impact on the tech community by + + + + + [X]+ + Students Mentored + + + + + [X]+ + Workshops Conducted + + + + + [X]+ + Hours Volunteered + + + + + [X]+ + Lives Impacted + + + + "The greatest impact comes from lifting others as we climb." + + + + + Zeeshan Adil, Founder + + + + + [Date] + + + + + DW + \ No newline at end of file diff --git a/images/templates/certificates/05-hall-of-fame.svg b/images/templates/certificates/05-hall-of-fame.svg new file mode 100644 index 0000000..44f0ce6 --- /dev/null +++ b/images/templates/certificates/05-hall-of-fame.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + šŸ‘‘ + + + Hall of Fame + AMBASSADOR EXCELLENCE + + + + + + Inducting into the Dev Weekends Hall of Fame + + + [Ambassador Name] + + + [University Name] • Class of [Year] + + + For exemplary service, outstanding leadership, and unwavering commitment + to Dev Weekends' mission of free tech education for all. + + + + + [Year] + AMBASSADOR SINCE + + + + + [X]+ + LIVES TRANSFORMED + + + + + LEGEND + STATUS + + + + "Legends are remembered not for what they received, but for what they gave." + + + + + Zeeshan Adil, Founder + + + + + Induction Date + + + + + DW + \ No newline at end of file diff --git a/images/templates/countdown/01-3-days-left.svg b/images/templates/countdown/01-3-days-left.svg new file mode 100644 index 0000000..0d8a30c --- /dev/null +++ b/images/templates/countdown/01-3-days-left.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + ā° COUNTDOWN + + + 3 + + + DAYS LEFT + + + + + + [Event Name] + [Event Description/Topic] + + + + + DATE + [Day, Date] + + + + + TIME + [Time] PKT + + + + + PLATFORM + Discord + + + + + SET YOUR REMINDER šŸ”” + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/countdown/02-1-day-left.svg b/images/templates/countdown/02-1-day-left.svg new file mode 100644 index 0000000..95ab794 --- /dev/null +++ b/images/templates/countdown/02-1-day-left.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + DEV WEEKENDS + + + + 🚨 TOMORROW! + + + 1 + + + DAY LEFT + + + + + + [Event Name] + [Event Description/Topic] + + + + + DATE + [Tomorrow] + + + + + TIME + [Time] PKT + + + + + PLATFORM + Discord + + + + + DON'T MISS OUT! šŸ”” + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/countdown/03-today-event.svg b/images/templates/countdown/03-today-event.svg new file mode 100644 index 0000000..4867742 --- /dev/null +++ b/images/templates/countdown/03-today-event.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + + HAPPENING TODAY! + + + TODAY + + + + + + + [TIME] PKT + + + [Event Name] + [Event Description/Topic] + + + + + + Photo + With [Speaker Name] + [Role] @ [Company] + + + + + JOIN NOW ON DISCORD šŸš€ + + + šŸŽ‰ + šŸ”„ + ✨ + šŸŽŠ + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/countdown/04-2-days-left.svg b/images/templates/countdown/04-2-days-left.svg new file mode 100644 index 0000000..7a64232 --- /dev/null +++ b/images/templates/countdown/04-2-days-left.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + DEV WEEKENDS + + + + ā³ ALMOST HERE! + + + 2 + + + DAYS LEFT + + + + + + [Event Name] + [Event Description/Topic] + + + + + DATE + [Day, Date] + + + + + TIME + [Time] PKT + + + + + PRICE + FREE + + + + + MARK YOUR CALENDAR šŸ“… + + + + + + + + + + DEVWEEKENDS.COM + \ No newline at end of file diff --git a/images/templates/countdown/05-live-now.svg b/images/templates/countdown/05-live-now.svg new file mode 100644 index 0000000..f4ff061 --- /dev/null +++ b/images/templates/countdown/05-live-now.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + DEV WEEKENDS + + + + + LIVE NOW + + + LIVE + + + We're Live Right Now! + + + + + + [Event Name] + [Event Description/Topic] + + + + + + Photo + With [Speaker Name] + [Role] @ [Company] + + + + + + + [X]+ Watching + + + + + On Discord Stage + + + + + JOIN NOW! šŸ”“ + + + + + + + + + + DISCORD.GG/DEVWEEKENDS + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-01-overview.svg b/images/templates/fellowship/palestine-01-overview.svg new file mode 100644 index 0000000..4288f07 --- /dev/null +++ b/images/templates/fellowship/palestine-01-overview.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + DEV WEEKENDS INITIATIVE + + Palestine Tech + Fellowship + + + Free intensive training for Palestinian technologists + preparing for global remote opportunities + + PROGRAM TRACKS + + + AI Engineering + LLMs, RAG Systems, AI Agents + LangChain, MLOps, Deployment + Target: $2,000-5,000/month + + + Full-Stack Development + MERN, Next.js, Cloud, DevOps + System Design, Microservices + Target: $1,000-3,000/month + + WHAT YOU GET + + + 30+ DSA Sessions + LeetCode 300+ preparation + + + 15+ Tech Sessions + Industry engineering workshops + + + 1:1 Mentorship + Weekly expert guidance + + + Mock Interviews + Technical and behavioral prep + + + Resume Support + ATS optimization and review + + + Job Placement + Direct referrals to companies + + PROJECTED IMPACT + + + 200 + Fellows Annually + + + 70% + Placement Rate + + + 3mo + Program Duration + + + 100% Free. Zero Barriers. + devweekends.com/palestine-fellowship + + Dev Weekends Society + 20,000+ Members | 500+ Sessions | 50+ Mentors | 100+ Placements + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-02-ai-track.svg b/images/templates/fellowship/palestine-02-ai-track.svg new file mode 100644 index 0000000..26c811d --- /dev/null +++ b/images/templates/fellowship/palestine-02-ai-track.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + TRACK 1 + AI Engineering + + + Master modern AI development for high-paying remote roles + + + + MODULE 1 / WEEK 1-3 + Foundations of AI Engineering + Python for AI/ML | LLM Fundamentals | Prompt Engineering | API Integration + OpenAI, Anthropic, and HuggingFace APIs + + + + MODULE 2 / WEEK 4-6 + RAG Systems and Vector Databases + Embeddings | Vector Stores | Pinecone/Weaviate | Chunking Strategies + Building production-grade retrieval systems + + + + MODULE 3 / WEEK 7-9 + AI Agent Development + LangChain | CrewAI | Tool Integration | Multi-Agent Systems + Autonomous agents with memory and reasoning + + + + MODULE 4 / WEEK 10-12 + MLOps and Production Deployment + Docker | AWS/GCP | Model Serving | Monitoring | CI/CD + Scaling AI applications in production environments + + CAREER OUTCOMES + + + + AI Engineer + ML Engineer + LLM Developer + AI Solutions Architect + Target Salary: $2,000 - $5,000/month remote + + INCLUDED SUPPORT + + + 1:1 Mentorship + Mock Interviews + Resume Review + Job Referrals + Career Counseling + + + Apply at devweekends.com/palestine-fellowship + + Dev Weekends Society | 50+ Industry Mentors | No Fees + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-03-fullstack-track.svg b/images/templates/fellowship/palestine-03-fullstack-track.svg new file mode 100644 index 0000000..89674e7 --- /dev/null +++ b/images/templates/fellowship/palestine-03-fullstack-track.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + TRACK 2 + Full-Stack Fellowship + + + Industry-ready software engineering for remote opportunities + + + DSA GRIND + 30+ Data Structures and Algorithms Sessions + Arrays | Trees | Graphs | Dynamic Programming | System Design | LeetCode 300+ + 30+ + + + ENGINEERING GRIND + 15+ Weekend Engineering Projects + JavaScript/TypeScript | React/Next.js | Node.js | PostgreSQL/MongoDB + 15+ + + + CLOUD ENGINEERING + AWS and DevOps + EC2, S3, Lambda, Docker, Kubernetes, CI/CD + + + ARCHITECTURE + System Design + HLD Patterns, Microservices, Scalability + + JOB READINESS SUPPORT + + + + Resume Optimization + ATS-friendly resume building + + + Mock Interviews + Technical and behavioral prep + + + 1:1 Mentorship + Weekly expert guidance + + + LinkedIn Strategy + Profile optimization + + + Remote Job Placement + Direct company referrals + + + Portfolio Building + Industry-ready showcase + + CAREER OUTCOMES + + + + Full-Stack Developer + Backend Engineer + Frontend Engineer + DevOps Engineer + Target Salary: $1,000 - $3,000/month remote + + + Apply at devweekends.com/palestine-fellowship + + Dev Weekends Society | 100+ Job Placements | No Fees + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-04-timeline.svg b/images/templates/fellowship/palestine-04-timeline.svg new file mode 100644 index 0000000..8c8370c --- /dev/null +++ b/images/templates/fellowship/palestine-04-timeline.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + PROGRAM STRUCTURE + 12-Week Journey + + + From application to job placement + + + + + 1 + + WEEK 0 + Application and Selection + Submit application with basic coding assessment. Selection based on motivation and aptitude. + + + 2 + + WEEK 1-4 + Foundation Building + Core programming, initial DSA sessions, mentor matching, track-specific fundamentals. + + + 3 + + WEEK 5-8 + Advanced Training and Projects + Intensive DSA grind, complex projects, system design, real-world engineering challenges. + + + 4 + + WEEK 9-11 + Job Readiness Preparation + Resume optimization, LinkedIn building, mock interviews, portfolio finalization. + + + 5 + + WEEK 12+ + Placement and Ongoing Support + Direct referrals, interview support, offer negotiation, continued community access. + + + + PROGRAM SUMMARY + + + + 12 + Weeks Total + + + 45+ + Live Sessions + + + 1:1 + Mentorship + + + 50+ + Mentors + + + devweekends.com/palestine-fellowship + + Dev Weekends Society | No Fees | No Barriers + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-05-impact.svg b/images/templates/fellowship/palestine-05-impact.svg new file mode 100644 index 0000000..b7fc6c0 --- /dev/null +++ b/images/templates/fellowship/palestine-05-impact.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + IMPACT PROJECTIONS + Projected Outcomes + + + Based on our track record with 100+ successful placements + + + 200 + Fellows Per Year + 50 per cohort, 4 cohorts annually + + + 70% + Placement Rate + Within 6 months of completion + + ANNUAL IMPACT + + + + 140 + Job Placements + + + $1.5K + Avg Monthly Salary + + + $2.5M + Annual Income Generated + + WHAT DEV WEEKENDS PROVIDES + + + + + Curriculum and Content + 40+ hours of recorded training + Complete AI and Full-Stack syllabi + Project repositories and assignments + + Expert Mentorship + 50+ industry professionals + Weekly 1:1 mentoring sessions + Code reviews and guidance + + Career Support + Resume and LinkedIn optimization + Mock interviews and preparation + Direct referrals to 50+ companies + + Community Access + 20,000+ member developer network + Peer support and collaboration + + Program Management + Full coordination and tracking + Quality assurance and support + + Certification + Industry-recognized credentials + Verified portfolio showcase + + + No Fees. No Barriers. Just Opportunity. + devweekends.com/palestine-fellowship + + Dev Weekends Society + Established 2022 | 20,000+ Members | 500+ Sessions | 100+ Job Placements + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-fellowship-01-overview.svg b/images/templates/fellowship/palestine-fellowship-01-overview.svg new file mode 100644 index 0000000..ede38ca --- /dev/null +++ b/images/templates/fellowship/palestine-fellowship-01-overview.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + Palestine Tech + Fellowship + + + + A free, intensive program preparing Palestinian + technologists for global remote opportunities + + + WHAT WE OFFER + + + + AI Engineering Track + LLMs, RAG Systems, AI Agents, MLOps + + + Full-Stack Fellowship + MERN, Next.js, Cloud, System Design + + + 30+ DSA Sessions + Intensive algorithmic problem solving + + + 15+ Tech Sessions + Industry-led engineering workshops + + + 1:1 Mentorship + Personalized guidance from industry experts + + + Mock Interviews + Technical and behavioral preparation + + + PROJECTED IMPACT + + + 200 + Fellows Per Year + + + 70% + Placement Rate + + + 3 + Month Program + + + CAREER SUPPORT + + Job Readiness Training + Resume Optimization + LinkedIn Strategy + Remote Job Placement + Career Counseling + Interview Preparation + + + + 100% Free Program. Zero Barriers. + devweekends.com/palestine-fellowship + + + Dev Weekends Society | Pakistan's Largest Developer Community + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-fellowship-02-ai-curriculum.svg b/images/templates/fellowship/palestine-fellowship-02-ai-curriculum.svg new file mode 100644 index 0000000..b105b41 --- /dev/null +++ b/images/templates/fellowship/palestine-fellowship-02-ai-curriculum.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + CURRICULUM OVERVIEW + AI Engineering Track + + + Comprehensive training in modern AI development practices + + + + + + MODULE 1 + Foundations of AI Engineering + + Python for AI/ML + LLM Fundamentals + Prompt Engineering + API Integration + + OpenAI, Anthropic, HuggingFace APIs + + Week 1-3 + + + + + + MODULE 2 + RAG Systems and Vector Databases + + Embeddings + Vector Stores + Pinecone/Weaviate + Chunking Strategies + + Building production-grade retrieval systems + + Week 4-6 + + + + + + MODULE 3 + AI Agent Development + + LangChain + CrewAI + Tool Integration + Multi-Agent Systems + + Autonomous agents with memory and reasoning capabilities + + Week 7-9 + + + + + + MODULE 4 + MLOps and Deployment + + Docker + AWS/GCP + Model Serving + Monitoring + CI/CD + + Production deployment and scaling of AI applications + + Week 10-12 + + + + CAREER OUTCOMES + AI Engineer + ML Engineer + LLM Developer + AI Solutions Architect + Target Salary Range: $2,000 - $5,000/month remote positions + + + + Apply Now at devweekends.com/palestine-fellowship + No fees. No barriers. Just opportunity. + + + Dev Weekends Society | 50+ Mentors | 500+ Sessions Delivered + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-fellowship-03-fullstack-curriculum.svg b/images/templates/fellowship/palestine-fellowship-03-fullstack-curriculum.svg new file mode 100644 index 0000000..b552c73 --- /dev/null +++ b/images/templates/fellowship/palestine-fellowship-03-fullstack-curriculum.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + CURRICULUM OVERVIEW + Full-Stack Fellowship + + + Industry-ready software engineering training + + + + + DSA GRIND + 30+ Data Structures and Algorithms Sessions + + Arrays/Strings + Trees/Graphs + Dynamic Programming + System Design + LeetCode 300+ + + 30+ + Sessions + + + + + ENGINEERING GRIND + 15+ Weekend Engineering Projects + + JavaScript/TypeScript + React/Next.js + Node.js/Express + PostgreSQL/MongoDB + + 15+ + Projects + + + + + CLOUD ENGINEERING + AWS and DevOps + + AWS Services (EC2, S3, Lambda) + Docker and Kubernetes + CI/CD Pipelines + + + + + ARCHITECTURE + System Design + + High-Level Design Patterns + Microservices Architecture + Scalability and Performance + + + + + JOB READINESS SUPPORT + + Resume Optimization + ATS-friendly resume building and review + + Mock Interviews + Technical and behavioral preparation + + Career Counseling + 1:1 guidance from industry mentors + + LinkedIn Strategy + Profile optimization and networking + + Remote Job Placement + Direct referrals to hiring companies + + Portfolio Building + Industry-ready project showcase + + + + CAREER OUTCOMES + Full-Stack Developer + Backend Engineer + Frontend Engineer + DevOps Engineer + Target Salary Range: $1,000 - $3,000/month remote positions + + + + Apply Now at devweekends.com/palestine-fellowship + No fees. No barriers. Just opportunity. + + + Dev Weekends Society | 20,000+ Community Members | 100+ Job Placements + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-fellowship-04-timeline.svg b/images/templates/fellowship/palestine-fellowship-04-timeline.svg new file mode 100644 index 0000000..0eca8a3 --- /dev/null +++ b/images/templates/fellowship/palestine-fellowship-04-timeline.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + PROGRAM STRUCTURE + How It Works + + + A structured 12-week journey from application to placement + + + + + + + 1 + + + WEEK 0 + Application and Selection + Submit application with basic coding assessment. No prior professional + experience required. Selection based on motivation and learning aptitude. + + + + 2 + + + WEEK 1-4 + Foundation Building + Core programming concepts, initial DSA sessions, mentor matching, + and track-specific fundamentals. Weekly check-ins and assignments. + + + + 3 + + + WEEK 5-8 + Advanced Training and Projects + Intensive DSA grind, complex project development, system design + principles, and real-world engineering challenges with expert guidance. + + + + 4 + + + WEEK 9-11 + Job Readiness Preparation + Resume optimization, LinkedIn profile building, mock interviews, + portfolio finalization, and career strategy development. + + + + 5 + + + WEEK 12+ + Placement and Ongoing Support + Direct referrals to hiring companies, interview support, offer + negotiation guidance, and continued community access. + + + + + + + 12 + Weeks Total + + + 45+ + Total Sessions + + + 1:1 + Mentorship + + + devweekends.com/palestine-fellowship + + \ No newline at end of file diff --git a/images/templates/fellowship/palestine-fellowship-05-impact.svg b/images/templates/fellowship/palestine-fellowship-05-impact.svg new file mode 100644 index 0000000..f384cab --- /dev/null +++ b/images/templates/fellowship/palestine-fellowship-05-impact.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + IMPACT PROJECTIONS + Projected Outcomes + + + Based on our track record with 100+ successful placements + + + + 200 + Fellows Per Year + 50 fellows per cohort, 4 cohorts annually + + + 70% + Placement Rate Target + Within 6 months of completion + + + ANNUAL PROJECTIONS + + + 140 + Job Placements + 70% of 200 fellows + + + $1.5K + Avg Monthly Salary + Remote positions + + + $2.5M + Annual Income Generated + For placed fellows + + + DEV WEEKENDS PROVIDES + + + + Curriculum and Content + 40+ hours of recorded training material + Complete AI and Full-Stack syllabi + Project repositories and assignments + + Expert Mentorship + 50+ industry professionals + Weekly 1:1 mentoring sessions + Code reviews and technical guidance + + Career Support + Resume and LinkedIn optimization + Mock interviews and preparation + Direct referrals to 50+ companies + + Community Access + 20,000+ member developer network + Ongoing peer support and collaboration + + Program Management + Coordination and tracking + Quality assurance and support + + Certification + Industry-recognized credentials + Verified portfolio showcase + + + + No Fees. No Barriers. Just Opportunity. + devweekends.com/palestine-fellowship + + + Dev Weekends Society | Established 2022 | Pakistan's Largest Developer Community + + \ No newline at end of file diff --git a/images/templates/initiatives/DevWeekends-Palestine-Fellowship-Initiative.pdf b/images/templates/initiatives/DevWeekends-Palestine-Fellowship-Initiative.pdf new file mode 100644 index 0000000..d9c5fcd Binary files /dev/null and b/images/templates/initiatives/DevWeekends-Palestine-Fellowship-Initiative.pdf differ diff --git a/images/templates/initiatives/palestine-fellowship-1-cover.svg b/images/templates/initiatives/palestine-fellowship-1-cover.svg new file mode 100644 index 0000000..abf5311 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-1-cover.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + EMPOWERING ENGINEERS SINCE 2017 + + + + + + + + + Palestine Tech + Fellowship Initiative + + + A Zero-Cost Technical Mentorship Program + for Palestinian Engineers and Students + + + + + + 4-Month Intensive Fellowship + 200 Students Capacity + 70% Projected Placement Rate + 100% Free - No Funding Required + + + devweekends.com + + + + + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-2-summary.svg b/images/templates/initiatives/palestine-fellowship-2-summary.svg new file mode 100644 index 0000000..08b5319 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-2-summary.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 01 + + + EXECUTIVE SUMMARY + + + The Opportunity + + + + + + Dev Weekends, a volunteer-driven tech community operating since 2017, proposes a dedicated + technical fellowship program for Palestinian engineers and students affected by the ongoing crisis. + + + + + + PROGRAM FUNDAMENTALS + + Duration: 4-month intensive fellowship + Capacity: 200 Palestinian students per cohort + Cost: Completely free + Delivery: 100% remote + Focus: Full-Stack Development with AI Engineering + Outcome: 70% job placement within 6 months + + + + + + OUR TRACK RECORD + + + 50+ + Active Mentors + + 800+ + Engineers Trained + + 70% + Placement Rate + + 8+ + Years Operating + + + Palestinian youth possess exceptional talent. Remote work in technology offers a pathway to + economic independence that transcends geographical constraints. + + + + devweekends.com + Palestine Tech Fellowship Initiative + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-3-curriculum.svg b/images/templates/initiatives/palestine-fellowship-3-curriculum.svg new file mode 100644 index 0000000..eba2f55 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-3-curriculum.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 02 + + + PROGRAM STRUCTURE + + + Fellowship Curriculum + + + + + + + + + CONCURRENT TRAINING TRACKS + + + 20+ Tech Sessions + Live sessions covering Full-Stack and AI Engineering + + 30+ DSA Sessions + Intensive algorithms training (3 sessions per week) + + Weekly Tasks + Guided assignments with mentor feedback + + + 01 + Foundation Phase + Month 1-2 + + Full-Stack fundamentals (JavaScript, React, Node.js) + Database design, Git workflows, AI/ML basics + + + 02 + Advanced Engineering + Month 3 + + System Design, Cloud platforms (AWS, Azure) + DevOps, AI Engineering: LLMs, RAG Systems + + + 03 + Career Readiness + Month 4 + + Resume and LinkedIn optimization + Mock interviews, Job application strategy + + + + + PROGRAM TIMELINE + + + + + + + + Month 1 + Month 2 + Month 3 + Month 4 + + + + devweekends.com + Palestine Tech Fellowship Initiative + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-4-mentorship.svg b/images/templates/initiatives/palestine-fellowship-4-mentorship.svg new file mode 100644 index 0000000..d4b1c1b --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-4-mentorship.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 03 + + + MENTORSHIP MODEL + + + Support Framework + + + + + + + + + Personal Mentor Assignment + Dedicated industry mentor paired + with each participant for the + entire 4-month program + + + + 1:1 Mentorship Sessions + Weekly one-on-one sessions + focused on individual progress + and career planning + + + + Weekly Tasks and Guidance + Structured assignments with + clear deliverables and detailed + mentor feedback + + + + + Mock Interview Preparation + Technical coding rounds, system + design, and behavioral interviews + with real feedback + + + + Resume and Career Advisory + Professional resume review, + LinkedIn optimization, strategic + career guidance + + + + Remote Job Placement + Industry referrals, freelancing + platform guidance (Upwork, + Toptal), direct applications + + + + + MENTOR COMMITMENT + Mentors commit 40-50 hours across the entire program duration, providing consistent support throughout the fellowship. + + + + devweekends.com + Palestine Tech Fellowship Initiative + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-5-specialization.svg b/images/templates/initiatives/palestine-fellowship-5-specialization.svg new file mode 100644 index 0000000..877d253 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-5-specialization.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 04 + + + SPECIALIZATION + + + Full-Stack with AI Engineering + + + + + + Our primary focus is Full-Stack Development with integrated AI Engineering, ensuring participants gain + comprehensive skills immediately applicable in the current job market. + + + FULL-STACK DEVELOPMENT + + + + Frontend Development + React, Next.js, TypeScript, and modern UI frameworks + + + + Backend Engineering + Node.js, Express, REST APIs, and database management + + + + DevOps + Docker, CI/CD, Cloud + + + + System Design + Architecture, Scalability + + + AI ENGINEERING INTEGRATION + + + + Large Language Models + Working with GPT, Claude, and open-source models + + + + Prompt Engineering + Systematic approaches to designing effective AI prompts + + + + RAG Systems and AI Agents + Building intelligent applications and autonomous agents + + + + AI-integrated full-stack skills position graduates for the highest-demand roles globally. + + + + devweekends.com + Palestine Tech Fellowship Initiative + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-6-impact.svg b/images/templates/initiatives/palestine-fellowship-6-impact.svg new file mode 100644 index 0000000..3761761 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-6-impact.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 05 + + + PROJECTED IMPACT + + + Measurable Outcomes + + + + + + + + 200 + + Students per Cohort + Maximum capacity for quality + + + + 70% + + Placement Target + Within 6 months of completion + + + + 140 + + Engineers Employed + Projected per cohort + + + + 0 + + Cost to Students + Completely free + + + IMPLEMENTATION TIMELINE + + Week 1-2 + Application review and cohort selection + + Week 3-4 + Onboarding and mentor matching + + Month 1-4 + Concurrent training: Tech sessions, DSA, weekly tasks, career prep + + Month 5-6 + Ongoing placement support and outcome tracking + + + + LONG-TERM VISION + Successful fellows become mentors, creating a self-sustaining + ecosystem that serves Palestinian engineers for generations. + + + + devweekends.com + Palestine Tech Fellowship Initiative + \ No newline at end of file diff --git a/images/templates/initiatives/palestine-fellowship-7-cta.svg b/images/templates/initiatives/palestine-fellowship-7-cta.svg new file mode 100644 index 0000000..7c46009 --- /dev/null +++ b/images/templates/initiatives/palestine-fellowship-7-cta.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + DEV WEEKENDS + 06 + + + GET INVOLVED + + + Join the Initiative + + + + + + For Palestinian Students + Applications are open for Palestinian students and early-career engineers. + No prior experience required for the Foundation Track. + + Requirements: + - Palestinian nationality or residence + - Basic computer and internet access (if not available, we can fund up to 30+ students) + - Commitment to complete the 4-month program + - English proficiency (intermediate level) + + + For Volunteer Mentors + We welcome experienced engineers who wish to contribute. + Anyone passionate about helping can join through our website. + + Commitment: + - 40-50 hours total across program duration + - Industry experience in relevant domains + - Passion for education and community + - Availability for remote sessions + + + + + + CONNECT WITH US + + Website + devweekends.com + + Apply / Mentor + devweekends.com + + + No funding required. Just dedicated engineers helping engineers build better futures. + + + + + + + + + + \ No newline at end of file diff --git a/images/templates/linkedin-banners/05-mentorship-right.svg b/images/templates/linkedin-banners/05-mentorship-right.svg new file mode 100644 index 0000000..551b194 --- /dev/null +++ b/images/templates/linkedin-banners/05-mentorship-right.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + DEV WEEKENDS + + + + MENTORSHIP + + + Free 1:1 Mentorship + From Industry Experts + + + + + + 50+ Mentors • 20k+ Members + + + + JOIN DISCORD NOW → + + + + + diff --git a/images/templates/linkedin-banners/06-community-right.svg b/images/templates/linkedin-banners/06-community-right.svg new file mode 100644 index 0000000..485f1ee --- /dev/null +++ b/images/templates/linkedin-banners/06-community-right.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + DEV WEEKENDS + + + Pakistan's Largest + Developer Community + + + + + 20,000+ + MEMBERS + + + 500+ + SESSIONS + + + 100% + FREE + + + + + + diff --git a/images/templates/linkedin-banners/07-gsoc-right.svg b/images/templates/linkedin-banners/07-gsoc-right.svg new file mode 100644 index 0000000..a83bbf8 --- /dev/null +++ b/images/templates/linkedin-banners/07-gsoc-right.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + GSoC SUCCESS + + + We Help You Crack + Google Summer of Code + + + + + + 15+ GSoC Selections • Chromium • FOSSology • More + + + + JOIN FREE → + + + + + + + diff --git a/images/templates/linkedin-banners/08-remote-jobs-right.svg b/images/templates/linkedin-banners/08-remote-jobs-right.svg new file mode 100644 index 0000000..d42d8ec --- /dev/null +++ b/images/templates/linkedin-banners/08-remote-jobs-right.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + REMOTE WORK READY + + + Land Your Dream + International Remote Job + + + + + + Upwork • Toptal • Turing • Arc • Direct Clients + + + + 100+ + PLACED + + + $50K+ + AVG SALARY + + + JOIN FREE → + + + + + diff --git a/images/templates/linkedin-banners/09-sessions-right.svg b/images/templates/linkedin-banners/09-sessions-right.svg new file mode 100644 index 0000000..ee288fe --- /dev/null +++ b/images/templates/linkedin-banners/09-sessions-right.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + + LIVE SESSIONS + + + Weekly Free Sessions on + DSA, System Design & More + + + + + + + + System Design + + + DSA + + + DevOps + + + AWS + + + Career Growth + + + + Every Saturday & Sunday • 7 PM PKT • Discord Stage + + + + JOIN FREE → + diff --git a/images/templates/ppt/DW-Template-1-Intro.pptx b/images/templates/ppt/DW-Template-1-Intro.pptx new file mode 100644 index 0000000..0c62d3e Binary files /dev/null and b/images/templates/ppt/DW-Template-1-Intro.pptx differ diff --git a/images/templates/ppt/DW-Template-2-Content.pptx b/images/templates/ppt/DW-Template-2-Content.pptx new file mode 100644 index 0000000..08f260c Binary files /dev/null and b/images/templates/ppt/DW-Template-2-Content.pptx differ diff --git a/images/templates/ppt/DW-Template-3-Stats.pptx b/images/templates/ppt/DW-Template-3-Stats.pptx new file mode 100644 index 0000000..e996193 Binary files /dev/null and b/images/templates/ppt/DW-Template-3-Stats.pptx differ diff --git a/images/templates/ppt/MindMaster-Template-1-Intro.pptx b/images/templates/ppt/MindMaster-Template-1-Intro.pptx new file mode 100644 index 0000000..8beadee Binary files /dev/null and b/images/templates/ppt/MindMaster-Template-1-Intro.pptx differ diff --git a/images/templates/ppt/MindMaster-Template-2-Content.pptx b/images/templates/ppt/MindMaster-Template-2-Content.pptx new file mode 100644 index 0000000..6015b41 Binary files /dev/null and b/images/templates/ppt/MindMaster-Template-2-Content.pptx differ diff --git a/images/templates/ppt/dw-ppt-template-1-intro.svg b/images/templates/ppt/dw-ppt-template-1-intro.svg new file mode 100644 index 0000000..c5934c8 --- /dev/null +++ b/images/templates/ppt/dw-ppt-template-1-intro.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + EMPOWERING ENGINEERS SINCE 2020 + + + + + + + Your Presentation + Title Goes Here + + + A brief description or subtitle for your presentation + + + + + + Presenter Name + Role / Position • Date + + + DW + + + + + + devweekends.org + diff --git a/images/templates/ppt/dw-ppt-template-2-content.svg b/images/templates/ppt/dw-ppt-template-2-content.svg new file mode 100644 index 0000000..043caa7 --- /dev/null +++ b/images/templates/ppt/dw-ppt-template-2-content.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + + + Your Section Title Here + + + 01 + + + KEY POINTS + + + + First Key Point + Description or additional context for this point goes here. + Can span multiple lines if needed. + + + + Second Key Point + Description or additional context for this point goes here. + Can span multiple lines if needed. + + + + Third Key Point + Description or additional context for this point goes here. + Can span multiple lines if needed. + + + + Fourth Key Point + Description or additional context for this point goes here. + Can span multiple lines if needed. + + + + Image / Chart / Diagram + Place your visual content here + + + + + + + + + Ā© Dev Weekends 2025 + devweekends.org + diff --git a/images/templates/ppt/dw-ppt-template-3-stats.svg b/images/templates/ppt/dw-ppt-template-3-stats.svg new file mode 100644 index 0000000..7b7aed7 --- /dev/null +++ b/images/templates/ppt/dw-ppt-template-3-stats.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + DEV WEEKENDS + BY THE NUMBERS + + + OUR IMPACT + Making a Difference + + + + + 30+ + + Mentors + Industry professionals + guiding the community + + + + 300+ + + Mentees + Engineers trained and + placed in industry + + + + 92% + + Placement + Success rate in + job placements + + + + 5+ + + Years + Empowering engineers + across Pakistan + + + From complete beginners to industry-ready engineers + + + + + + + + + + Ā© Dev Weekends 2025 + devweekends.org + diff --git a/images/templates/ppt/mindmaster-ppt-template-1-intro.svg b/images/templates/ppt/mindmaster-ppt-template-1-intro.svg new file mode 100644 index 0000000..4e97ae3 --- /dev/null +++ b/images/templates/ppt/mindmaster-ppt-template-1-intro.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + MINDMASTER + A DEV WEEKENDS INITIATIVE + + + + + + + + BEYOND CODE, THERE'S THE MIND + + + Your Presentation + Title Here + + + + + + A journey into psychology, purpose, and peak performance + + + Presenter Name + Date + + + " + + + + + + mindmaster.devweekends.org + diff --git a/images/templates/ppt/mindmaster-ppt-template-2-content.svg b/images/templates/ppt/mindmaster-ppt-template-2-content.svg new file mode 100644 index 0000000..8ea7af5 --- /dev/null +++ b/images/templates/ppt/mindmaster-ppt-template-2-content.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + MINDMASTER + + + 01 + + + + PSYCHOLOGY + + + The Power of Deep Work + + + + + "The ability to perform deep work is becoming + increasingly rare at exactly the same time it + is becoming increasingly valuable." + — Cal Newport + + + + + 01 + Focus Deeply + Eliminate distractions and + embrace single-tasking + + + 02 + Build Rituals + Create consistent routines + that trigger deep states + + + 03 + Rest Well + Recovery enables sustained + high performance + + + + + + + + + + Mind + + + + + + + KEY INSIGHT + True productivity comes from depth, not breadth. + + + + + + Ā© MindMaster 2025 + A Dev Weekends Initiative + diff --git a/package-lock.json b/package-lock.json index 9c435b7..a37c8ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,8 @@ "mongoose": "^8.14.2", "next": "15.1.7", "next-themes": "^0.4.6", + "pdfkit": "^0.17.2", + "pptxgenjs": "^4.0.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-force-graph-2d": "^1.27.1", @@ -3944,6 +3946,26 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/bcryptjs": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz", @@ -4017,6 +4039,15 @@ "node": ">=8" } }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, "node_modules/bson": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.3.tgz", @@ -4241,6 +4272,15 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/cloudinary": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.6.1.tgz", @@ -4365,6 +4405,12 @@ "node": ">=6.6.0" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -4393,6 +4439,12 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -4775,6 +4827,12 @@ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -5679,7 +5737,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -5828,6 +5885,23 @@ "node": ">=12" } }, + "node_modules/fontkit": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", + "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.12", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -6231,6 +6305,12 @@ "node": ">= 0.8" } }, + "node_modules/https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==", + "license": "ISC" + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -6254,6 +6334,27 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -6294,7 +6395,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "license": "ISC" }, "node_modules/internal-slot": { @@ -6814,6 +6914,12 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jpeg-exif": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/jpeg-exif/-/jpeg-exif-1.1.4.tgz", + "integrity": "sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==", + "license": "MIT" + }, "node_modules/js-cookie": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", @@ -6914,6 +7020,18 @@ "node": ">=4.0" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, "node_modules/jwa": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", @@ -7000,6 +7118,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -7012,6 +7139,25 @@ "url": "https://github.com/sponsors/antonk52" } }, + "node_modules/linebreak": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz", + "integrity": "sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==", + "license": "MIT", + "dependencies": { + "base64-js": "0.0.8", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -7736,6 +7882,12 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7810,6 +7962,19 @@ "node": ">=16" } }, + "node_modules/pdfkit": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.17.2.tgz", + "integrity": "sha512-UnwF5fXy08f0dnp4jchFYAROKMNTaPqb/xgR8GtCzIcqoTnbOqtp3bwKvO4688oHI6vzEEs8Q6vqqEnC5IUELw==", + "license": "MIT", + "dependencies": { + "crypto-js": "^4.2.0", + "fontkit": "^2.0.4", + "jpeg-exif": "^1.1.4", + "linebreak": "^1.1.0", + "png-js": "^1.0.0" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7856,6 +8021,11 @@ "node": ">=16.20.0" } }, + "node_modules/png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -8009,6 +8179,33 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "license": "MIT" }, + "node_modules/pptxgenjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", + "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==", + "license": "MIT", + "dependencies": { + "@types/node": "^22.8.1", + "https": "^1.0.0", + "image-size": "^1.2.1", + "jszip": "^3.10.1" + } + }, + "node_modules/pptxgenjs/node_modules/@types/node": { + "version": "22.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", + "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/pptxgenjs/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, "node_modules/preact": { "version": "10.26.6", "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.6.tgz", @@ -8029,6 +8226,12 @@ "node": ">= 0.8.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -8090,6 +8293,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -8273,6 +8485,33 @@ "pify": "^2.3.0" } }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -8369,6 +8608,12 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/restructure": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", + "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", + "license": "MIT" + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -8607,6 +8852,12 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -8822,6 +9073,21 @@ "node": ">=10.0.0" } }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -9207,6 +9473,12 @@ "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==", "license": "ISC" }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, "node_modules/tinycolor2": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", @@ -9476,6 +9748,32 @@ "dev": true, "license": "MIT" }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", diff --git a/package.json b/package.json index eb6d647..aef7737 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,8 @@ "mongoose": "^8.14.2", "next": "15.1.7", "next-themes": "^0.4.6", + "pdfkit": "^0.17.2", + "pptxgenjs": "^4.0.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-force-graph-2d": "^1.27.1", diff --git a/scripts/generate-palestine-fellowship-pdf.js b/scripts/generate-palestine-fellowship-pdf.js new file mode 100644 index 0000000..fd4c841 --- /dev/null +++ b/scripts/generate-palestine-fellowship-pdf.js @@ -0,0 +1,512 @@ +const PDFDocument = require("pdfkit"); +const fs = require("fs"); +const path = require("path"); + +// Output directory +const outputDir = path.join(__dirname, "../images/templates/initiatives"); + +// Ensure output directory exists +if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); +} + +// Create PDF +const doc = new PDFDocument({ + size: "A4", + margins: { top: 60, bottom: 60, left: 60, right: 60 }, + bufferPages: true, + autoFirstPage: true, + info: { + Title: "Dev Weekends Palestine Tech Fellowship Initiative", + Author: "Dev Weekends", + Subject: "Tech Fellowship for Palestinian Engineers", + }, +}); + +const outputPath = path.join(outputDir, "DevWeekends-Palestine-Fellowship-Initiative.pdf"); +const stream = fs.createWriteStream(outputPath); +doc.pipe(stream); + +// Colors +const BLACK = "#18181B"; +const GRAY = "#71717A"; +const LIGHT_GRAY = "#E4E4E7"; +const WHITE = "#FAFAFA"; +const PALESTINE_GREEN = "#009736"; +const PALESTINE_RED = "#CE1126"; + +// Helper functions +function drawHeader(doc, pageNum) { + doc.save(); + doc.fontSize(8).fillColor(GRAY).text("DEV WEEKENDS", 60, 30, { characterSpacing: 2 }); + doc.fontSize(8).fillColor(GRAY).text(`${pageNum}`, 535, 30, { align: "right" }); + doc.restore(); +} + +function drawFooter(doc) { + doc.save(); + doc.moveTo(60, 780).lineTo(535, 780).strokeColor(LIGHT_GRAY).lineWidth(0.5).stroke(); + doc.fontSize(8).fillColor(GRAY).text("devweekends.com", 60, 790); + doc.fontSize(8).fillColor(GRAY).text("Palestine Tech Fellowship Initiative", 535, 790, { align: "right", width: 200 }); + doc.restore(); +} + +function drawPalestineFlag(doc, x, y, width, height) { + const stripeHeight = height / 3; + doc.rect(x, y, width, stripeHeight).fill("#000000"); + doc.rect(x, y + stripeHeight, width, stripeHeight).fill("#FFFFFF"); + doc.rect(x, y + stripeHeight * 2, width, stripeHeight).fill(PALESTINE_GREEN); + doc.save(); + doc.moveTo(x, y).lineTo(x + width * 0.35, y + height / 2).lineTo(x, y + height).fill(PALESTINE_RED); + doc.restore(); +} + +// ============================================ +// PAGE 1: COVER +// ============================================ +function page1Cover() { + doc.rect(0, 0, 8, 842).fill(BLACK); + + doc.fontSize(10).fillColor(BLACK).text("DEV WEEKENDS", 60, 60, { characterSpacing: 3 }); + doc.fontSize(8).fillColor(GRAY).text("EMPOWERING ENGINEERS SINCE 2017", 60, 78, { characterSpacing: 1 }); + + drawPalestineFlag(doc, 60, 160, 120, 80); + + doc.fontSize(42).fillColor(BLACK).text("Palestine Tech", 60, 280, { lineGap: 5 }); + doc.fontSize(42).fillColor(BLACK).text("Fellowship Initiative", 60, 335); + + doc.fontSize(14).fillColor(GRAY).text("A Zero-Cost Technical Mentorship Program", 60, 410); + doc.fontSize(14).fillColor(GRAY).text("for Palestinian Engineers and Students", 60, 430); + + doc.rect(60, 470, 100, 3).fill(BLACK); + + doc.fontSize(11).fillColor(BLACK).text("4-Month Intensive Fellowship", 60, 510); + doc.fontSize(11).fillColor(BLACK).text("200 Students Capacity", 60, 530); + doc.fontSize(11).fillColor(BLACK).text("70% Projected Placement Rate", 60, 550); + doc.fontSize(11).fillColor(BLACK).text("100% Free - No Funding Required", 60, 570); + + doc.rect(480, 60, 50, 50).stroke(BLACK); + doc.rect(495, 75, 50, 50).fill(LIGHT_GRAY); + + doc.fontSize(10).fillColor(GRAY).text("devweekends.com", 60, 750); +} + +// ============================================ +// PAGE 2: EXECUTIVE SUMMARY +// ============================================ +function page2ExecutiveSummary() { + doc.addPage(); + drawHeader(doc, 2); + + doc.fontSize(9).fillColor(GRAY).text("01", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("EXECUTIVE SUMMARY", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("The Opportunity", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + const summaryText = `Dev Weekends, a volunteer-driven tech community operating since 2017, proposes a dedicated technical fellowship program for Palestinian engineers and students affected by the ongoing crisis. + +This initiative leverages our existing infrastructure, mentor network, and proven curriculum to provide world-class technical training at zero cost to participants and zero external funding requirement.`; + + doc.fontSize(11).fillColor(GRAY).text(summaryText, 60, 195, { + width: 475, + lineGap: 7, + align: "justify", + }); + + doc.rect(60, 305, 475, 170).fill("#F4F4F5"); + doc.rect(60, 305, 4, 170).fill(BLACK); + + doc.fontSize(10).fillColor(BLACK).text("PROGRAM FUNDAMENTALS", 80, 320, { characterSpacing: 2 }); + + const keyPoints = [ + "Duration: 4-month intensive fellowship program", + "Capacity: 200 Palestinian students per cohort", + "Cost to Participants: Completely free", + "External Funding: None required", + "Delivery: 100% remote via online platforms", + "Focus Areas: Full-Stack Development with AI Engineering", + "Projected Outcome: 70% job placement within 6 months", + ]; + + keyPoints.forEach((point, i) => { + doc.fontSize(10).fillColor(GRAY).text(point, 80, 345 + i * 18, { width: 430 }); + }); + + doc.fontSize(10).fillColor(BLACK).text("THE IMPERATIVE", 60, 500, { characterSpacing: 2 }); + + const whyText = `Palestinian youth possess exceptional talent and determination. However, access to quality technical education and mentorship remains severely limited. Remote work opportunities in technology offer a pathway to economic independence that transcends geographical and political constraints. + +Dev Weekends has successfully trained 800+ engineers across Pakistan, achieving a 70% placement rate over 8+ years of operation. We are prepared to extend this proven model to serve Palestinian students immediately.`; + + doc.fontSize(11).fillColor(GRAY).text(whyText, 60, 525, { + width: 475, + lineGap: 7, + align: "justify", + }); + + doc.rect(60, 650, 475, 80).fill("#F4F4F5"); + doc.rect(60, 650, 4, 80).fill(PALESTINE_GREEN); + + doc.fontSize(10).fillColor(BLACK).text("OUR TRACK RECORD", 80, 665, { characterSpacing: 2 }); + + const stats = ["50+ Active Industry Mentors", "800+ Engineers Trained", "70% Placement Rate", "8+ Years of Operation"]; + stats.forEach((stat, i) => { + const xPos = 80 + (i % 2) * 220; + const yPos = 690 + Math.floor(i / 2) * 20; + doc.fontSize(10).fillColor(GRAY).text(stat, xPos, yPos); + }); + + drawFooter(doc); +} + +// ============================================ +// PAGE 3: PROGRAM STRUCTURE +// ============================================ +function page3ProgramStructure() { + doc.addPage(); + drawHeader(doc, 3); + + doc.fontSize(9).fillColor(GRAY).text("02", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("PROGRAM STRUCTURE", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("Fellowship Curriculum", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + doc.fontSize(11).fillColor(GRAY).text( + "A comprehensive 4-month program combining technical training, mentorship, and career preparation. All sessions run concurrently throughout the program with weekly tasks and guidance.", + 60, 190, { width: 475, lineGap: 6 } + ); + + // Concurrent tracks box + doc.rect(60, 250, 475, 120).fill("#F4F4F5"); + doc.rect(60, 250, 4, 120).fill(BLACK); + + doc.fontSize(10).fillColor(BLACK).text("CONCURRENT TRAINING TRACKS", 80, 268, { characterSpacing: 2 }); + + doc.fontSize(11).fillColor(BLACK).text("20+ Tech Sessions", 80, 295); + doc.fontSize(10).fillColor(GRAY).text("Live sessions with industry experts covering Full-Stack and AI Engineering", 80, 312, { width: 200 }); + + doc.fontSize(11).fillColor(BLACK).text("30+ DSA Sessions", 300, 295); + doc.fontSize(10).fillColor(GRAY).text("Intensive data structures and algorithms training (3 sessions per week)", 300, 312, { width: 200 }); + + // Phase 1 + doc.fontSize(9).fillColor(GRAY).text("01", 60, 395, { characterSpacing: 2 }); + doc.fontSize(14).fillColor(BLACK).text("Foundation Phase", 60, 410); + doc.fontSize(9).fillColor(GRAY).text("Month 1-2", 60, 430); + + const phase1Items = [ + "Full-Stack Development fundamentals (JavaScript, React, Node.js)", + "Database design and management", + "Git, GitHub, and collaborative workflows", + "Weekly tasks with mentor guidance and feedback", + "AI/ML fundamentals integrated into projects", + ]; + + phase1Items.forEach((item, i) => { + doc.fontSize(10).fillColor(GRAY).text(item, 80, 450 + i * 16, { width: 430 }); + }); + + // Phase 2 + doc.fontSize(9).fillColor(GRAY).text("02", 60, 545, { characterSpacing: 2 }); + doc.fontSize(14).fillColor(BLACK).text("Advanced Engineering Phase", 60, 560); + doc.fontSize(9).fillColor(GRAY).text("Month 3", 60, 580); + + const phase2Items = [ + "System Design fundamentals and patterns", + "Cloud platforms (AWS, Azure) and DevOps", + "AI Engineering: LLMs, Prompt Engineering, RAG Systems", + "Complex project development with weekly deliverables", + ]; + + phase2Items.forEach((item, i) => { + doc.fontSize(10).fillColor(GRAY).text(item, 80, 600 + i * 16, { width: 430 }); + }); + + // Phase 3 + doc.fontSize(9).fillColor(GRAY).text("03", 60, 680, { characterSpacing: 2 }); + doc.fontSize(14).fillColor(BLACK).text("Career Readiness Phase", 60, 695); + doc.fontSize(9).fillColor(GRAY).text("Month 4", 60, 715); + + const phase3Items = [ + "Resume building and LinkedIn optimization", + "Mock interview preparation and feedback", + "Remote job application strategy", + ]; + + phase3Items.forEach((item, i) => { + doc.fontSize(10).fillColor(GRAY).text(item, 80, 735 + i * 16, { width: 430 }); + }); + + drawFooter(doc); +} + +// ============================================ +// PAGE 4: MENTORSHIP MODEL +// ============================================ +function page4MentorshipModel() { + doc.addPage(); + drawHeader(doc, 4); + + doc.fontSize(9).fillColor(GRAY).text("03", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("MENTORSHIP MODEL", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("Support Framework", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + doc.fontSize(12).fillColor(BLACK).text("Personal Mentor Assignment", 60, 200); + doc.fontSize(10).fillColor(GRAY).text( + "Each participant is paired with a dedicated industry mentor who provides personalized guidance throughout the 4-month program. Mentors are professionals from leading tech companies worldwide.", + 60, 218, { width: 475, lineGap: 5 } + ); + + doc.fontSize(12).fillColor(BLACK).text("1:1 Mentorship Sessions", 60, 275); + doc.fontSize(10).fillColor(GRAY).text( + "Weekly one-on-one sessions focused on individual progress, technical challenges, and career planning. Each participant receives dedicated mentorship time throughout the program.", + 60, 293, { width: 475, lineGap: 5 } + ); + + doc.fontSize(12).fillColor(BLACK).text("Weekly Tasks and Guidance", 60, 350); + doc.fontSize(10).fillColor(GRAY).text( + "Structured weekly assignments with clear deliverables. Mentors provide detailed feedback and guidance to ensure continuous progress and skill development.", + 60, 368, { width: 475, lineGap: 5 } + ); + + doc.fontSize(12).fillColor(BLACK).text("Mock Interview Preparation", 60, 425); + doc.fontSize(10).fillColor(GRAY).text( + "Comprehensive interview preparation including technical coding rounds, system design discussions, and behavioral interviews with real feedback from practicing engineers.", + 60, 443, { width: 475, lineGap: 5 } + ); + + doc.fontSize(12).fillColor(BLACK).text("Resume and Career Advisory", 60, 500); + doc.fontSize(10).fillColor(GRAY).text( + "Professional resume review, LinkedIn optimization, and strategic career guidance tailored for remote international job markets and global opportunities.", + 60, 518, { width: 475, lineGap: 5 } + ); + + doc.fontSize(12).fillColor(BLACK).text("Remote Job Placement Support", 60, 575); + doc.fontSize(10).fillColor(GRAY).text( + "Active job placement assistance including referrals to our industry network, guidance on freelancing platforms like Upwork and Toptal, and support for direct applications.", + 60, 593, { width: 475, lineGap: 5 } + ); + + doc.rect(60, 655, 475, 80).fill("#F4F4F5"); + doc.rect(60, 655, 4, 80).fill(PALESTINE_GREEN); + + doc.fontSize(10).fillColor(BLACK).text("MENTOR COMMITMENT", 80, 673, { characterSpacing: 2 }); + doc.fontSize(10).fillColor(GRAY).text( + "Mentors commit 40-50 hours across the entire program duration, providing consistent support and guidance to their assigned mentees throughout the fellowship.", + 80, 695, { width: 430, lineGap: 5 } + ); + + drawFooter(doc); +} + +// ============================================ +// PAGE 5: SPECIALIZATION +// ============================================ +function page5Specialization() { + doc.addPage(); + drawHeader(doc, 5); + + doc.fontSize(9).fillColor(GRAY).text("04", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("SPECIALIZATION", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("Full-Stack with AI Engineering", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + const introText = `Our primary focus is Full-Stack Development with integrated AI Engineering. This approach ensures participants gain comprehensive skills that are immediately applicable in the current job market where AI integration is becoming standard practice.`; + + doc.fontSize(11).fillColor(GRAY).text(introText, 60, 195, { width: 475, lineGap: 6 }); + + doc.fontSize(10).fillColor(BLACK).text("FULL-STACK DEVELOPMENT", 60, 270, { characterSpacing: 2 }); + + const fullStackTopics = [ + { title: "Frontend Development", desc: "React, Next.js, TypeScript, and modern UI frameworks" }, + { title: "Backend Engineering", desc: "Node.js, Express, REST APIs, and database management" }, + { title: "DevOps Fundamentals", desc: "Docker, CI/CD pipelines, and cloud deployment" }, + { title: "System Design", desc: "Architecture patterns, scalability, and performance optimization" }, + ]; + + let yPos = 295; + fullStackTopics.forEach((topic) => { + doc.fontSize(11).fillColor(BLACK).text(topic.title, 60, yPos); + doc.fontSize(10).fillColor(GRAY).text(topic.desc, 60, yPos + 15, { width: 475 }); + yPos += 42; + }); + + doc.fontSize(10).fillColor(BLACK).text("AI ENGINEERING INTEGRATION", 60, 475, { characterSpacing: 2 }); + + const aiTopics = [ + { title: "Large Language Models", desc: "Working with GPT, Claude, and open-source models" }, + { title: "Prompt Engineering", desc: "Systematic approaches to designing effective AI prompts" }, + { title: "AI API Integration", desc: "Building applications with OpenAI, Anthropic, and other services" }, + { title: "RAG Systems", desc: "Retrieval-Augmented Generation for intelligent applications" }, + { title: "AI Agents", desc: "Developing autonomous agents for complex task automation" }, + ]; + + yPos = 500; + aiTopics.forEach((topic) => { + doc.fontSize(11).fillColor(BLACK).text(topic.title, 60, yPos); + doc.fontSize(10).fillColor(GRAY).text(topic.desc, 60, yPos + 15, { width: 475 }); + yPos += 42; + }); + + doc.rect(60, 720, 475, 40).fill("#F4F4F5"); + doc.rect(60, 720, 4, 40).fill(BLACK); + doc.fontSize(10).fillColor(GRAY).text( + "AI-integrated full-stack skills position graduates for the highest-demand roles in global tech markets.", + 80, 732, { width: 430 } + ); + + drawFooter(doc); +} + +// ============================================ +// PAGE 6: PROJECTED IMPACT +// ============================================ +function page6ProjectedImpact() { + doc.addPage(); + drawHeader(doc, 6); + + doc.fontSize(9).fillColor(GRAY).text("05", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("PROJECTED IMPACT", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("Measurable Outcomes", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + const metrics = [ + { value: "200", label: "Students per Cohort", desc: "Maximum capacity for quality mentorship" }, + { value: "70%", label: "Placement Target", desc: "Within 6 months of completion" }, + { value: "140", label: "Engineers Employed", desc: "Projected placements per cohort" }, + { value: "0", label: "Cost to Students", desc: "Completely free participation" }, + ]; + + metrics.forEach((metric, i) => { + const col = i % 2; + const row = Math.floor(i / 2); + const xPos = 60 + col * 245; + const yPos = 200 + row * 115; + + doc.rect(xPos, yPos, 225, 100).fill("#F4F4F5"); + doc.rect(xPos, yPos, 4, 100).fill(BLACK); + + doc.fontSize(36).fillColor(BLACK).text(metric.value, xPos + 20, yPos + 15); + doc.fontSize(11).fillColor(BLACK).text(metric.label, xPos + 20, yPos + 58); + doc.fontSize(9).fillColor(GRAY).text(metric.desc, xPos + 20, yPos + 75); + }); + + doc.fontSize(10).fillColor(BLACK).text("IMPLEMENTATION TIMELINE", 60, 450, { characterSpacing: 2 }); + + const timeline = [ + { phase: "Week 1-2", activity: "Application review and cohort selection" }, + { phase: "Week 3-4", activity: "Onboarding and mentor matching" }, + { phase: "Month 1-2", activity: "Foundation training with concurrent DSA and Tech sessions" }, + { phase: "Month 3", activity: "Advanced skills, AI integration, and specialization" }, + { phase: "Month 4", activity: "Career preparation and job placement support" }, + { phase: "Month 5-6", activity: "Ongoing placement support and outcome tracking" }, + ]; + + timeline.forEach((item, i) => { + const yPos = 480 + i * 26; + doc.fontSize(10).fillColor(BLACK).text(item.phase, 60, yPos, { width: 80 }); + doc.fontSize(10).fillColor(GRAY).text(item.activity, 150, yPos, { width: 385 }); + }); + + doc.rect(60, 650, 475, 80).fill(BLACK); + doc.fontSize(10).fillColor(WHITE).text("LONG-TERM VISION", 80, 668, { characterSpacing: 2 }); + doc.fontSize(10).fillColor(LIGHT_GRAY).text( + "Successful fellows become mentors, creating a self-sustaining ecosystem that continues to serve Palestinian engineers for generations. Each cohort strengthens the next.", + 80, 690, { width: 420, lineGap: 5 } + ); + + drawFooter(doc); +} + +// ============================================ +// PAGE 7: CALL TO ACTION +// ============================================ +function page7CallToAction() { + doc.addPage(); + drawHeader(doc, 7); + + doc.fontSize(9).fillColor(GRAY).text("06", 60, 80, { characterSpacing: 2 }); + doc.fontSize(9).fillColor(GRAY).text("GET INVOLVED", 60, 95, { characterSpacing: 2 }); + + doc.fontSize(28).fillColor(BLACK).text("Join the Initiative", 60, 130); + doc.rect(60, 170, 60, 2).fill(BLACK); + + doc.fontSize(14).fillColor(BLACK).text("For Palestinian Students", 60, 200); + doc.fontSize(10).fillColor(GRAY).text( + "Applications are open for Palestinian students and early-career engineers. No prior experience required for the Foundation Track. Visit our website to apply.", + 60, 220, { width: 475, lineGap: 5 } + ); + + doc.fontSize(10).fillColor(BLACK).text("Requirements:", 60, 265); + const studentReqs = [ + "Palestinian nationality or residence", + "Basic computer and internet access (if not available, we can fund up to 30 students or more through sponsorships)", + "Commitment to complete the 4-month program", + "English proficiency (intermediate level)", + ]; + studentReqs.forEach((req, i) => { + doc.fontSize(10).fillColor(GRAY).text("- " + req, 70, 285 + i * 18, { width: 455 }); + }); + + doc.fontSize(14).fillColor(BLACK).text("For Volunteer Mentors", 60, 380); + doc.fontSize(10).fillColor(GRAY).text( + "We welcome experienced engineers who wish to contribute their time and expertise. Anyone passionate about helping can join through our website.", + 60, 400, { width: 475, lineGap: 5 } + ); + + doc.fontSize(10).fillColor(BLACK).text("Mentor Commitment:", 60, 445); + const mentorReqs = [ + "40-50 hours total across the program duration", + "Industry experience in relevant technical domains", + "Passion for education and community service", + "Availability for remote sessions", + ]; + mentorReqs.forEach((req, i) => { + doc.fontSize(10).fillColor(GRAY).text("- " + req, 70, 465 + i * 18, { width: 455 }); + }); + + doc.rect(60, 555, 475, 100).fill("#F4F4F5"); + doc.rect(60, 555, 4, 100).fill(PALESTINE_GREEN); + + doc.fontSize(10).fillColor(BLACK).text("CONNECT WITH US", 80, 575, { characterSpacing: 2 }); + + doc.fontSize(11).fillColor(BLACK).text("Website", 80, 605); + doc.fontSize(11).fillColor(GRAY).text("devweekends.com", 200, 605); + + doc.fontSize(11).fillColor(BLACK).text("Apply / Join as Mentor", 80, 628); + doc.fontSize(11).fillColor(GRAY).text("devweekends.com", 200, 628); + + doc.fontSize(12).fillColor(BLACK).text( + "No funding required. Just dedicated engineers helping engineers build better futures.", + 60, 695, { width: 475, align: "center" } + ); + + drawPalestineFlag(doc, 247, 730, 60, 40); + + drawFooter(doc); +} + +// ============================================ +// GENERATE PDF +// ============================================ +console.log("Generating Palestine Tech Fellowship Initiative PDF...\n"); + +page1Cover(); +page2ExecutiveSummary(); +page3ProgramStructure(); +page4MentorshipModel(); +page5Specialization(); +page6ProjectedImpact(); +page7CallToAction(); + +doc.end(); + +stream.on("finish", () => { + console.log("PDF generated successfully!"); + console.log(`Output: ${outputPath}`); +}); diff --git a/scripts/generate-ppt-templates.js b/scripts/generate-ppt-templates.js new file mode 100644 index 0000000..44c943d --- /dev/null +++ b/scripts/generate-ppt-templates.js @@ -0,0 +1,1278 @@ +const pptxgen = require("pptxgenjs"); +const fs = require("fs"); +const path = require("path"); + +// Output directory +const outputDir = path.join(__dirname, "../images/templates/ppt"); + +// Ensure output directory exists +if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); +} + +// ============================================ +// DEV WEEKENDS TEMPLATE 1: INTRO/TITLE SLIDE +// ============================================ +function createDWTemplate1() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "Dev Weekends - Intro Template"; + pptx.author = "Dev Weekends"; + + // Slide 1 - Title Slide + const slide1 = pptx.addSlide(); + slide1.background = { color: "FAFAFA" }; + + // Left accent bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.1, + h: "100%", + fill: { color: "18181B" }, + }); + + // Branding + slide1.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.3, + fontSize: 12, + fontFace: "Arial", + bold: true, + color: "18181B", + charSpacing: 4, + }); + + slide1.addText("EMPOWERING ENGINEERS SINCE 2020", { + x: 0.5, + y: 0.55, + fontSize: 8, + fontFace: "Arial", + color: "71717A", + charSpacing: 2, + }); + + // Main Title + slide1.addText("Your Presentation\nTitle Goes Here", { + x: 0.5, + y: 2.2, + w: 8, + fontSize: 48, + fontFace: "Arial", + bold: true, + color: "18181B", + lineSpacing: 54, + }); + + // Subtitle + slide1.addText("A brief description or subtitle for your presentation", { + x: 0.5, + y: 4.0, + fontSize: 16, + fontFace: "Arial", + color: "71717A", + }); + + // Divider line + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 4.5, + w: 2.5, + h: 0.03, + fill: { color: "18181B" }, + }); + + // Presenter info + slide1.addText("Presenter Name", { + x: 0.5, + y: 4.8, + fontSize: 14, + fontFace: "Arial", + bold: true, + color: "18181B", + }); + + slide1.addText("Role / Position • Date", { + x: 0.5, + y: 5.05, + fontSize: 11, + fontFace: "Arial", + color: "71717A", + }); + + // Decorative element (corner box) + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 11.5, + y: 0.5, + w: 0.8, + h: 0.8, + line: { color: "18181B", width: 1.5 }, + }); + + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 11.7, + y: 0.7, + w: 0.8, + h: 0.8, + fill: { color: "FEF08A", transparency: 40 }, + }); + + // Bottom bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "18181B" }, + }); + + // Website + slide1.addText("devweekends.org", { + x: 11, + y: 5.1, + fontSize: 10, + fontFace: "Arial", + color: "71717A", + }); + + // Slide 2 - Content Template + const slide2 = pptx.addSlide(); + slide2.background = { color: "FAFAFA" }; + + // Header bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: "100%", + h: 1.2, + fill: { color: "18181B" }, + }); + + slide2.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.25, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + charSpacing: 3, + }); + + slide2.addText("Your Section Title Here", { + x: 0.5, + y: 0.6, + fontSize: 28, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + slide2.addText("01", { + x: 12, + y: 0.6, + fontSize: 16, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + // Key Points section + slide2.addText("KEY POINTS", { + x: 0.5, + y: 1.5, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "18181B", + charSpacing: 2, + }); + + const points = [ + { title: "First Key Point", desc: "Description or additional context for this point goes here." }, + { title: "Second Key Point", desc: "Description or additional context for this point goes here." }, + { title: "Third Key Point", desc: "Description or additional context for this point goes here." }, + { title: "Fourth Key Point", desc: "Description or additional context for this point goes here." }, + ]; + + points.forEach((point, i) => { + const yPos = 1.9 + i * 0.8; + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: yPos, + w: 0.08, + h: 0.08, + fill: { color: "18181B" }, + }); + slide2.addText(point.title, { + x: 0.7, + y: yPos - 0.05, + fontSize: 14, + fontFace: "Arial", + bold: true, + color: "18181B", + }); + slide2.addText(point.desc, { + x: 0.7, + y: yPos + 0.22, + fontSize: 11, + fontFace: "Arial", + color: "71717A", + }); + }); + + // Visual placeholder + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 6.5, + y: 1.5, + w: 5.5, + h: 3.5, + fill: { color: "F4F4F5" }, + line: { color: "E4E4E7", width: 1 }, + }); + + slide2.addText("Image / Chart / Diagram\nPlace your visual content here", { + x: 6.5, + y: 2.8, + w: 5.5, + fontSize: 14, + fontFace: "Arial", + color: "A1A1AA", + align: "center", + }); + + // Bottom bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "18181B" }, + }); + + slide2.addText("Ā© Dev Weekends 2025", { + x: 0.5, + y: 5.1, + fontSize: 9, + fontFace: "Arial", + color: "71717A", + }); + + slide2.addText("devweekends.org", { + x: 11, + y: 5.1, + fontSize: 9, + fontFace: "Arial", + color: "71717A", + }); + + return pptx.writeFile({ fileName: path.join(outputDir, "DW-Template-1-Intro.pptx") }); +} + +// ============================================ +// DEV WEEKENDS TEMPLATE 2: CONTENT SLIDE +// ============================================ +function createDWTemplate2() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "Dev Weekends - Content Template"; + pptx.author = "Dev Weekends"; + + // Slide 1 - Two Column Layout + const slide1 = pptx.addSlide(); + slide1.background = { color: "FAFAFA" }; + + // Left accent bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.1, + h: "100%", + fill: { color: "18181B" }, + }); + + // Branding + slide1.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "18181B", + charSpacing: 3, + }); + + // Section title + slide1.addText("WHAT WE DO", { + x: 0.5, + y: 1.0, + fontSize: 9, + fontFace: "Arial", + bold: true, + color: "71717A", + charSpacing: 2, + }); + + slide1.addText("Transforming Beginners\nInto Industry-Ready Engineers", { + x: 0.5, + y: 1.3, + w: 5, + fontSize: 32, + fontFace: "Arial", + bold: true, + color: "18181B", + lineSpacing: 38, + }); + + // Description + slide1.addText( + "Our comprehensive mentorship programs combine live sessions, 1:1 guidance, and hands-on projects to accelerate your engineering career.", + { + x: 0.5, + y: 2.8, + w: 5, + fontSize: 13, + fontFace: "Arial", + color: "71717A", + lineSpacing: 20, + } + ); + + // Right column - Feature cards + const features = [ + { num: "01", title: "Live Sessions", desc: "20+ interactive sessions with industry experts" }, + { num: "02", title: "1:1 Mentorship", desc: "Personal mentor for your entire journey" }, + { num: "03", title: "DSA Training", desc: "30+ intensive algorithm sessions" }, + { num: "04", title: "Job Placement", desc: "92% success rate in placements" }, + ]; + + features.forEach((f, i) => { + const col = i % 2; + const row = Math.floor(i / 2); + const xPos = 6.2 + col * 2.8; + const yPos = 0.8 + row * 2.2; + + slide1.addShape(pptx.shapes.RECTANGLE, { + x: xPos, + y: yPos, + w: 2.5, + h: 1.8, + fill: { color: "F4F4F5" }, + }); + + slide1.addText(f.num, { + x: xPos + 0.15, + y: yPos + 0.15, + fontSize: 9, + fontFace: "Arial", + bold: true, + color: "A1A1AA", + }); + + slide1.addText(f.title, { + x: xPos + 0.15, + y: yPos + 0.6, + fontSize: 14, + fontFace: "Arial", + bold: true, + color: "18181B", + }); + + slide1.addText(f.desc, { + x: xPos + 0.15, + y: yPos + 1.0, + w: 2.2, + fontSize: 10, + fontFace: "Arial", + color: "71717A", + lineSpacing: 14, + }); + }); + + // Bottom bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "18181B" }, + }); + + // Slide 2 - Process/Timeline + const slide2 = pptx.addSlide(); + slide2.background = { color: "FAFAFA" }; + + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.1, + h: "100%", + fill: { color: "18181B" }, + }); + + slide2.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "18181B", + charSpacing: 3, + }); + + slide2.addText("THE JOURNEY", { + x: 0.5, + y: 0.9, + fontSize: 9, + fontFace: "Arial", + bold: true, + color: "71717A", + charSpacing: 2, + }); + + slide2.addText("Your 4-Month Transformation", { + x: 0.5, + y: 1.2, + fontSize: 28, + fontFace: "Arial", + bold: true, + color: "18181B", + }); + + // Timeline + const months = [ + { month: "Month 1-2", title: "Foundation", desc: "Programming fundamentals, web dev basics, DSA introduction" }, + { month: "Month 3", title: "Advanced Skills", desc: "Complex algorithms, system design, real projects" }, + { month: "Month 4", title: "Industry Ready", desc: "Mock interviews, portfolio, job applications" }, + ]; + + // Timeline line + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 2.45, + w: 11.5, + h: 0.02, + fill: { color: "E4E4E7" }, + }); + + months.forEach((m, i) => { + const xPos = 0.5 + i * 4; + + // Circle marker + slide2.addShape(pptx.shapes.OVAL, { + x: xPos, + y: 2.3, + w: 0.3, + h: 0.3, + fill: { color: "18181B" }, + }); + + slide2.addText(m.month, { + x: xPos - 0.2, + y: 2.8, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "71717A", + }); + + slide2.addText(m.title, { + x: xPos - 0.2, + y: 3.1, + fontSize: 16, + fontFace: "Arial", + bold: true, + color: "18181B", + }); + + slide2.addText(m.desc, { + x: xPos - 0.2, + y: 3.5, + w: 3.5, + fontSize: 11, + fontFace: "Arial", + color: "71717A", + lineSpacing: 16, + }); + }); + + // Bottom bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "18181B" }, + }); + + return pptx.writeFile({ fileName: path.join(outputDir, "DW-Template-2-Content.pptx") }); +} + +// ============================================ +// DEV WEEKENDS TEMPLATE 3: STATS/IMPACT +// ============================================ +function createDWTemplate3() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "Dev Weekends - Stats Template"; + pptx.author = "Dev Weekends"; + + // Slide 1 - Stats Dark Theme + const slide1 = pptx.addSlide(); + slide1.background = { color: "18181B" }; + + // Yellow accent bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.1, + h: "100%", + fill: { color: "FEF08A" }, + }); + + // Branding + slide1.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.3, + fontSize: 12, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + charSpacing: 4, + }); + + slide1.addText("BY THE NUMBERS", { + x: 0.5, + y: 0.55, + fontSize: 8, + fontFace: "Arial", + color: "71717A", + charSpacing: 2, + }); + + // Section title + slide1.addText("OUR IMPACT", { + x: 0.5, + y: 1.1, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "FEF08A", + charSpacing: 3, + }); + + slide1.addText("Making a Difference", { + x: 0.5, + y: 1.4, + fontSize: 36, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + // Stats cards + const stats = [ + { value: "30+", label: "Mentors", desc: "Industry professionals" }, + { value: "300+", label: "Mentees", desc: "Engineers trained" }, + { value: "92%", label: "Placement", desc: "Success rate" }, + { value: "5+", label: "Years", desc: "Empowering engineers" }, + ]; + + stats.forEach((s, i) => { + const xPos = 0.5 + i * 3; + + slide1.addShape(pptx.shapes.RECTANGLE, { + x: xPos, + y: 2.2, + w: 2.7, + h: 2.0, + fill: { color: "27272A" }, + }); + + slide1.addText(s.value, { + x: xPos + 0.2, + y: 2.4, + fontSize: 48, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + slide1.addShape(pptx.shapes.RECTANGLE, { + x: xPos + 0.2, + y: 3.2, + w: 0.6, + h: 0.03, + fill: { color: "FEF08A" }, + }); + + slide1.addText(s.label, { + x: xPos + 0.2, + y: 3.4, + fontSize: 14, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + slide1.addText(s.desc, { + x: xPos + 0.2, + y: 3.7, + fontSize: 10, + fontFace: "Arial", + color: "71717A", + }); + }); + + // Bottom text + slide1.addText("From complete beginners to industry-ready engineers", { + x: 0, + y: 4.6, + w: "100%", + fontSize: 14, + fontFace: "Arial", + color: "71717A", + align: "center", + }); + + // Decorative corner + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 11.5, + y: 0.3, + w: 0.6, + h: 0.6, + line: { color: "FEF08A", width: 1.5 }, + }); + + // Yellow bottom bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "FEF08A" }, + }); + + slide1.addText("devweekends.org", { + x: 11, + y: 5.1, + fontSize: 9, + fontFace: "Arial", + color: "71717A", + }); + + // Slide 2 - Testimonial/Quote + const slide2 = pptx.addSlide(); + slide2.background = { color: "18181B" }; + + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.1, + h: "100%", + fill: { color: "FEF08A" }, + }); + + slide2.addText("DEV WEEKENDS", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + charSpacing: 3, + }); + + slide2.addText("TESTIMONIAL", { + x: 0.5, + y: 1.0, + fontSize: 9, + fontFace: "Arial", + bold: true, + color: "FEF08A", + charSpacing: 2, + }); + + // Quote marks + slide2.addText('"', { + x: 0.3, + y: 1.2, + fontSize: 120, + fontFace: "Georgia", + color: "27272A", + }); + + // Quote text + slide2.addText( + "Dev Weekends was the turning point in my career. The mentorship, the community support, and the structured learning path helped me land my dream job.", + { + x: 1.5, + y: 2.0, + w: 9, + fontSize: 22, + fontFace: "Georgia", + italic: true, + color: "A3A3A3", + lineSpacing: 32, + } + ); + + // Author + slide2.addText("— Mentee Name, Software Engineer @ Company", { + x: 1.5, + y: 4.0, + fontSize: 12, + fontFace: "Arial", + color: "71717A", + }); + + // Yellow bottom bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.35, + w: "100%", + h: 0.15, + fill: { color: "FEF08A" }, + }); + + return pptx.writeFile({ fileName: path.join(outputDir, "DW-Template-3-Stats.pptx") }); +} + +// ============================================ +// MINDMASTER TEMPLATE 1: INTRO SLIDE +// ============================================ +function createMMTemplate1() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "MindMaster - Intro Template"; + pptx.author = "MindMaster - Dev Weekends"; + + // Slide 1 - Title + const slide1 = pptx.addSlide(); + slide1.background = { color: "0A0A0A" }; + + // Gold accent bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.05, + h: "100%", + fill: { color: "D4A574" }, + }); + + // Branding + slide1.addText("MINDMASTER", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + color: "D4A574", + charSpacing: 6, + }); + + slide1.addText("A DEV WEEKENDS INITIATIVE", { + x: 0.5, + y: 0.55, + fontSize: 8, + fontFace: "Arial", + color: "525252", + charSpacing: 3, + }); + + // Decorative circles + slide1.addShape(pptx.shapes.OVAL, { + x: 10.5, + y: 0.5, + w: 1.5, + h: 1.5, + line: { color: "262626", width: 1 }, + }); + + slide1.addShape(pptx.shapes.OVAL, { + x: 10.65, + y: 0.65, + w: 1.2, + h: 1.2, + line: { color: "262626", width: 1 }, + }); + + slide1.addShape(pptx.shapes.OVAL, { + x: 10.8, + y: 0.8, + w: 0.9, + h: 0.9, + line: { color: "D4A574", width: 0.5, transparency: 60 }, + }); + + // Tagline + slide1.addText("BEYOND CODE, THERE'S THE MIND", { + x: 0.5, + y: 1.8, + fontSize: 9, + fontFace: "Arial", + color: "525252", + charSpacing: 4, + }); + + // Main title + slide1.addText("Your Presentation\nTitle Here", { + x: 0.5, + y: 2.3, + w: 9, + fontSize: 48, + fontFace: "Georgia", + color: "FAFAFA", + lineSpacing: 58, + }); + + // Divider + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 4.1, + w: 1, + h: 0.01, + fill: { color: "D4A574" }, + }); + + // Subtitle + slide1.addText("A journey into psychology, purpose, and peak performance", { + x: 0.5, + y: 4.35, + fontSize: 14, + fontFace: "Georgia", + italic: true, + color: "737373", + }); + + // Presenter + slide1.addText("Presenter Name", { + x: 0.5, + y: 5.0, + fontSize: 12, + fontFace: "Arial", + color: "FAFAFA", + }); + + slide1.addText("Date", { + x: 0.5, + y: 5.25, + fontSize: 10, + fontFace: "Arial", + color: "525252", + }); + + // Bottom line + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.48, + w: "100%", + h: 0.01, + fill: { color: "262626" }, + }); + + slide1.addText("mindmaster.devweekends.org", { + x: 10, + y: 5.2, + fontSize: 9, + fontFace: "Arial", + color: "525252", + }); + + // Slide 2 - Quote/Wisdom + const slide2 = pptx.addSlide(); + slide2.background = { color: "0A0A0A" }; + + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.05, + h: "100%", + fill: { color: "D4A574" }, + }); + + slide2.addText("MINDMASTER", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + color: "D4A574", + charSpacing: 6, + }); + + // Category tag + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 0.9, + w: 1.5, + h: 0.25, + fill: { color: "1A1A1A" }, + }); + + slide2.addText("WISDOM", { + x: 0.55, + y: 0.93, + fontSize: 8, + fontFace: "Arial", + color: "D4A574", + charSpacing: 2, + }); + + // Large quote mark + slide2.addText('"', { + x: 0.2, + y: 1.2, + fontSize: 150, + fontFace: "Georgia", + color: "1A1A1A", + }); + + // Quote + slide2.addText( + "The mind is everything.\nWhat you think, you become.", + { + x: 1.5, + y: 2.2, + w: 9, + fontSize: 36, + fontFace: "Georgia", + italic: true, + color: "A3A3A3", + lineSpacing: 48, + } + ); + + // Author + slide2.addText("— Buddha", { + x: 1.5, + y: 4.0, + fontSize: 14, + fontFace: "Arial", + color: "525252", + }); + + // Bottom line + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.48, + w: "100%", + h: 0.01, + fill: { color: "262626" }, + }); + + return pptx.writeFile({ fileName: path.join(outputDir, "MindMaster-Template-1-Intro.pptx") }); +} + +// ============================================ +// MINDMASTER TEMPLATE 2: CONTENT +// ============================================ +function createMMTemplate2() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "MindMaster - Content Template"; + pptx.author = "MindMaster - Dev Weekends"; + + // Slide 1 - Three Pillars + const slide1 = pptx.addSlide(); + slide1.background = { color: "0A0A0A" }; + + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.05, + h: "100%", + fill: { color: "D4A574" }, + }); + + slide1.addText("MINDMASTER", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + color: "D4A574", + charSpacing: 6, + }); + + slide1.addText("01", { + x: 11.8, + y: 0.3, + fontSize: 12, + fontFace: "Arial", + color: "525252", + }); + + // Title + slide1.addText("The Three Pillars of Growth", { + x: 0.5, + y: 1.0, + fontSize: 32, + fontFace: "Georgia", + color: "FAFAFA", + }); + + // Three columns + const pillars = [ + { + num: "01", + title: "Psychology of Excellence", + desc: "Understanding how the mind works is the first step to mastering it. Cognitive biases, decision-making, and peak performance.", + }, + { + num: "02", + title: "Time & Energy Mastery", + desc: "Time management is energy management. Learn frameworks from top performers to structure your days for maximum impact.", + }, + { + num: "03", + title: "The Spiritual Dimension", + desc: "Purpose, meaning, and inner peace. Finding balance between ambition and contentment in your engineering journey.", + }, + ]; + + pillars.forEach((p, i) => { + const xPos = 0.5 + i * 4; + + slide1.addText(p.num, { + x: xPos, + y: 1.9, + fontSize: 10, + fontFace: "Arial", + color: "D4A574", + charSpacing: 2, + }); + + slide1.addText(p.title, { + x: xPos, + y: 2.3, + w: 3.5, + fontSize: 18, + fontFace: "Arial", + bold: true, + color: "FAFAFA", + }); + + slide1.addText(p.desc, { + x: xPos, + y: 2.9, + w: 3.5, + fontSize: 11, + fontFace: "Arial", + color: "737373", + lineSpacing: 18, + }); + }); + + // Bottom decorative line + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 4.5, + w: 0.5, + h: 0.01, + fill: { color: "D4A574" }, + }); + + slide1.addText("KEY INSIGHT", { + x: 0.5, + y: 4.7, + fontSize: 8, + fontFace: "Arial", + color: "525252", + charSpacing: 2, + }); + + slide1.addText("True growth happens when you master both the technical and the mental.", { + x: 0.5, + y: 4.95, + fontSize: 13, + fontFace: "Georgia", + color: "A3A3A3", + }); + + // Bottom line + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.48, + w: "100%", + h: 0.01, + fill: { color: "262626" }, + }); + + slide1.addText("Ā© MindMaster 2025", { + x: 0.5, + y: 5.2, + fontSize: 9, + fontFace: "Arial", + color: "525252", + }); + + slide1.addText("A Dev Weekends Initiative", { + x: 10.2, + y: 5.2, + fontSize: 9, + fontFace: "Arial", + color: "525252", + }); + + // Slide 2 - Book/Talk Recommendation + const slide2 = pptx.addSlide(); + slide2.background = { color: "0A0A0A" }; + + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 0, + w: 0.05, + h: "100%", + fill: { color: "D4A574" }, + }); + + slide2.addText("MINDMASTER", { + x: 0.5, + y: 0.3, + fontSize: 10, + fontFace: "Arial", + color: "D4A574", + charSpacing: 6, + }); + + // Category + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 0.9, + w: 1.8, + h: 0.25, + fill: { color: "1A1A1A" }, + }); + + slide2.addText("BOOK OF THE WEEK", { + x: 0.6, + y: 0.93, + fontSize: 8, + fontFace: "Arial", + color: "D4A574", + charSpacing: 2, + }); + + // Book visual placeholder + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.5, + y: 1.5, + w: 2.5, + h: 3.5, + fill: { color: "1A1A1A" }, + line: { color: "262626", width: 1 }, + }); + + slide2.addText("Book\nCover", { + x: 0.5, + y: 2.8, + w: 2.5, + fontSize: 14, + fontFace: "Arial", + color: "525252", + align: "center", + }); + + // Book details + slide2.addText("Deep Work", { + x: 3.5, + y: 1.5, + fontSize: 28, + fontFace: "Georgia", + color: "FAFAFA", + }); + + slide2.addText("by Cal Newport", { + x: 3.5, + y: 2.0, + fontSize: 14, + fontFace: "Arial", + color: "737373", + }); + + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 3.5, + y: 2.4, + w: 0.8, + h: 0.01, + fill: { color: "D4A574" }, + }); + + slide2.addText( + "Rules for Focused Success in a Distracted World. A guide to cultivating deep work habits in an age of constant distraction and shallow tasks.", + { + x: 3.5, + y: 2.7, + w: 7, + fontSize: 13, + fontFace: "Arial", + color: "A3A3A3", + lineSpacing: 22, + } + ); + + // Key takeaways + slide2.addText("KEY TAKEAWAYS", { + x: 3.5, + y: 3.8, + fontSize: 9, + fontFace: "Arial", + color: "D4A574", + charSpacing: 2, + }); + + const takeaways = [ + "Embrace boredom - resist the urge to switch tasks", + "Schedule deep work blocks religiously", + "Quit social media (or drastically limit it)", + ]; + + takeaways.forEach((t, i) => { + slide2.addText("• " + t, { + x: 3.5, + y: 4.1 + i * 0.35, + fontSize: 11, + fontFace: "Arial", + color: "737373", + }); + }); + + // Bottom line + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, + y: 5.48, + w: "100%", + h: 0.01, + fill: { color: "262626" }, + }); + + return pptx.writeFile({ fileName: path.join(outputDir, "MindMaster-Template-2-Content.pptx") }); +} + +// ============================================ +// RUN ALL GENERATORS +// ============================================ +async function generateAll() { + console.log("šŸš€ Generating PowerPoint templates...\n"); + + try { + await createDWTemplate1(); + console.log("āœ… Created: DW-Template-1-Intro.pptx"); + + await createDWTemplate2(); + console.log("āœ… Created: DW-Template-2-Content.pptx"); + + await createDWTemplate3(); + console.log("āœ… Created: DW-Template-3-Stats.pptx"); + + await createMMTemplate1(); + console.log("āœ… Created: MindMaster-Template-1-Intro.pptx"); + + await createMMTemplate2(); + console.log("āœ… Created: MindMaster-Template-2-Content.pptx"); + + console.log("\nšŸŽ‰ All PowerPoint templates generated successfully!"); + console.log(`šŸ“ Output directory: ${outputDir}`); + } catch (error) { + console.error("āŒ Error generating templates:", error); + } +} + +generateAll();