diff --git a/components/footer.tsx b/components/footer.tsx index 9af7d5e..891fecf 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -29,6 +29,11 @@ export default function Footer() { icon: Twitter, url: 'https://twitter.com/devweekends', }, + { + name: 'Linktree', + icon: null, // Custom SVG below + url: 'https://linktr.ee/DevWeekends', + }, ] return ( @@ -56,12 +61,17 @@ export default function Footer() { > {social.icon ? ( - ) : ( + ) : social.name === 'Discord' ? ( // Discord custom icon - )} + ) : social.name === 'Linktree' ? ( + // Linktree custom icon + + + + ) : null} ))} diff --git a/images/templates/fellowship/slides/summer-fellowship-2025-kickoff.html b/images/templates/fellowship/slides/summer-fellowship-2025-kickoff.html new file mode 100644 index 0000000..bafad17 --- /dev/null +++ b/images/templates/fellowship/slides/summer-fellowship-2025-kickoff.html @@ -0,0 +1,1097 @@ + + + + + + Dev Weekends Summer Fellowship 2025 - Kick-Off + + + + + +
+
01 / 14
+
Use arrow keys or buttons to navigate
+ + + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+ +

Summer Fellowship 2025

+

Kick-Off Session

+ +
+
+ +
Zeeshan Adil
+
Founder
+
+
+ +
Qurban Ali
+
Co-Founder
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+

About Us

+

What is Dev Weekends?

+
+ +
+
+
    +
  • A community-driven initiative
  • +
  • Encourages collaboration among developers
  • +
  • Designed to foster growth and learning
  • +
  • Creates a supportive environment
  • +
+
+
+
    +
  • Provides a platform for learning
  • +
  • Offers resources to expand knowledge
  • +
  • Sharing knowledge together
  • +
  • Building projects as a team
  • +
+
+
+
+ + +
+ + +
+
01
+ +
+
+ +
+ Fellowship +
+
+ +
+

Core Values

+

Our Ideology

+

The principles that guide everything we do.

+ +
+
+
PURPOSE
+

Having a Bigger Purpose in Life

+

Fostering a community where sharing ideas and resources is prioritized over rivalry.

+
+
+
LEARNING
+

Continuous Learning

+

Encouraging a culture where every member seeks to expand their knowledge and skills.

+
+
+
EMPOWERMENT
+

Empowerment Through Knowledge Sharing

+

Creating opportunities for individuals to share insights and experiences to uplift the community.

+
+
+
+ + +
+ + +
+
+
+ +
+ Fellowship +
+
+ +
+

The Fellowship

+

Purpose & Plan

+

What you'll gain from this experience.

+ +
+
+
01
+

Real-World Experience

+

Participants gain hands-on experience in the tech industry, preparing them for future careers.

+
+
+
02
+

Mentorship Opportunities

+

Access to industry professionals who provide guidance and support throughout the fellowship.

+
+
+
03
+

Skill Development

+

Fellows will enhance their technical skills, making them more competitive in the job market.

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+
+
+

Roadmap

+

Plan for the Summer

+
+

A structured approach to maximize your growth this season.

+
+ +
+
+
WORKSHOPS
+

Engage in workshops focused on key technologies. Learn about the latest technologies that are shaping the industry.

+
+
+
MENTORSHIP
+

Participate in mentorship sessions. Gain insights and guidance from experienced professionals in your field.

+
+
+
REAL PROJECTS
+

Collaborate on team projects with real clients. Apply your skills in practical scenarios and build real-world solutions.

+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+

Career Path

+

How to Plan Your 4 Years

+

Strategic focus areas for your university journey.

+ +
+
+
TECH
+

Technical Skills

+

+ SDDC
+ Open Source Contributions
+ System Design
+ Full-Stack Development +

+
+
+
ECA
+

Extra-Curricular

+

+ IELTS Preparation
+ Leadership Roles
+ Hacker Cup / Competitions
+ Community Building +

+
+
+
THEORY
+

Academic Foundation

+

+ DSA & Algorithms
+ Computer Science Fundamentals
+ Research & Writing
+ Diverse Tech Exploration +

+
+
+
+ + +
+ + +
+
vs
+ +
+
+ +
+ Fellowship +
+
+ +
+

Mindset Matters

+

Developer vs Engineer Mindset

+

Understanding the difference in approach.

+ +
+
+
Developer
+
Focused on Coding
+
Developers are primarily concerned with the practical aspects of creating software and applications. Building solutions, writing code, shipping features.
+
+
+
Engineer
+
Focused on Design
+
Engineers take a broader view, focusing on how different components fit together to create a cohesive system. Architecture, scalability, maintainability.
+
+
+
+ + +
+ + +
+
+
+ +
+ Fellowship +
+
+ +
+

Experience

+

A Day at Dev Weekends

+

Your journey with mentors and peers.

+ +
+
+
SESSION 01
+

Hands-on Coding Sessions

+

Engage in practical coding exercises that enhance your skills and build real-world experience.

+
+
+
SESSION 02
+

Collaboration on Projects

+

Work alongside peers to develop innovative projects that solve real problems.

+
+
+
SESSION 03
+

Networking Opportunities

+

Connect with mentors and fellow participants for future opportunities and growth.

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+

Beyond Code

+

Reflection & Talks

+

Holistic growth through introspection and discussion.

+ +
+
+
15-MINUTE REFLECTION
+

Write Your Thoughts

+

Take a moment to introspect and jot down your feelings about the fellowship experience. Self-awareness drives growth.

+
+
+
TALK 01
+

Mindset Talk

+

Engage in discussions that foster a growth mindset among participants. Challenge your thinking.

+
+
+
TALK 02
+

Tech Love Talk

+

Share your passion for technology and its impact on our lives. Connect through shared interests.

+
+
+
TALK 03
+

Spiritual Time Talk

+

Explore spiritual aspects and connect with your inner self during this session. Find deeper meaning.

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ Fellowship +
+
+ +
+ + +

Let's Build Something
Together

+
+ +
+
+
Date
+
Saturday, 29 Nov
+
+
+
Time (SLT)
+
6:05 PM
+
+
+
Time (CST)
+
1:35 PM
+
+
+
Mode
+
Online
+
+
+ +
+
Join Us
+
devweekends.com/fellowship
+
+
+ + +
+ +
+ + + + + diff --git a/images/templates/mindmaster/slides/psychology-of-excellence.html b/images/templates/mindmaster/slides/psychology-of-excellence.html new file mode 100644 index 0000000..8a3131b --- /dev/null +++ b/images/templates/mindmaster/slides/psychology-of-excellence.html @@ -0,0 +1,1214 @@ + + + + + + Psychology of Excellence - MindMaster + + + + + + +
+
+ +
+
+ +
+ MindMaster +
+
01 / 15
+
+ +
+

A Closed Community for Thinkers

+

Psychology of
Excellence

+
+

Understanding the mental frameworks that separate exceptional engineers from the rest. Beyond code, there's the mind.

+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
02 / 15
+
+ +
+

The Central Question

+

What separates
the top 1%?

+

It's not intelligence. It's not hours worked. It's the way they think, learn, and approach challenges.

+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
03 / 15
+
+ +
+

Research Findings

+

The Excellence Gap

+

Studies reveal that psychological factors account for the majority of performance differences between engineers.

+ +
+
+
10x
+
Productivity Gap
+
+
+
80%
+
Mindset Driven
+
+
+
15%
+
Technical Skills
+
+
+
5%
+
Raw Intelligence
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
04 / 15
+
+ +
+

Framework

+

Four Pillars of
Mental Excellence

+ +
+
+
01
+

Growth Mindset

+

Believing abilities can be developed through dedication and hard work.

+
+
+
02
+

Deep Focus

+

The ability to concentrate without distraction on cognitively demanding tasks.

+
+
+
03
+

Deliberate Practice

+

Purposeful, systematic practice designed to improve specific aspects of performance.

+
+
+ +
+
+
04
+

Resilience

+

The capacity to recover quickly from difficulties and adapt to challenges.

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
05 / 15
+
+ +
+
+
+

Pillar One

+

Growth
Mindset

+
+

Dr. Carol Dweck's research at Stanford revealed that our beliefs about our abilities profoundly affect our success.

+
+ +
+
+
Fixed Mindset
+
"I'm not a math person"
+
Avoids challenges
+
Gives up easily
+
Ignores feedback
+
Feels threatened by others
+
+
+
Growth Mindset
+
"I can learn anything"
+
Embraces challenges
+
Persists through setbacks
+
Learns from criticism
+
Inspired by others' success
+
+
+
+
+ + +
+ + +
+
02
+ +
+
+ +
+ MindMaster +
+
06 / 15
+
+ +
+
+
+

Pillar Two

+

Deep
Focus

+
+

Cal Newport's concept of "Deep Work" โ€” the ability to focus without distraction on cognitively demanding tasks.

+ +
    +
  • Eliminate all distractions
  • +
  • Time-block your deep work sessions
  • +
  • Build focus like a muscle
  • +
  • Learn to embrace boredom
  • +
+
+ +
+
+
THE FORMULA
+
+ High-Quality Work = Time ร— Intensity +
+

The output of your work is directly proportional to the time spent multiplied by the intensity of your focus. Shallow work produces shallow results.

+
+ +
+
THE RATIO
+
+
+
80%
+
Deep Work
+
+
+
20%
+
Shallow Work
+
+
+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
07 / 15
+
+ +
+

Pillar Three

+

Deliberate Practice

+

Not all practice is equal. Deliberate practice is the gold standard.

+ +
+
+
01
+
Specific Goals
+
+
โ†’
+
+
02
+
Stretch Zone
+
+
โ†’
+
+
03
+
Immediate Feedback
+
+
โ†’
+
+
04
+
Repeat & Refine
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
08 / 15
+
+ +
+

Common Misconception

+

The 10,000 Hour Myth

+

It's not about the hours. It's about how you spend those hours. Quality of practice matters more than quantity.

+ +
+
+
10,000
+
Hours
+

Mindless repetition without purpose

+
+
+
5,000
+
Hours
+

Focused practice with some structure

+
+
+
2,000
+
Hours
+

Deliberate practice with feedback

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
09 / 15
+
+ +
+
+
+

Pillar Four

+

Building
Resilience

+
+

The path to excellence is paved with failures. What matters is how you respond to setbacks.

+
+ +
+
+

Recognize the Setback

+

Acknowledge what happened without judgment. It's data, not defeat.

+
+
+

Reframe the Narrative

+

This is not failure, it's feedback. What can you learn from this experience?

+
+
+

Recover Strategically

+

Take a break if needed, but come back with a concrete plan.

+
+
+

Return Stronger

+

Apply the lessons learned and iterate on your approach.

+
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
10 / 15
+
+ +
+
+

"The master has failed more times than the beginner has even tried."

+
+
+
+
Stephen McCranie
+
Illustrator & Author
+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
11 / 15
+
+ +
+

Know Your Enemy

+

Cognitive Biases
That Hold You Back

+ +
+
+
IMPOSTOR SYNDROME
+

Self-Doubt Despite Success

+

Doubting your abilities despite evidence of competence. Remember: even the most accomplished feel this way.

+
+
+
CONFIRMATION BIAS
+

Seeking Validation

+

Seeking information that confirms existing beliefs. Actively look for contradicting evidence.

+
+
+
DUNNING-KRUGER
+

Overestimating Competence

+

The less you know, the more confident you are. Stay humble and keep learning.

+
+
+
SUNK COST FALLACY
+

Past Investment Trap

+

Continuing due to past investment rather than future value. Focus on what's ahead.

+
+
+
PLANNING FALLACY
+

Underestimating Time

+

Underestimating time needed for tasks. Always add buffer to your estimates.

+
+
+
ANCHORING BIAS
+

First Impression Lock

+

Over-relying on first information received. Always seek multiple perspectives.

+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
12 / 15
+
+ +
+
+
+

Actionable Habits

+

Daily Practices

+
+ +
    +
  • Morning: 10 minutes of meditation or journaling
  • +
  • Priority: Tackle the hardest task first
  • +
  • Focus: 90-minute deep work blocks
  • +
  • Review: Daily reflection on what worked
  • +
  • Rest: 7-8 hours of quality sleep
  • +
+
+ +
+
THE COMPOUND EFFECT
+

The Power of Small Wins

+

Research shows that small daily progress creates a positive cycle of motivation and achievement.

+ +
+
1% better daily = 37x better in a year
+
Consistency beats intensity
+
Systems over goals
+
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
13 / 15
+
+ +
+

The Formula

+

The Excellence Equation

+ +
+ Growth Mindset + + + Deep Focus + + + Deliberate Practice + + + Resilience +
+ +
= Excellence
+ +

Excellence is not a destination. It's a continuous process of becoming.

+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
14 / 15
+
+ +
+
+
+

Take Action

+

Your 7-Day
Action Plan

+
+ +
+
WEEK 1: FOUNDATION
+
+

Day 1-2: Identify your fixed mindset triggers

+

Day 3-4: Set up a distraction-free workspace

+

Day 5-6: Define one skill to deliberately practice

+

Day 7: Reflect and plan for week 2

+
+
+
+ +
+
+
ONGOING HABITS
+

Build the System

+
+

Morning: 5-10 min mindset priming

+

Daily: 2 hours of deep work minimum

+

Weekly: Review and adjust practice plan

+

Monthly: Seek feedback from mentors

+
+
+ +
+
KEY QUESTION
+

"What's the one thing I can do today that makes everything else easier or unnecessary?"

+
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
15 / 15
+
+ +
+

Thank You

+

Beyond Code,
There's the Mind

+
+

Join our weekly MindMaster sessions and grow with a community that understands true engineering excellence.

+ +
+
+
Discord
+
discord.gg/devweekends
+
+
+
Website
+
devweekends.com
+
+
+
MindMaster
+
devweekends.com/mindmaster
+
+
+
+ + +
+ + + diff --git a/images/templates/mindmaster/slides/time-energy-mastery.html b/images/templates/mindmaster/slides/time-energy-mastery.html new file mode 100644 index 0000000..1f93ef8 --- /dev/null +++ b/images/templates/mindmaster/slides/time-energy-mastery.html @@ -0,0 +1,1179 @@ + + + + + + Time & Energy Mastery - MindMaster + + + + + + +
+
+ +
+
+ +
+ MindMaster +
+
01 / 15
+
+ +
+

A Closed Community for Thinkers

+

Time & Energy
Mastery

+
+

Time management is energy management. Learn to work with your natural rhythms and multiply your productivity without burning out.

+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
02 / 15
+
+ +
+

The Reality Check

+

Everyone has the same
24 hours

+

The difference isn't time management โ€” it's energy management. You can't create more time, but you can multiply your energy.

+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
03 / 15
+
+ +
+

The Science

+

Four Types of Energy

+

Your output depends on four interconnected energy sources. Neglect one, and the others suffer.

+ +
+
+
PHYSICAL
+

The Foundation

+

Sleep, nutrition, exercise. Everything else depends on this.

+
+
+
EMOTIONAL
+

The Fuel

+

Positive emotions, relationships, self-confidence.

+
+
+
MENTAL
+

The Focus

+

Concentration, creativity, analytical thinking capacity.

+
+
+
SPIRITUAL
+

The Why

+

Purpose, meaning, connection to something larger.

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
04 / 15
+
+ +
+
+
+

Know Yourself

+

Your Biological
Prime Time

+
+

Everyone has 2-4 hours of peak cognitive performance each day. Identify yours and protect it fiercely.

+ +
    +
  • Morning Larks: Peak at 6AM - 10AM
  • +
  • Night Owls: Peak at 9PM - 1AM
  • +
  • Third Birds: Peak at 10AM - 2PM
  • +
+
+ +
+
+
TYPICAL ENERGY CURVE
+ +
+ 6 AM +
+
+
+ 9 AM +
+
+
+ 12 PM +
+
+
+ 3 PM +
+
+
+ 6 PM +
+
+
+ 9 PM +
+
+
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
05 / 15
+
+ +
+

Prioritization Framework

+

The Eisenhower Matrix

+

Not everything that's urgent is important. Learn to distinguish between them.

+ +
+
+
Urgent + Important
+
Do First
+
Crisis, deadlines, emergencies
+
+
+
Not Urgent + Important
+
Schedule
+
Deep work, learning, planning
+
+
+
Urgent + Not Important
+
Delegate
+
Interruptions, some meetings
+
+
+
Not Urgent + Not Important
+
Eliminate
+
Time wasters, distractions
+
+
+
+ + +
+ + +
+
TB
+ +
+
+ +
+ MindMaster +
+
06 / 15
+
+ +
+
+
+

Strategy

+

Time
Blocking

+
+

Don't work from a to-do list. Block your calendar like a meeting with yourself.

+ +
+

Block your peak hours for deep work

+

Batch similar tasks together

+

Add buffer time between blocks

+

Treat blocks as sacred appointments

+
+
+ +
+
+
6:00 - 7:00
+
+
Morning Routine
+
Exercise, meditation, journaling
+
+
+
+
7:00 - 10:00
+
+
Deep Work Block
+
Most challenging coding task
+
+
+
+
10:00 - 11:00
+
+
Communication Block
+
Emails, Slack, meetings
+
+
+
+
11:00 - 12:00
+
+
Admin Block
+
Reviews, documentation, planning
+
+
+
+
1:00 - 4:00
+
+
Project Work
+
Feature development, debugging
+
+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
07 / 15
+
+ +
+

Technique

+

The Pomodoro Technique

+

Work in focused sprints with strategic breaks to maintain energy throughout the day.

+ +
+
+
25
+
Minutes Focus
+
+
โ†’
+
+
5
+
Minutes Break
+
+
โ†’
+
+
4ร—
+
Then Long Break
+
+
+ +

After 4 pomodoros, take a longer 15-30 minute break to fully recharge.

+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
08 / 15
+
+ +
+

Watch Out

+

Energy Vampires

+

These hidden drains silently kill your productivity. Identify and eliminate them.

+ +
+
+
CONTEXT SWITCHING
+

The 23-Minute Tax

+

Every switch costs 23 minutes to refocus. Batch similar tasks and protect deep work blocks.

+
+
+
NOTIFICATIONS
+

The Attention Thief

+

Turn them all off. Check messages on your schedule, not others'.

+
+
+
DECISION FATIGUE
+

The Willpower Drain

+

Every decision depletes willpower. Automate routine choices.

+
+
+
POOR SLEEP
+

The Compound Debt

+

Sleep debt compounds. One bad night equals 4 hours of lost productivity.

+
+
+
BLOOD SUGAR
+

The Afternoon Crash

+

High-carb meals cause slumps. Eat protein-rich, low-glycemic foods.

+
+
+
UNRESOLVED STRESS
+

The Mental Bandwidth

+

Anxiety consumes mental capacity. Address problems, don't suppress them.

+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
09 / 15
+
+ +
+
+

"Time is what we want most, but what we use worst."

+
+
+
+
William Penn
+
Founder of Pennsylvania
+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
10 / 15
+
+ +
+
+
+

Pareto Principle

+

The 80/20
Rule

+
+

80% of results come from 20% of efforts. Identify your high-leverage activities.

+ +
    +
  • What 20% of work drives 80% of value?
  • +
  • What 80% can you eliminate or delegate?
  • +
  • Double down on what works
  • +
+
+ +
+
+
High-Value (20%)
+
System architecture decisions
+
Solving hard bugs
+
Learning core concepts
+
Code reviews for critical systems
+
+
+
Low-Value (80%)
+
Meetings without clear agenda
+
Perfecting already-working code
+
Tutorial hopping
+
Bikeshedding on minor issues
+
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
11 / 15
+
+ +
+

Counterintuitive Truth

+

Rest is Productive

+

Strategic rest isn't laziness โ€” it's the secret weapon of high performers.

+ +
+
+
7-9
+
Hours Sleep
+
+
+
1
+
Day Off Weekly
+
+
+
15
+
Min Walks
+
+
+
0
+
Guilt
+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
12 / 15
+
+ +
+

System

+

The Weekly Review

+

30 minutes every Sunday to plan the week ahead. Non-negotiable.

+ +
+
+
01
+

Review

+

+ What got done?
+ What didn't? Why?
+ Energy patterns?
+ Key wins? +

+
+
+
02
+

Plan

+

+ 3 big priorities
+ Time block calendar
+ Buffer for unexpected
+ Schedule rest +

+
+
+
03
+

Prepare

+

+ Clear inbox to zero
+ Organize workspace
+ Prep materials needed
+ Visualize success +

+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
13 / 15
+
+ +
+

Recommendations

+

Productivity Tools

+

The best tool is the one you'll actually use. Start simple.

+ +
+
+
NOTES
+

Notion / Obsidian

+

Knowledge management and planning

+
+
+
CALENDAR
+

Google Calendar

+

Time blocking and scheduling

+
+
+
FOCUS
+

Forest / Pomofocus

+

Focus timer and distraction blocker

+
+
+
TRACKING
+

Toggl Track

+

Time tracking and analysis

+
+
+
+ + +
+ + +
+
+
+ +
+ MindMaster +
+
14 / 15
+
+ +
+
+
+

Start Today

+

Your Action
Steps

+
+ +
    +
  • Track your energy for one week
  • +
  • Identify your biological prime time
  • +
  • Block your calendar for next week
  • +
  • Turn off all notifications
  • +
  • Schedule your weekly review
  • +
+
+ +
+
THE ONE THING
+

"What's the one thing I can do, such that by doing it, everything else will be easier or unnecessary?"

+

โ€” Gary Keller, The ONE Thing

+ +
+

Ask this question every morning before you start work.

+
+
+
+
+ + +
+ + +
+
+ +
+
+ +
+ MindMaster +
+
15 / 15
+
+ +
+

Thank You

+

Master Your Time,
Master Your Life

+
+

Join our weekly MindMaster sessions for more frameworks on productivity, psychology, and purposeful living.

+ +
+
+
Discord
+
discord.gg/devweekends
+
+
+
Website
+
devweekends.com
+
+
+
MindMaster
+
devweekends.com/mindmaster
+
+
+
+ + +
+ + + diff --git a/images/templates/ppt/DevWeekends-Fellowship-Complete-Presentation.pptx b/images/templates/ppt/DevWeekends-Fellowship-Complete-Presentation.pptx new file mode 100644 index 0000000..029dad2 Binary files /dev/null and b/images/templates/ppt/DevWeekends-Fellowship-Complete-Presentation.pptx differ diff --git a/images/templates/ppt/MindMaster-Complete-Presentation.pptx b/images/templates/ppt/MindMaster-Complete-Presentation.pptx new file mode 100644 index 0000000..9d4e33c Binary files /dev/null and b/images/templates/ppt/MindMaster-Complete-Presentation.pptx differ diff --git a/images/templates/ppt/dev-weekends-fellowship-2025.pptx b/images/templates/ppt/dev-weekends-fellowship-2025.pptx new file mode 100644 index 0000000..7d6afc4 Binary files /dev/null and b/images/templates/ppt/dev-weekends-fellowship-2025.pptx differ diff --git a/scripts/generate-fellowship-ppt.js b/scripts/generate-fellowship-ppt.js new file mode 100644 index 0000000..84b299c --- /dev/null +++ b/scripts/generate-fellowship-ppt.js @@ -0,0 +1,1115 @@ +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 FELLOWSHIP PRESENTATION - 15 SLIDES +// "From Mentee to Industry-Ready Engineer" +// ============================================ +function createFellowshipPresentation() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "Dev Weekends Fellowship 2025"; + pptx.author = "Dev Weekends"; + pptx.subject = "Fellowship Program Overview"; + + // Color palette + const colors = { + dark: "18181B", + light: "FAFAFA", + gray: "71717A", + lightGray: "A1A1AA", + yellow: "FEF08A", + yellowDark: "EAB308", + muted: "F4F4F5", + blue: "3B82F6", + green: "10B981", + purple: "8B5CF6", + orange: "F97316", + red: "EF4444", + }; + + // ============================================ + // SLIDE 1: TITLE SLIDE + // ============================================ + const slide1 = pptx.addSlide(); + slide1.background = { color: colors.dark }; + + // Yellow accent bar at top + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Brand + slide1.addText("DEV WEEKENDS", { + x: 0.6, y: 0.5, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 4, + }); + + // Main title + slide1.addText("FELLOWSHIP", { + x: 0.6, y: 1.4, fontSize: 80, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + + // Year badge + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 2.8, w: 1.5, h: 0.5, + fill: { color: colors.yellow }, + }); + slide1.addText("2025", { + x: 0.6, y: 2.88, w: 1.5, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + + // Subtitle + slide1.addText("From Mentee to Industry-Ready Engineer", { + x: 0.6, y: 3.5, fontSize: 22, fontFace: "Arial", + color: colors.lightGray, + }); + + // Program highlights + slide1.addText("3 Months โ€ข 30 DSA Sessions โ€ข 12 Engineering Projects", { + x: 0.6, y: 4.1, fontSize: 14, fontFace: "Arial", + color: colors.gray, charSpacing: 1, + }); + + // Stats row + const stats1 = [ + { num: "30", label: "DSA Sessions" }, + { num: "12", label: "Weekend Projects" }, + { num: "300+", label: "LeetCode Problems" }, + { num: "100%", label: "Free" }, + ]; + stats1.forEach((stat, i) => { + slide1.addText(stat.num, { + x: 0.6 + i * 2.8, y: 4.6, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide1.addText(stat.label, { + x: 0.6 + i * 2.8, y: 5.0, fontSize: 10, fontFace: "Arial", + color: colors.gray, charSpacing: 1, + }); + }); + + // Decorative corner element + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 11.2, y: 0.4, w: 1.5, h: 1.5, + line: { color: colors.yellow, width: 2 }, + }); + + // Bottom bar + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 5.42, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // ============================================ + // SLIDE 2: THE PROBLEM WE SOLVE + // ============================================ + const slide2 = pptx.addSlide(); + slide2.background = { color: colors.light }; + + // Header bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide2.addText("THE GAP WE BRIDGE", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide2.addText("Brilliant Minds. Broken System.", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide2.addText("01", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Three problems + const problems = [ + { + num: "01", + title: "The Education Gap", + desc: "Universities teach syntax. Industry needs systems thinking, problem-solving, and the ability to build at scale." + }, + { + num: "02", + title: "No Roadmap", + desc: "Brilliant minds stuck without direction. No mentors to guide them toward global careers." + }, + { + num: "03", + title: "Learning Alone", + desc: "Self-learning without community means falling behind. No accountability, no support." + }, + ]; + + problems.forEach((prob, i) => { + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 2.5, + fill: { color: colors.muted }, + }); + slide2.addText(prob.num, { + x: 0.8 + i * 4.1, y: 1.55, fontSize: 36, fontFace: "Arial", + bold: true, color: colors.lightGray, + }); + slide2.addText(prob.title, { + x: 0.8 + i * 4.1, y: 2.2, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide2.addText(prob.desc, { + x: 0.8 + i * 4.1, y: 2.6, w: 3.5, fontSize: 11, fontFace: "Arial", + color: colors.gray, lineSpacing: 15, + }); + }); + + // Solution banner + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.2, w: 11.7, h: 0.8, + fill: { color: colors.dark }, + }); + slide2.addText("We built something different. Free. Intensive. Life-changing.", { + x: 0.6, y: 4.4, w: 11.7, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + + // ============================================ + // SLIDE 3: PROGRAM OVERVIEW + // ============================================ + const slide3 = pptx.addSlide(); + slide3.background = { color: colors.dark }; + + slide3.addText("PROGRAM OVERVIEW", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide3.addText("What Makes Us Different", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide3.addText("02", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Three main components + const components = [ + { + title: "DSA Grind Sessions", + sessions: "30 Deep Sessions", + icon: "๐Ÿง ", + details: ["3 sessions per week", "2 hours each session", "20+ hours pre-recorded", "LeetCode 100-1000+"] + }, + { + title: "Engineering Grind", + sessions: "12 Weekend Sessions", + icon: "โšก", + details: ["Every weekend session", "JS, React, Redux, Node", "Database & Architecture", "AWS, Docker, K8s"] + }, + { + title: "Deep Grind Projects", + sessions: "12 Major Projects", + icon: "๐Ÿš€", + details: ["1 project per weekend", "Expert mentor guidance", "Industry-standard code", "Portfolio-ready apps"] + }, + ]; + + components.forEach((comp, i) => { + slide3.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 3.5, + fill: { color: "3F3F46" }, + }); + slide3.addText(comp.icon, { + x: 0.6 + i * 4.1, y: 1.6, w: 3.9, fontSize: 36, fontFace: "Arial", + align: "center", + }); + slide3.addText(comp.title, { + x: 0.6 + i * 4.1, y: 2.3, w: 3.9, fontSize: 15, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + slide3.addText(comp.sessions, { + x: 0.6 + i * 4.1, y: 2.7, w: 3.9, fontSize: 11, fontFace: "Arial", + color: colors.yellow, align: "center", + }); + comp.details.forEach((detail, j) => { + slide3.addText("โ€ข " + detail, { + x: 0.9 + i * 4.1, y: 3.15 + j * 0.4, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + }); + }); + + // ============================================ + // SLIDE 4: THREE TRACKS + // ============================================ + const slide4 = pptx.addSlide(); + slide4.background = { color: colors.light }; + + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide4.addText("CHOOSE YOUR PATH", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide4.addText("Three Tracks. One Mission.", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide4.addText("03", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const tracks = [ + { + level: "Beginner Track", + subtitle: "All Foundations Covered", + color: colors.green, + highlights: ["Programming fundamentals", "Web technologies", "Data structures basics", "First portfolio projects", "Mentorship support"], + badge: "Mentee โ†’ Fellow (Bronze)" + }, + { + level: "Intermediate Track", + subtitle: "4 Advanced Sessions", + color: colors.blue, + highlights: ["Advanced data structures", "Complex algorithms", "System design fundamentals", "Multiple tech stacks", "Interview preparation"], + badge: "Fellow (Bronze) โ†’ Fellow (Silver)" + }, + { + level: "Advanced Track", + subtitle: "4 Expert Sessions", + color: colors.purple, + highlights: ["Complex system architecture", "Advanced optimization", "Leadership & mentoring", "Industry collaboration", "Expert certifications"], + badge: "Fellow (Silver) โ†’ Fellow (Gold)" + }, + ]; + + tracks.forEach((track, i) => { + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 3.7, + line: { color: track.color, width: 2 }, + }); + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 0.5, + fill: { color: track.color }, + }); + slide4.addText(track.level, { + x: 0.6 + i * 4.1, y: 1.5, w: 3.9, fontSize: 13, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + slide4.addText(track.subtitle, { + x: 0.6 + i * 4.1, y: 2.05, w: 3.9, fontSize: 10, fontFace: "Arial", + color: colors.gray, align: "center", + }); + track.highlights.forEach((hl, j) => { + slide4.addText("โœ“ " + hl, { + x: 0.8 + i * 4.1, y: 2.5 + j * 0.38, fontSize: 10, fontFace: "Arial", + color: colors.dark, + }); + }); + // Badge at bottom + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0.75 + i * 4.1, y: 4.55, w: 3.6, h: 0.4, + fill: { color: colors.muted }, + }); + slide4.addText(track.badge, { + x: 0.75 + i * 4.1, y: 4.62, w: 3.6, fontSize: 9, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + }); + + // ============================================ + // SLIDE 5: 3-MONTH TIMELINE + // ============================================ + const slide5 = pptx.addSlide(); + slide5.background = { color: colors.muted }; + + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide5.addText("PROGRAM TIMELINE", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide5.addText("Your 3-Month Journey", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide5.addText("04", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Timeline + const timeline = [ + { + week: "Week 1-4", + title: "Foundation & Skill Building", + desc: "Master DSA, development environment setup, and start building your first projects", + milestone: "Complete Projects & DSA" + }, + { + week: "Week 5-8", + title: "Open Source & Advanced", + desc: "Dive into advanced DSA, system design, and contribute to open source projects like GSoC", + milestone: "Open Source Contributions" + }, + { + week: "Week 9-12", + title: "Industry & Remote Jobs", + desc: "Work on complex projects, prepare for remote job interviews, and build your professional portfolio", + milestone: "Remote Job Ready" + }, + ]; + + // Timeline line + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 1.5, y: 1.8, w: 0.08, h: 3.0, + fill: { color: colors.gray }, + }); + + timeline.forEach((item, i) => { + const yPos = 1.6 + i * 1.1; + // Node + slide5.addShape(pptx.shapes.OVAL, { + x: 1.35, y: yPos + 0.15, w: 0.35, h: 0.35, + fill: { color: colors.dark }, + }); + // Content card + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 2.1, y: yPos, w: 9.5, h: 0.95, + fill: { color: colors.light }, + line: { color: colors.gray, width: 0.5 }, + }); + slide5.addText(item.week, { + x: 2.3, y: yPos + 0.08, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.blue, + }); + slide5.addText(item.title, { + x: 2.3, y: yPos + 0.33, fontSize: 13, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide5.addText(item.desc, { + x: 2.3, y: yPos + 0.6, w: 6.5, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + // Milestone badge + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 9.3, y: yPos + 0.25, w: 2.1, h: 0.45, + fill: { color: colors.yellowDark }, + }); + slide5.addText("๐Ÿ† " + item.milestone, { + x: 9.35, y: yPos + 0.33, w: 2, fontSize: 8, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + }); + + // ============================================ + // SLIDE 6: TECH STACK + // ============================================ + const slide6 = pptx.addSlide(); + slide6.background = { color: colors.dark }; + + slide6.addText("TECH STACK", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide6.addText("What You'll Master", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide6.addText("05", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const techStack = [ + { name: "JavaScript", hours: "2 hours", category: "Frontend" }, + { name: "React", hours: "2 hours", category: "Frontend" }, + { name: "Redux", hours: "2 hours", category: "State" }, + { name: "Node.js", hours: "2 hours", category: "Backend" }, + { name: "Database Design", hours: "2 hours", category: "Data" }, + { name: "System Architecture", hours: "2 hours", category: "Design" }, + { name: "Next.js", hours: "2 hours", category: "Fullstack" }, + { name: "Microservices", hours: "3x HLD", category: "Architecture" }, + { name: "AWS", hours: "2 hours", category: "Cloud" }, + { name: "Docker", hours: "2 hours", category: "DevOps" }, + { name: "Kubernetes", hours: "2 hours", category: "DevOps" }, + { name: "CI/CD", hours: "2 hours", category: "DevOps" }, + ]; + + techStack.forEach((tech, i) => { + const col = i % 4; + const row = Math.floor(i / 4); + slide6.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 3.05, y: 1.4 + row * 1.25, w: 2.9, h: 1.1, + fill: { color: "3F3F46" }, + }); + slide6.addText(tech.name, { + x: 0.75 + col * 3.05, y: 1.55 + row * 1.25, fontSize: 13, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide6.addText(tech.category, { + x: 0.75 + col * 3.05, y: 1.9 + row * 1.25, fontSize: 9, fontFace: "Arial", + color: colors.yellow, + }); + slide6.addText(tech.hours, { + x: 0.75 + col * 3.05, y: 2.15 + row * 1.25, fontSize: 9, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // ============================================ + // SLIDE 7: DSA CURRICULUM + // ============================================ + const slide7 = pptx.addSlide(); + slide7.background = { color: colors.light }; + + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide7.addText("DSA CURRICULUM", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide7.addText("30 Sessions of Algorithmic Mastery", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide7.addText("06", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const dsaTopics = [ + { phase: "Phase 1", topics: "Arrays, Strings, HashMaps, Two Pointers", problems: "100+ problems" }, + { phase: "Phase 2", topics: "Linked Lists, Stacks, Queues, Binary Search", problems: "100+ problems" }, + { phase: "Phase 3", topics: "Trees, Graphs, BFS/DFS, Recursion", problems: "100+ problems" }, + { phase: "Phase 4", topics: "Dynamic Programming, Greedy, Advanced", problems: "100+ problems" }, + ]; + + dsaTopics.forEach((phase, i) => { + const yPos = 1.4 + i * 0.95; + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: yPos, w: 11.7, h: 0.8, + fill: { color: colors.muted }, + line: { color: colors.blue, width: i === 3 ? 2 : 0.5 }, + }); + slide7.addText(phase.phase, { + x: 0.8, y: yPos + 0.2, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.blue, + }); + slide7.addText(phase.topics, { + x: 2.2, y: yPos + 0.2, w: 7.5, fontSize: 12, fontFace: "Arial", + color: colors.dark, + }); + slide7.addText(phase.problems, { + x: 10.3, y: yPos + 0.2, fontSize: 11, fontFace: "Arial", + bold: true, color: colors.green, + }); + }); + + // LeetCode progression + slide7.addText("LeetCode Progression Path:", { + x: 0.6, y: 4.4, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, + }); + + const leetcodeProgress = [ + { level: "100", label: "Bronze" }, + { level: "200", label: "Bronze+" }, + { level: "300", label: "Silver" }, + { level: "400", label: "Silver+" }, + { level: "1000+", label: "Gold" }, + ]; + + leetcodeProgress.forEach((lc, i) => { + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 2.4, y: 4.75, w: 2.2, h: 0.55, + fill: { color: i === 4 ? colors.yellowDark : colors.light }, + line: { color: colors.gray, width: 1 }, + }); + slide7.addText(lc.level + " โ†’ " + lc.label, { + x: 0.6 + i * 2.4, y: 4.85, w: 2.2, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + }); + + // ============================================ + // SLIDE 8: ACHIEVEMENT SYSTEM + // ============================================ + const slide8 = pptx.addSlide(); + slide8.background = { color: colors.dark }; + + slide8.addText("ACHIEVEMENT SYSTEM", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide8.addText("Level Up Your Career", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide8.addText("07", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const achievements = [ + { level: "Mentee", requirement: "Entry level", icon: "๐ŸŒฑ", color: colors.gray }, + { level: "Fellow", requirement: "Complete basic track", icon: "โญ", color: colors.lightGray }, + { level: "Fellow (Bronze)", requirement: "LeetCode 100-200", icon: "๐Ÿฅ‰", color: "CD7F32" }, + { level: "Fellow (Silver)", requirement: "LeetCode 300-400", icon: "๐Ÿฅˆ", color: "C0C0C0" }, + { level: "Fellow (Gold)", requirement: "LeetCode 1000+", icon: "๐Ÿฅ‡", color: colors.yellowDark }, + ]; + + achievements.forEach((ach, i) => { + slide8.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 2.45, y: 1.5, w: 2.3, h: 2.8, + fill: { color: "3F3F46" }, + line: { color: ach.color, width: 2 }, + }); + slide8.addText(ach.icon, { + x: 0.6 + i * 2.45, y: 1.7, w: 2.3, fontSize: 36, fontFace: "Arial", + align: "center", + }); + slide8.addText(ach.level, { + x: 0.6 + i * 2.45, y: 2.6, w: 2.3, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + slide8.addText(ach.requirement, { + x: 0.7 + i * 2.45, y: 3.0, w: 2.1, fontSize: 9, fontFace: "Arial", + color: colors.lightGray, align: "center", lineSpacing: 13, + }); + }); + + // Arrow progression + slide8.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.5, w: 11.7, h: 0.5, + fill: { color: "3F3F46" }, + }); + slide8.addText("๐ŸŒฑ โ†’ โญ โ†’ ๐Ÿฅ‰ โ†’ ๐Ÿฅˆ โ†’ ๐Ÿฅ‡", { + x: 0.6, y: 4.58, w: 11.7, fontSize: 20, fontFace: "Arial", + align: "center", + }); + + // ============================================ + // SLIDE 9: FELLOWSHIP PERKS + // ============================================ + const slide9 = pptx.addSlide(); + slide9.background = { color: colors.light }; + + slide9.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide9.addText("FELLOWSHIP PERKS", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide9.addText("What You Get", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide9.addText("08", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const perks = [ + "Free Access to Expert Training", + "Free Access to Paid Courses", + "Access to Partner Network", + "Part of Mentor Network", + "Recommendations to Companies", + "Personal Referral to Companies", + "VIP Access to all Events", + "Personalized Mentorship", + "Mock Interviews", + ]; + + perks.forEach((perk, i) => { + const col = i % 3; + const row = Math.floor(i / 3); + slide9.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 4.1, y: 1.4 + row * 1.1, w: 3.9, h: 0.95, + fill: { color: colors.muted }, + }); + slide9.addText("โœ“", { + x: 0.8 + col * 4.1, y: 1.55 + row * 1.1, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.green, + }); + slide9.addText(perk, { + x: 1.3 + col * 4.1, y: 1.65 + row * 1.1, w: 3, fontSize: 11, fontFace: "Arial", + color: colors.dark, + }); + }); + + // Price banner + slide9.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.75, w: 11.7, h: 0.55, + fill: { color: colors.green }, + }); + slide9.addText("๐Ÿ’ฐ Total Value: $5,000+ โ€ข Your Cost: $0 (100% FREE)", { + x: 0.6, y: 4.87, w: 11.7, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + + // ============================================ + // SLIDE 10: THREE PILLARS PHILOSOPHY + // ============================================ + const slide10 = pptx.addSlide(); + slide10.background = { color: colors.dark }; + + slide10.addText("OUR PHILOSOPHY", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide10.addText("Engineering Excellence Requires Three Pillars", { + x: 0.6, y: 0.8, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide10.addText("09", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const pillars = [ + { + num: "01", + subtitle: "The WHY", + title: "Purpose", + tagline: "Find your 'why' before your 'what'", + points: ["Spiritual grounding", "Deeper purpose beyond jobs", "Resilience through meaning", "Intentional living"] + }, + { + num: "02", + subtitle: "The MINDSET", + title: "Psychology", + tagline: "Your mindset is your most important algorithm", + points: ["Dopamine management", "Overcoming procrastination", "Growth mindset", "Building persistence"] + }, + { + num: "03", + subtitle: "The SKILLS", + title: "Practice", + tagline: "World-class engineering through deliberate practice", + points: ["DSA mastery", "Tech stack proficiency", "System design", "Open source excellence"] + }, + ]; + + pillars.forEach((pillar, i) => { + slide10.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 3.6, + fill: { color: "3F3F46" }, + }); + slide10.addText("PILLAR " + pillar.num, { + x: 0.8 + i * 4.1, y: 1.55, fontSize: 9, fontFace: "Arial", + color: colors.lightGray, charSpacing: 2, + }); + slide10.addText(pillar.subtitle, { + x: 0.8 + i * 4.1, y: 1.9, fontSize: 10, fontFace: "Arial", + color: colors.yellow, + }); + slide10.addText(pillar.title, { + x: 0.8 + i * 4.1, y: 2.2, fontSize: 20, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide10.addText("\"" + pillar.tagline + "\"", { + x: 0.8 + i * 4.1, y: 2.65, w: 3.5, fontSize: 9, fontFace: "Arial", + italic: true, color: colors.lightGray, lineSpacing: 13, + }); + pillar.points.forEach((point, j) => { + slide10.addText("โ€ข " + point, { + x: 0.8 + i * 4.1, y: 3.3 + j * 0.4, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + }); + }); + + // ============================================ + // SLIDE 11: SUCCESS METRICS + // ============================================ + const slide11 = pptx.addSlide(); + slide11.background = { color: colors.blue }; + + slide11.addText("SUCCESS METRICS", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: "93C5FD", charSpacing: 3, + }); + slide11.addText("Average Improvement Across All Fellows", { + x: 0.6, y: 0.8, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide11.addText("10", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const metrics = [ + { label: "Code Quality", value: 95 }, + { label: "Problem Solving", value: 88 }, + { label: "System Design", value: 92 }, + { label: "Interview Ready", value: 90 }, + ]; + + metrics.forEach((metric, i) => { + slide11.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 3.05, y: 1.5, w: 2.9, h: 2.5, + fill: { color: "2563EB" }, + }); + slide11.addText(metric.value + "%", { + x: 0.6 + i * 3.05, y: 1.8, w: 2.9, fontSize: 42, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + slide11.addText(metric.label, { + x: 0.6 + i * 3.05, y: 2.9, w: 2.9, fontSize: 12, fontFace: "Arial", + color: colors.light, align: "center", + }); + // Progress bar + slide11.addShape(pptx.shapes.RECTANGLE, { + x: 0.8 + i * 3.05, y: 3.35, w: 2.5, h: 0.15, + fill: { color: "1D4ED8" }, + }); + slide11.addShape(pptx.shapes.RECTANGLE, { + x: 0.8 + i * 3.05, y: 3.35, w: 2.5 * (metric.value / 100), h: 0.15, + fill: { color: colors.light }, + }); + }); + + // Bottom stats + slide11.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.3, w: 11.7, h: 0.9, + fill: { color: "2563EB" }, + }); + const bottomStats = [ + { num: "800+", label: "Engineers Trained" }, + { num: "1000+", label: "Job Placements" }, + { num: "67%", label: "Success Rate" }, + { num: "50+", label: "Universities Reached" }, + ]; + bottomStats.forEach((stat, i) => { + slide11.addText(stat.num, { + x: 1 + i * 3, y: 4.45, fontSize: 22, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide11.addText(stat.label, { + x: 1 + i * 3, y: 4.85, fontSize: 10, fontFace: "Arial", + color: "93C5FD", + }); + }); + + // ============================================ + // SLIDE 12: MEGA CAPSTONE PROJECT + // ============================================ + const slide12 = pptx.addSlide(); + slide12.background = { color: colors.light }; + + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide12.addText("CAPSTONE PROJECT", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide12.addText("The Crown Jewel of Your Portfolio", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide12.addText("11", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Main description + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 1.4, w: 7, h: 2.0, + fill: { color: colors.dark }, + }); + slide12.addText("Industry-Level Project", { + x: 0.8, y: 1.6, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide12.addText("Work on a comprehensive industry-level project under the guidance of 2 expert mentors. This project will be the crown jewel of your portfolio.", { + x: 0.8, y: 2.1, w: 6.6, fontSize: 12, fontFace: "Arial", + color: colors.lightGray, lineSpacing: 18, + }); + + // What you'll build + slide12.addText("What You'll Build:", { + x: 8, y: 1.5, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, + }); + const capstoneFeatures = [ + "Full-stack application", + "Microservices architecture", + "Cloud deployment (AWS)", + "CI/CD pipeline", + "Documentation & tests", + ]; + capstoneFeatures.forEach((feat, i) => { + slide12.addText("โœ“ " + feat, { + x: 8, y: 1.85 + i * 0.35, fontSize: 11, fontFace: "Arial", + color: colors.dark, + }); + }); + + // Mentorship badge + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 3.6, w: 11.7, h: 0.7, + fill: { color: colors.muted }, + }); + slide12.addText("๐Ÿ‘ฅ 2 Expert Mentors โ€ข ๐Ÿ“… 4 Weeks Duration โ€ข ๐ŸŽฏ Portfolio Ready โ€ข ๐Ÿ’ผ Job Interview Asset", { + x: 0.6, y: 3.78, w: 11.7, fontSize: 11, fontFace: "Arial", + color: colors.dark, align: "center", + }); + + // Tech stack used + slide12.addText("Tech Stack:", { + x: 0.6, y: 4.5, fontSize: 11, fontFace: "Arial", + bold: true, color: colors.gray, + }); + const capTech = ["React", "Node.js", "MongoDB", "Docker", "AWS", "GitHub Actions"]; + capTech.forEach((tech, i) => { + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 2 + i * 1.7, y: 4.45, w: 1.5, h: 0.4, + fill: { color: colors.dark }, + }); + slide12.addText(tech, { + x: 2 + i * 1.7, y: 4.52, w: 1.5, fontSize: 9, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + }); + + // ============================================ + // SLIDE 13: DEV WEEKENDS ECOSYSTEM + // ============================================ + const slide13 = pptx.addSlide(); + slide13.background = { color: colors.muted }; + + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide13.addText("DEV WEEKENDS ECOSYSTEM", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide13.addText("Part of Something Bigger", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide13.addText("12", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Quote + slide13.addText("\"We don't just teach code. We build engineers who change lives.\"", { + x: 0.6, y: 1.35, w: 11.5, fontSize: 18, fontFace: "Arial", + italic: true, color: colors.dark, align: "center", + }); + + // Ecosystem cards + const ecosystem = [ + { name: "Fellowship", desc: "3-month intensive training program", icon: "๐ŸŽ“", highlight: true }, + { name: "Mentorship", desc: "1-on-1 career guidance", icon: "๐Ÿงญ", highlight: false }, + { name: "MindMaster", desc: "Personal growth community", icon: "๐Ÿง ", highlight: false }, + { name: "Community", desc: "20,000+ member network", icon: "๐ŸŒ", highlight: false }, + ]; + + ecosystem.forEach((item, i) => { + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 3.05, y: 2.0, w: 2.9, h: 1.8, + fill: { color: item.highlight ? colors.dark : colors.light }, + line: { color: item.highlight ? colors.yellow : colors.gray, width: item.highlight ? 2 : 1 }, + }); + slide13.addText(item.icon, { + x: 0.6 + i * 3.05, y: 2.15, w: 2.9, fontSize: 28, fontFace: "Arial", + align: "center", + }); + slide13.addText(item.name, { + x: 0.6 + i * 3.05, y: 2.8, w: 2.9, fontSize: 13, fontFace: "Arial", + bold: true, color: item.highlight ? colors.light : colors.dark, align: "center", + }); + slide13.addText(item.desc, { + x: 0.7 + i * 3.05, y: 3.15, w: 2.7, fontSize: 9, fontFace: "Arial", + color: item.highlight ? colors.lightGray : colors.gray, align: "center", + }); + }); + + // Global stats + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.0, w: 11.7, h: 1.2, + fill: { color: colors.dark }, + }); + const globalStats = [ + { num: "20,000+", label: "Community Members" }, + { num: "7", label: "Countries" }, + { num: "50+", label: "Universities" }, + { num: "100%", label: "Free Forever" }, + ]; + globalStats.forEach((stat, i) => { + slide13.addText(stat.num, { + x: 1 + i * 3, y: 4.2, fontSize: 24, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide13.addText(stat.label, { + x: 1 + i * 3, y: 4.65, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // ============================================ + // SLIDE 14: HOW TO APPLY + // ============================================ + const slide14 = pptx.addSlide(); + slide14.background = { color: colors.dark }; + + slide14.addText("HOW TO APPLY", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide14.addText("Your Journey Starts Here", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide14.addText("13", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Application steps + const appSteps = [ + { num: "01", title: "Fill Application Form", desc: "Complete the online application with your background and goals" }, + { num: "02", title: "Initial Screening", desc: "Our team reviews applications for commitment and potential" }, + { num: "03", title: "Orientation Call", desc: "Brief call to understand your goals and answer questions" }, + { num: "04", title: "Welcome to Fellowship", desc: "Start your 3-month transformation journey" }, + ]; + + appSteps.forEach((step, i) => { + const yPos = 1.4 + i * 0.9; + slide14.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: yPos, w: 11.5, h: 0.75, + fill: { color: "3F3F46" }, + }); + slide14.addText(step.num, { + x: 0.8, y: yPos + 0.18, fontSize: 20, fontFace: "Arial", + bold: true, color: colors.yellow, + }); + slide14.addText(step.title, { + x: 1.8, y: yPos + 0.1, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide14.addText(step.desc, { + x: 1.8, y: yPos + 0.42, w: 9.5, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // Application note + slide14.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.85, w: 11.5, h: 0.5, + fill: { color: colors.yellow }, + }); + slide14.addText("๐Ÿ“ Applications open seasonally. Limited spots available each cohort.", { + x: 0.6, y: 4.95, w: 11.5, fontSize: 11, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + + // ============================================ + // SLIDE 15: CTA / CLOSING + // ============================================ + const slide15 = pptx.addSlide(); + slide15.background = { color: colors.dark }; + + // Yellow accent bar at top + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Main message + slide15.addText("Ready to Transform\nYour Career?", { + x: 0.6, y: 1.0, w: 11.5, fontSize: 48, fontFace: "Arial", + bold: true, color: colors.light, align: "center", lineSpacing: 58, + }); + + slide15.addText("Join 800+ engineers who have transformed their careers\nthrough the Dev Weekends Fellowship.", { + x: 0.6, y: 2.5, w: 11.5, fontSize: 16, fontFace: "Arial", + color: colors.lightGray, align: "center", lineSpacing: 24, + }); + + // CTAs + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 3.5, y: 3.4, w: 3, h: 0.7, + fill: { color: colors.light }, + }); + slide15.addText("Apply Now โ†’", { + x: 3.5, y: 3.5, w: 3, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 6.8, y: 3.4, w: 3, h: 0.7, + line: { color: colors.light, width: 1.5 }, + }); + slide15.addText("Join Discord", { + x: 6.8, y: 3.5, w: 3, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + + // What you get summary + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 1.5, y: 4.3, w: 10, h: 0.55, + fill: { color: "3F3F46" }, + }); + slide15.addText("30 DSA Sessions โ€ข 12 Projects โ€ข Expert Mentorship โ€ข 100% Free", { + x: 1.5, y: 4.42, w: 10, fontSize: 12, fontFace: "Arial", + color: colors.light, align: "center", + }); + + // Footer + slide15.addText("devweekends.org/fellowship", { + x: 0.6, y: 5.0, w: 11.5, fontSize: 12, fontFace: "Arial", + color: colors.gray, align: "center", + }); + + // Brand + slide15.addText("DEV WEEKENDS", { + x: 0.6, y: 5.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.gray, charSpacing: 3, + }); + + // Bottom bar + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 5.42, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Save + const outputPath = path.join(outputDir, "DevWeekends-Fellowship-Complete-Presentation.pptx"); + pptx.writeFile({ fileName: outputPath }) + .then(() => console.log(`โœ… Created: ${outputPath}`)) + .catch(err => console.error(`โŒ Error: ${err}`)); +} + +// Run the generator +createFellowshipPresentation(); +console.log("\n๐ŸŽ“ Dev Weekends Fellowship Presentation Generator Complete!\n"); diff --git a/scripts/generate-mindmaster-ppt.js b/scripts/generate-mindmaster-ppt.js new file mode 100644 index 0000000..364650a --- /dev/null +++ b/scripts/generate-mindmaster-ppt.js @@ -0,0 +1,1035 @@ +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 }); +} + +// ============================================ +// MINDMASTER PRESENTATION - 15 SLIDES +// "Beyond Code, There's the Mind" +// ============================================ +function createMindMasterPresentation() { + const pptx = new pptxgen(); + pptx.layout = "LAYOUT_16x9"; + pptx.title = "MindMaster - Beyond Code, There's the Mind"; + pptx.author = "Dev Weekends"; + pptx.subject = "MindMaster Program Overview"; + + // Color palette + const colors = { + dark: "18181B", + light: "FAFAFA", + gray: "71717A", + lightGray: "A1A1AA", + yellow: "FEF08A", + yellowDark: "EAB308", + muted: "F4F4F5", + }; + + // ============================================ + // SLIDE 1: TITLE SLIDE + // ============================================ + const slide1 = pptx.addSlide(); + slide1.background = { color: colors.dark }; + + // Top bar accent + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Brand label + slide1.addText("DEV WEEKENDS PRESENTS", { + x: 0.6, y: 0.5, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 4, + }); + + // Main Title + slide1.addText("MINDMASTER", { + x: 0.6, y: 1.6, fontSize: 72, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 2, + }); + + // Subtitle + slide1.addText("Beyond Code, There's the Mind", { + x: 0.6, y: 2.8, fontSize: 28, fontFace: "Arial", + color: colors.lightGray, italic: true, + }); + + // Tagline + slide1.addText("A Closed Community for Thinkers", { + x: 0.6, y: 3.5, fontSize: 14, fontFace: "Arial", + color: colors.gray, charSpacing: 2, + }); + + // Stats row + const stats1 = [ + { num: "200+", label: "Closed Members" }, + { num: "Weekly", label: "Deep Dives" }, + { num: "Invite", label: "Only Access" }, + ]; + stats1.forEach((stat, i) => { + slide1.addText(stat.num, { + x: 0.6 + i * 2.5, y: 4.4, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide1.addText(stat.label, { + x: 0.6 + i * 2.5, y: 4.9, fontSize: 10, fontFace: "Arial", + color: colors.gray, charSpacing: 1, + }); + }); + + // Decorative corner + slide1.addShape(pptx.shapes.RECTANGLE, { + x: 11.2, y: 0.4, w: 1.5, h: 1.5, + line: { color: colors.yellow, width: 2 }, + }); + + // Website + slide1.addText("devweekends.org/mindmaster", { + x: 0.6, y: 5.15, fontSize: 11, fontFace: "Arial", color: colors.gray, + }); + + // ============================================ + // SLIDE 2: THE PHILOSOPHY + // ============================================ + const slide2 = pptx.addSlide(); + slide2.background = { color: colors.light }; + + // Header bar + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide2.addText("OUR PHILOSOPHY", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide2.addText("Why MindMaster Exists", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide2.addText("01", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Quote block + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 1.5, w: 0.08, h: 1.2, + fill: { color: colors.yellowDark }, + }); + slide2.addText("\"Technical skills get you hired.\nMental frameworks make you exceptional.\"", { + x: 0.9, y: 1.5, w: 10, fontSize: 22, fontFace: "Arial", + italic: true, color: colors.dark, lineSpacing: 32, + }); + + // Main content + slide2.addText("The best engineers we know share one thing in common:", { + x: 0.6, y: 3.0, fontSize: 14, fontFace: "Arial", color: colors.gray, + }); + slide2.addText("They've mastered themselves before mastering code.", { + x: 0.6, y: 3.4, fontSize: 16, fontFace: "Arial", bold: true, color: colors.dark, + }); + + // Three points + const points2 = [ + { title: "Mindset", desc: "How you think determines what you build" }, + { title: "Discipline", desc: "Consistency beats intensity every time" }, + { title: "Purpose", desc: "Know your 'why' before your 'what'" }, + ]; + points2.forEach((point, i) => { + slide2.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4, y: 4.0, w: 3.5, h: 1.1, + fill: { color: colors.muted }, + }); + slide2.addText(point.title, { + x: 0.8 + i * 4, y: 4.15, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide2.addText(point.desc, { + x: 0.8 + i * 4, y: 4.5, w: 3.2, fontSize: 11, fontFace: "Arial", + color: colors.gray, + }); + }); + + // ============================================ + // SLIDE 3: THE THREE PILLARS + // ============================================ + const slide3 = pptx.addSlide(); + slide3.background = { color: colors.dark }; + + slide3.addText("THE THREE PILLARS", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide3.addText("What We Explore Together", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide3.addText("02", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const pillars = [ + { + num: "01", + title: "Psychology of Excellence", + desc: "Understanding how the mind works is the first step to mastering it. We explore cognitive biases, decision-making, and the psychology behind peak performance.", + topics: ["Cognitive Biases", "Decision Making", "Peak Performance", "Mental Models"] + }, + { + num: "02", + title: "Time & Energy Mastery", + desc: "Time management is energy management. Learn frameworks from the world's top performers to structure your days, weeks, and life for maximum impact.", + topics: ["Energy Management", "Deep Work", "Pomodoro+", "Life Design"] + }, + { + num: "03", + title: "The Spiritual Dimension", + desc: "Purpose, meaning, and inner peace. The best engineers we know have found balance between ambition and contentment.", + topics: ["Finding Purpose", "Inner Peace", "Mindfulness", "Giving Back"] + }, + ]; + + pillars.forEach((pillar, i) => { + const xPos = 0.6 + i * 4.1; + // Number + slide3.addText(pillar.num, { + x: xPos, y: 1.6, fontSize: 48, fontFace: "Arial", + bold: true, color: colors.yellow, + }); + // Title + slide3.addText(pillar.title, { + x: xPos, y: 2.4, w: 3.8, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + // Description + slide3.addText(pillar.desc, { + x: xPos, y: 2.95, w: 3.8, fontSize: 11, fontFace: "Arial", + color: colors.lightGray, lineSpacing: 16, + }); + // Topics + pillar.topics.forEach((topic, j) => { + slide3.addText("โ€ข " + topic, { + x: xPos, y: 4.1 + j * 0.35, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + }); + }); + + // ============================================ + // SLIDE 4: PSYCHOLOGY DEEP DIVE + // ============================================ + const slide4 = pptx.addSlide(); + slide4.background = { color: colors.light }; + + // Header + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide4.addText("PILLAR ONE", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.yellow, charSpacing: 3, + }); + slide4.addText("Psychology of Excellence", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide4.addText("03", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Content grid + const psychTopics = [ + { title: "Cognitive Biases", desc: "Understand the 50+ biases that cloud your judgment and learn to recognize them in real-time." }, + { title: "Decision Frameworks", desc: "First principles thinking, inversion, and second-order effects for better choices." }, + { title: "Flow States", desc: "Achieve peak performance by engineering your environment for deep focus." }, + { title: "Emotional Intelligence", desc: "Master self-awareness, self-regulation, and social skills for leadership." }, + { title: "Growth Mindset", desc: "Transform failures into feedback and challenges into opportunities." }, + { title: "Habit Engineering", desc: "Build systems that make good habits automatic and bad habits impossible." }, + ]; + + psychTopics.forEach((topic, i) => { + const col = i % 3; + const row = Math.floor(i / 3); + slide4.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 4.1, y: 1.4 + row * 1.6, w: 3.9, h: 1.4, + line: { color: colors.gray, width: 0.5 }, + }); + slide4.addText(topic.title, { + x: 0.8 + col * 4.1, y: 1.55 + row * 1.6, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide4.addText(topic.desc, { + x: 0.8 + col * 4.1, y: 1.95 + row * 1.6, w: 3.5, fontSize: 10, fontFace: "Arial", + color: colors.gray, lineSpacing: 14, + }); + }); + + // Quote + slide4.addText("\"Your brain is a supercomputer. Learn to program it.\"", { + x: 0.6, y: 4.9, fontSize: 14, fontFace: "Arial", + italic: true, color: colors.dark, + }); + + // ============================================ + // SLIDE 5: TIME & ENERGY MASTERY + // ============================================ + const slide5 = pptx.addSlide(); + slide5.background = { color: colors.muted }; + + // Header + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide5.addText("PILLAR TWO", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.yellow, charSpacing: 3, + }); + slide5.addText("Time & Energy Mastery", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide5.addText("04", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Left column - The Problem + slide5.addText("THE PROBLEM", { + x: 0.6, y: 1.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.gray, charSpacing: 2, + }); + slide5.addText("We don't have a time management problem.\nWe have an energy management problem.", { + x: 0.6, y: 1.75, w: 5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.dark, lineSpacing: 24, + }); + + const problems = [ + "Working 12+ hours but feeling unproductive", + "Constant context switching killing deep work", + "Burnout cycles that destroy consistency", + "Procrastination despite knowing better", + ]; + problems.forEach((prob, i) => { + slide5.addText("โœ— " + prob, { + x: 0.6, y: 2.7 + i * 0.4, fontSize: 11, fontFace: "Arial", color: colors.gray, + }); + }); + + // Right column - The Solution + slide5.addShape(pptx.shapes.RECTANGLE, { + x: 6.5, y: 1.4, w: 6, h: 3.5, + fill: { color: colors.light }, + line: { color: colors.dark, width: 1 }, + }); + slide5.addText("THE MINDMASTER WAY", { + x: 6.8, y: 1.6, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.dark, charSpacing: 2, + }); + + const solutions = [ + { title: "Energy Audits", desc: "Map your peak hours and protect them" }, + { title: "Deep Work Blocks", desc: "4 hours of focus > 12 hours of chaos" }, + { title: "Strategic Recovery", desc: "Rest is a skill, not a weakness" }, + { title: "Weekly Reviews", desc: "Reflection compounds improvement" }, + ]; + solutions.forEach((sol, i) => { + slide5.addText("โœ“ " + sol.title, { + x: 6.8, y: 2.1 + i * 0.6, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide5.addText(sol.desc, { + x: 7.1, y: 2.35 + i * 0.6, fontSize: 10, fontFace: "Arial", color: colors.gray, + }); + }); + + // ============================================ + // SLIDE 6: SPIRITUAL DIMENSION + // ============================================ + const slide6 = pptx.addSlide(); + slide6.background = { color: colors.dark }; + + slide6.addText("PILLAR THREE", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.yellow, charSpacing: 3, + }); + slide6.addText("The Spiritual Dimension", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide6.addText("05", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Quote + slide6.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 1.6, w: 11.5, h: 1.3, + fill: { color: "27272A" }, + }); + slide6.addText("\"What's the point of building great software if you're building a miserable life?\"", { + x: 0.9, y: 1.9, w: 11, fontSize: 18, fontFace: "Arial", + italic: true, color: colors.light, + }); + + // Four pillars of spiritual growth + const spiritual = [ + { title: "Purpose", desc: "Finding your 'why' beyond the paycheck", icon: "๐ŸŽฏ" }, + { title: "Gratitude", desc: "The antidote to ambition's dark side", icon: "๐Ÿ™" }, + { title: "Service", desc: "Giving back multiplies meaning", icon: "๐Ÿค" }, + { title: "Peace", desc: "Inner calm in a chaotic industry", icon: "โ˜ฎ๏ธ" }, + ]; + + spiritual.forEach((item, i) => { + slide6.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 3, y: 3.2, w: 2.8, h: 1.8, + fill: { color: "3F3F46" }, + }); + slide6.addText(item.icon, { + x: 0.6 + i * 3, y: 3.35, w: 2.8, fontSize: 24, fontFace: "Arial", + align: "center", + }); + slide6.addText(item.title, { + x: 0.6 + i * 3, y: 3.95, w: 2.8, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + slide6.addText(item.desc, { + x: 0.75 + i * 3, y: 4.35, w: 2.5, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, align: "center", lineSpacing: 14, + }); + }); + + // ============================================ + // SLIDE 7: TALK OF THE WEEK/MONTH CONCEPT + // ============================================ + const slide7 = pptx.addSlide(); + slide7.background = { color: colors.light }; + + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide7.addText("CURATED CONTENT", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide7.addText("Weekly & Monthly Picks", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide7.addText("06", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Two columns + // Talk of the Week + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 1.4, w: 5.7, h: 3.5, + line: { color: colors.dark, width: 1.5 }, + }); + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 1.4, w: 5.7, h: 0.45, + fill: { color: colors.dark }, + }); + slide7.addText("TALK OF THE WEEK", { + x: 0.8, y: 1.5, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 2, + }); + slide7.addText("๐ŸŽฌ Featured Video", { + x: 0.8, y: 2.1, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide7.addText("Each week, we curate the most impactful talk on psychology, productivity, or personal growth.", { + x: 0.8, y: 2.5, w: 5.2, fontSize: 11, fontFace: "Arial", + color: colors.gray, lineSpacing: 16, + }); + slide7.addText("Watch โ†’ Reflect โ†’ Discuss", { + x: 0.8, y: 3.3, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide7.addText("Every talk comes with guided reflection questions and community discussion.", { + x: 0.8, y: 3.65, w: 5.2, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + + // Talk of the Month + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 6.6, y: 1.4, w: 5.7, h: 3.5, + line: { color: colors.yellowDark, width: 1.5 }, + }); + slide7.addShape(pptx.shapes.RECTANGLE, { + x: 6.6, y: 1.4, w: 5.7, h: 0.45, + fill: { color: colors.yellowDark }, + }); + slide7.addText("TALK OF THE MONTH", { + x: 6.8, y: 1.5, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.dark, charSpacing: 2, + }); + slide7.addText("โญ Premium Deep Dive", { + x: 6.8, y: 2.1, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide7.addText("Monthly, we select a transformative piece that deserves extended study and practice.", { + x: 6.8, y: 2.5, w: 5.2, fontSize: 11, fontFace: "Arial", + color: colors.gray, lineSpacing: 16, + }); + slide7.addText("30-Day Implementation", { + x: 6.8, y: 3.3, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide7.addText("Includes a 30-day challenge to actually implement what you've learned.", { + x: 6.8, y: 3.65, w: 5.2, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + + // ============================================ + // SLIDE 8: BOOK RECOMMENDATIONS + // ============================================ + const slide8 = pptx.addSlide(); + slide8.background = { color: colors.muted }; + + slide8.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide8.addText("READING LIST", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide8.addText("Books That Changed Us", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide8.addText("07", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const books = [ + { title: "Atomic Habits", author: "James Clear", category: "Psychology", color: "3B82F6" }, + { title: "Deep Work", author: "Cal Newport", category: "Time Mastery", color: "10B981" }, + { title: "Man's Search for Meaning", author: "Viktor Frankl", category: "Spiritual", color: "8B5CF6" }, + { title: "Thinking, Fast and Slow", author: "Daniel Kahneman", category: "Psychology", color: "3B82F6" }, + { title: "The 7 Habits", author: "Stephen Covey", category: "Time Mastery", color: "10B981" }, + { title: "Meditations", author: "Marcus Aurelius", category: "Spiritual", color: "8B5CF6" }, + ]; + + books.forEach((book, i) => { + const col = i % 3; + const row = Math.floor(i / 3); + slide8.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 4.1, y: 1.4 + row * 1.7, w: 3.9, h: 1.5, + fill: { color: colors.light }, + line: { color: book.color, width: 2 }, + }); + slide8.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 4.1, y: 1.4 + row * 1.7, w: 3.9, h: 0.35, + fill: { color: book.color }, + }); + slide8.addText(book.category.toUpperCase(), { + x: 0.8 + col * 4.1, y: 1.47 + row * 1.7, fontSize: 8, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 1, + }); + slide8.addText(book.title, { + x: 0.8 + col * 4.1, y: 1.95 + row * 1.7, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, + }); + slide8.addText("by " + book.author, { + x: 0.8 + col * 4.1, y: 2.35 + row * 1.7, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + }); + + // ============================================ + // SLIDE 9: COMMUNITY FORMAT + // ============================================ + const slide9 = pptx.addSlide(); + slide9.background = { color: colors.dark }; + + slide9.addText("HOW IT WORKS", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide9.addText("The MindMaster Format", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide9.addText("08", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Weekly flow + const weeklyFlow = [ + { day: "MON", activity: "New Content Released", desc: "Weekly talk + book recommendation" }, + { day: "TUE-THU", activity: "Self-Study Period", desc: "Watch, read, reflect independently" }, + { day: "FRI", activity: "Discussion Thread", desc: "Share insights in Discord" }, + { day: "SAT", activity: "Live Session", desc: "Group discussion + Q&A" }, + { day: "SUN", activity: "Implementation", desc: "Apply one insight this week" }, + ]; + + weeklyFlow.forEach((item, i) => { + const yPos = 1.5 + i * 0.75; + slide9.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: yPos, w: 1.2, h: 0.6, + fill: { color: colors.yellow }, + }); + slide9.addText(item.day, { + x: 0.6, y: yPos + 0.15, w: 1.2, fontSize: 12, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + slide9.addText(item.activity, { + x: 2, y: yPos + 0.05, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide9.addText(item.desc, { + x: 2, y: yPos + 0.38, fontSize: 11, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // Right side - key point + slide9.addShape(pptx.shapes.RECTANGLE, { + x: 7.5, y: 1.5, w: 4.8, h: 3.3, + fill: { color: "3F3F46" }, + }); + slide9.addText("Not Just Consuming.\nActually Transforming.", { + x: 7.8, y: 1.8, w: 4.3, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.light, lineSpacing: 26, + }); + slide9.addText("We don't just share videos and books. We create structured experiences that turn information into transformation.", { + x: 7.8, y: 2.8, w: 4.3, fontSize: 12, fontFace: "Arial", + color: colors.lightGray, lineSpacing: 18, + }); + slide9.addText("Average engagement: 85%+", { + x: 7.8, y: 3.8, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.yellow, + }); + slide9.addText("of members complete weekly activities", { + x: 7.8, y: 4.15, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + + // ============================================ + // SLIDE 10: WHO IS THIS FOR + // ============================================ + const slide10 = pptx.addSlide(); + slide10.background = { color: colors.light }; + + slide10.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide10.addText("TARGET AUDIENCE", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide10.addText("Who Is MindMaster For?", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide10.addText("09", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Yes column + slide10.addText("โœ“ THIS IS FOR YOU IF:", { + x: 0.6, y: 1.4, fontSize: 12, fontFace: "Arial", + bold: true, color: "10B981", + }); + const yesPoints = [ + "You're an engineer who wants more than technical skills", + "You believe personal development is as important as coding", + "You want a community of like-minded thinkers", + "You're ready to invest time in self-mastery", + "You value depth over surface-level content", + ]; + yesPoints.forEach((point, i) => { + slide10.addText("โ€ข " + point, { + x: 0.6, y: 1.8 + i * 0.45, w: 5.5, fontSize: 11, fontFace: "Arial", + color: colors.dark, + }); + }); + + // No column + slide10.addText("โœ— THIS IS NOT FOR YOU IF:", { + x: 6.6, y: 1.4, fontSize: 12, fontFace: "Arial", + bold: true, color: "EF4444", + }); + const noPoints = [ + "You only care about coding skills", + "You prefer passive content consumption", + "You're not willing to engage in discussions", + "You want quick fixes, not real growth", + "You're not ready to question your beliefs", + ]; + noPoints.forEach((point, i) => { + slide10.addText("โ€ข " + point, { + x: 6.6, y: 1.8 + i * 0.45, w: 5.5, fontSize: 11, fontFace: "Arial", + color: colors.gray, + }); + }); + + // Note + slide10.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.4, w: 11.7, h: 0.6, + fill: { color: colors.muted }, + }); + slide10.addText("๐Ÿ’ก MindMaster is invite-only. Current members recommend engineers who would thrive in this environment.", { + x: 0.8, y: 4.55, fontSize: 11, fontFace: "Arial", + color: colors.gray, + }); + + // ============================================ + // SLIDE 11: SAMPLE TOPICS + // ============================================ + const slide11 = pptx.addSlide(); + slide11.background = { color: colors.dark }; + + slide11.addText("SAMPLE TOPICS", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide11.addText("What We've Explored", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide11.addText("10", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const topics = [ + "Dopamine Detox: Reclaiming Your Attention", + "The Art of Saying No (Without Guilt)", + "Building Anti-Fragile Routines", + "Imposter Syndrome: Friend or Foe?", + "The Stoic Engineer's Playbook", + "Energy Management > Time Management", + "Finding Meaning in Repetitive Work", + "The 5AM Club: Myth or Magic?", + "Digital Minimalism for Developers", + "Meditation for the Skeptical Mind", + "Building Your Personal Board of Directors", + "The Compound Effect of Small Choices", + ]; + + topics.forEach((topic, i) => { + const col = i % 3; + const row = Math.floor(i / 3); + slide11.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + col * 4.1, y: 1.5 + row * 0.95, w: 3.9, h: 0.8, + fill: { color: "3F3F46" }, + }); + slide11.addText(topic, { + x: 0.8 + col * 4.1, y: 1.7 + row * 0.95, w: 3.5, fontSize: 11, fontFace: "Arial", + color: colors.light, + }); + }); + + // ============================================ + // SLIDE 12: TESTIMONIALS + // ============================================ + const slide12 = pptx.addSlide(); + slide12.background = { color: colors.light }; + + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide12.addText("MEMBER VOICES", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide12.addText("What Members Say", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide12.addText("11", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + const testimonials = [ + { + quote: "MindMaster changed how I approach my career. It's not just about shipping code anymoreโ€”it's about building a life.", + name: "Software Engineer, FAANG", + }, + { + quote: "The weekly discussions are the highlight of my week. Finally, a community that talks about the things that actually matter.", + name: "Senior Developer, Startup", + }, + { + quote: "I've read hundreds of self-help books. MindMaster is the first community that helped me actually implement what I learned.", + name: "Tech Lead, Remote", + }, + ]; + + testimonials.forEach((test, i) => { + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 4.1, y: 1.4, w: 3.9, h: 2.8, + fill: { color: colors.muted }, + }); + slide12.addText("โ", { + x: 0.8 + i * 4.1, y: 1.5, fontSize: 32, fontFace: "Arial", + color: colors.yellowDark, + }); + slide12.addText(test.quote, { + x: 0.8 + i * 4.1, y: 2.1, w: 3.5, fontSize: 11, fontFace: "Arial", + italic: true, color: colors.dark, lineSpacing: 16, + }); + slide12.addText("โ€” " + test.name, { + x: 0.8 + i * 4.1, y: 3.7, fontSize: 10, fontFace: "Arial", + color: colors.gray, + }); + }); + + // Stats bar + slide12.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.5, w: 11.7, h: 0.7, + fill: { color: colors.dark }, + }); + const testimonialStats = [ + { num: "200+", label: "Active Members" }, + { num: "95%", label: "Weekly Engagement" }, + { num: "4.9/5", label: "Satisfaction Rating" }, + ]; + testimonialStats.forEach((stat, i) => { + slide12.addText(stat.num, { + x: 1.5 + i * 4, y: 4.6, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide12.addText(stat.label, { + x: 1.5 + i * 4 + 1.2, y: 4.68, fontSize: 11, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // ============================================ + // SLIDE 13: INTEGRATION WITH DEV WEEKENDS + // ============================================ + const slide13 = pptx.addSlide(); + slide13.background = { color: colors.muted }; + + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 1.1, + fill: { color: colors.dark }, + }); + slide13.addText("ECOSYSTEM", { + x: 0.6, y: 0.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.light, charSpacing: 3, + }); + slide13.addText("Part of Something Bigger", { + x: 0.6, y: 0.5, fontSize: 28, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide13.addText("12", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Dev Weekends ecosystem + slide13.addText("MindMaster is part of the Dev Weekends ecosystem:", { + x: 0.6, y: 1.4, fontSize: 14, fontFace: "Arial", + color: colors.dark, + }); + + const ecosystem = [ + { name: "Fellowship Program", desc: "3-month intensive training", highlight: false }, + { name: "MindMaster", desc: "Personal growth community", highlight: true }, + { name: "Mentorship", desc: "1-on-1 career guidance", highlight: false }, + { name: "Community", desc: "20,000+ member network", highlight: false }, + ]; + + ecosystem.forEach((item, i) => { + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0.6 + i * 3.05, y: 1.9, w: 2.9, h: 1.4, + fill: { color: item.highlight ? colors.yellowDark : colors.light }, + line: { color: item.highlight ? colors.yellowDark : colors.gray, width: 1 }, + }); + slide13.addText(item.name, { + x: 0.6 + i * 3.05, y: 2.15, w: 2.9, fontSize: 13, fontFace: "Arial", + bold: true, color: item.highlight ? colors.dark : colors.dark, align: "center", + }); + slide13.addText(item.desc, { + x: 0.6 + i * 3.05, y: 2.55, w: 2.9, fontSize: 10, fontFace: "Arial", + color: item.highlight ? colors.dark : colors.gray, align: "center", + }); + }); + + // Bottom quote + slide13.addText("\"We don't just teach code. We build engineers who change lives.\"", { + x: 0.6, y: 3.7, w: 11, fontSize: 16, fontFace: "Arial", + italic: true, color: colors.dark, + }); + slide13.addText("โ€” Dev Weekends Mission", { + x: 0.6, y: 4.2, fontSize: 11, fontFace: "Arial", + color: colors.gray, + }); + + // Stats + slide13.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.6, w: 11.7, h: 0.7, + fill: { color: colors.dark }, + }); + const ecoStats = [ + { num: "20,000+", label: "Community Members" }, + { num: "800+", label: "Engineers Trained" }, + { num: "7", label: "Countries Reached" }, + ]; + ecoStats.forEach((stat, i) => { + slide13.addText(stat.num, { + x: 1.2 + i * 4, y: 4.7, fontSize: 18, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide13.addText(stat.label, { + x: 1.2 + i * 4 + 1.6, y: 4.78, fontSize: 10, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // ============================================ + // SLIDE 14: HOW TO JOIN + // ============================================ + const slide14 = pptx.addSlide(); + slide14.background = { color: colors.dark }; + + slide14.addText("JOIN MINDMASTER", { + x: 0.6, y: 0.4, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.lightGray, charSpacing: 3, + }); + slide14.addText("How to Get Invited", { + x: 0.6, y: 0.8, fontSize: 32, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide14.addText("13", { + x: 12, y: 0.5, fontSize: 16, fontFace: "Arial", + bold: true, color: colors.light, + }); + + // Steps + const steps = [ + { num: "01", title: "Join Dev Weekends Community", desc: "Start by joining our Discord and engaging with the community" }, + { num: "02", title: "Demonstrate Growth Mindset", desc: "Show genuine interest in personal development, not just technical skills" }, + { num: "03", title: "Get Recommended", desc: "Current MindMaster members recommend engineers who would thrive" }, + { num: "04", title: "Receive Invite", desc: "Invited members get access to the closed MindMaster channels" }, + ]; + + steps.forEach((step, i) => { + const yPos = 1.5 + i * 0.95; + slide14.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: yPos, w: 11.5, h: 0.8, + fill: { color: "3F3F46" }, + }); + slide14.addText(step.num, { + x: 0.8, y: yPos + 0.2, fontSize: 20, fontFace: "Arial", + bold: true, color: colors.yellow, + }); + slide14.addText(step.title, { + x: 1.8, y: yPos + 0.1, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, + }); + slide14.addText(step.desc, { + x: 1.8, y: yPos + 0.45, w: 9.5, fontSize: 11, fontFace: "Arial", + color: colors.lightGray, + }); + }); + + // Note + slide14.addShape(pptx.shapes.RECTANGLE, { + x: 0.6, y: 4.5, w: 11.5, h: 0.6, + fill: { color: colors.yellow }, + }); + slide14.addText("๐Ÿ’ก We keep MindMaster invite-only to maintain the quality of discussions and community culture.", { + x: 0.8, y: 4.63, fontSize: 11, fontFace: "Arial", + bold: true, color: colors.dark, + }); + + // ============================================ + // SLIDE 15: CTA / CLOSING + // ============================================ + const slide15 = pptx.addSlide(); + slide15.background = { color: colors.dark }; + + // Yellow accent bar at top + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 0, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Main message + slide15.addText("Ready to Level Up?", { + x: 0.6, y: 1.2, w: 11.5, fontSize: 48, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + + slide15.addText("Join our weekly sessions where we watch, discuss, and learn together.\nIt's not just about consuming contentโ€”it's about growing with a community.", { + x: 0.6, y: 2.4, w: 11.5, fontSize: 16, fontFace: "Arial", + color: colors.lightGray, align: "center", lineSpacing: 24, + }); + + // CTAs + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 3.5, y: 3.5, w: 3, h: 0.7, + fill: { color: colors.light }, + }); + slide15.addText("Join Discord โ†’", { + x: 3.5, y: 3.6, w: 3, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.dark, align: "center", + }); + + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 6.8, y: 3.5, w: 3, h: 0.7, + line: { color: colors.light, width: 1.5 }, + }); + slide15.addText("View Sessions", { + x: 6.8, y: 3.6, w: 3, fontSize: 14, fontFace: "Arial", + bold: true, color: colors.light, align: "center", + }); + + // Footer info + slide15.addText("discord.gg/devweekends", { + x: 0.6, y: 4.6, w: 11.5, fontSize: 14, fontFace: "Arial", + color: colors.lightGray, align: "center", + }); + slide15.addText("devweekends.org/mindmaster", { + x: 0.6, y: 4.95, w: 11.5, fontSize: 12, fontFace: "Arial", + color: colors.gray, align: "center", + }); + + // Brand + slide15.addText("DEV WEEKENDS", { + x: 0.6, y: 5.15, fontSize: 10, fontFace: "Arial", + bold: true, color: colors.gray, charSpacing: 3, + }); + + // Bottom bar + slide15.addShape(pptx.shapes.RECTANGLE, { + x: 0, y: 5.42, w: "100%", h: 0.08, + fill: { color: colors.yellow }, + }); + + // Save + const outputPath = path.join(outputDir, "MindMaster-Complete-Presentation.pptx"); + pptx.writeFile({ fileName: outputPath }) + .then(() => console.log(`โœ… Created: ${outputPath}`)) + .catch(err => console.error(`โŒ Error: ${err}`)); +} + +// Run the generator +createMindMasterPresentation(); +console.log("\n๐Ÿง  MindMaster Presentation Generator Complete!\n");