Skip to content

gavande1/learn-wp

Repository files navigation

WordPress Certification Tutorial

A comprehensive, interactive study guide for the Advanced Professional WordPress Developer certification exam. This Next.js application provides detailed tutorials covering all 8 exam sections with progress tracking, markdown content rendering, and a modern, responsive interface.

🌐 Live Demo: https://gavande1.github.io/learn-wp/

🎯 Features

  • 8 Comprehensive Exam Sections covering all certification topics
  • 60+ Detailed Topics with in-depth explanations and exam tips
  • Interactive Progress Tracking - mark topics as complete and track your overall progress
  • Markdown Content Rendering - beautifully formatted content with syntax highlighting
  • Responsive Design - works seamlessly on desktop, tablet, and mobile devices
  • Dark/Light Theme Support - comfortable reading in any lighting condition
  • Content Caching - fast content loading with intelligent prefetching
  • Navigation - easy navigation between topics with previous/next buttons
  • Progress Dashboard - visualize your learning progress across all sections

πŸ“š Exam Sections

  1. WordPress Core (15%) - Hooks, APIs, core systems, and WordPress fundamentals
  2. Custom Development (15%) - Building custom solutions, blocks, themes, and plugins
  3. Security (15%) - Security best practices, vulnerability prevention, and secure coding
  4. Performance (15%) - Optimization, caching, and efficient resource usage
  5. Testing & Quality Assurance (10%) - Unit, integration, and E2E testing
  6. Debugging & Troubleshooting (10%) - Diagnosing and resolving WordPress issues
  7. Scalability & Architecture (10%) - Designing scalable WordPress solutions
  8. Disaster Recovery (10%) - Backup and recovery strategies

πŸ› οΈ Tech Stack

πŸ“ Project Structure

β”œβ”€β”€ app/                          # Next.js App Router pages
β”‚   β”œβ”€β”€ [section]/               # Dynamic section routes
β”‚   β”‚   β”œβ”€β”€ [topic]/             # Dynamic topic routes
β”‚   β”‚   β”‚   └── page.tsx         # Topic detail page
β”‚   β”‚   └── page.tsx             # Section overview page
β”‚   β”œβ”€β”€ progress/                # Progress tracking page
β”‚   β”œβ”€β”€ layout.tsx               # Root layout with theme provider
β”‚   β”œβ”€β”€ page.tsx                 # Home page
β”‚   └── globals.css              # Global styles
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ CodeExample.tsx          # Code block component
β”‚   β”œβ”€β”€ MarkdownRenderer.tsx     # Markdown content renderer
β”‚   β”œβ”€β”€ Navigation.tsx            # Sidebar navigation
β”‚   β”œβ”€β”€ ProgressTracker.tsx      # Progress visualization
β”‚   β”œβ”€β”€ SectionCard.tsx          # Section card component
β”‚   β”œβ”€β”€ TopicCard.tsx            # Topic card component
β”‚   └── TopicLink.tsx            # Topic navigation link
β”œβ”€β”€ contexts/                     # React contexts
β”‚   └── ThemeContext.tsx         # Theme management
β”œβ”€β”€ lib/                          # Utility libraries
β”‚   β”œβ”€β”€ content-cache.ts         # Content caching and fetching
β”‚   β”œβ”€β”€ exam-data.ts             # Exam structure and metadata
β”‚   β”œβ”€β”€ progress.ts              # Progress tracking logic
β”‚   └── utils.ts                 # General utilities
β”œβ”€β”€ public/                       # Static assets
β”‚   └── content/                 # Markdown content files
β”‚       β”œβ”€β”€ wordpress-core/      # WordPress Core topics
β”‚       β”œβ”€β”€ custom-development/  # Custom Development topics
β”‚       β”œβ”€β”€ security/            # Security topics
β”‚       β”œβ”€β”€ performance/        # Performance topics
β”‚       β”œβ”€β”€ testing-quality/    # Testing & QA topics
β”‚       β”œβ”€β”€ debugging-troubleshooting/ # Debugging topics
β”‚       β”œβ”€β”€ scalability-architecture/ # Scalability topics
β”‚       └── disaster-recovery/   # Disaster Recovery topics
β”œβ”€β”€ types/                        # TypeScript type definitions
β”‚   └── exam.ts                  # Exam data types
β”œβ”€β”€ package.json                  # Dependencies and scripts
β”œβ”€β”€ tailwind.config.ts           # Tailwind CSS configuration
β”œβ”€β”€ tsconfig.json                # TypeScript configuration
└── next.config.js               # Next.js configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 20.9.0+ and npm (or yarn/pnpm)
  • Git

Note: This project uses Next.js 16 with React 19, which requires Node.js 20.9.0 or later. Make sure you have the correct Node.js version installed.

Installation

  1. Clone the repository

    git clone <repository-url>
    cd learning
  2. Install dependencies

    npm install
  3. Run the development server

    npm run dev
  4. Open your browser Navigate to http://localhost:3000

Build for Production

npm run build
npm start

πŸ“ Content Management

Adding New Topics

  1. Add topic metadata in lib/exam-data.ts:

    {
      id: "topic-id",
      title: "Topic Title"
    }
  2. Create markdown file in public/content/{section-id}/{topic-id}.md:

    # Topic Title
    
    Content goes here...

Content Structure

Each markdown file can include:

  • Headings - Use # for main title, ## for sections
  • Code blocks - Use triple backticks with language identifier
  • Lists - Bullet points and numbered lists
  • Exam Tips - Use ## Exam Points section for exam-specific tips
  • Links - Standard markdown link syntax

Exam Points Format

The application supports exam points with explanations:

## Exam Points

- **Point Title**: Detailed explanation of the exam point...
- **Another Point**: Another detailed explanation...

🎨 Customization

Theme

The application uses CSS variables for theming. Modify app/globals.css to customize colors:

:root {
  --background: #ffffff;
  --foreground: #000000;
  --primary: #3b82f6;
  /* ... */
}

Styling

The project uses Tailwind CSS. Modify tailwind.config.ts to customize the design system.

πŸ”§ Development

Available Scripts

  • npm run dev - Start development server with Turbopack (Next.js 16 default)
  • npm run build - Build for production
  • npm start - Start production server
  • npm run lint - Run ESLint (v9+)

Recent Updates

  • Next.js 16: Upgraded to the latest version with Turbopack as the default bundler
  • React 19: Upgraded to React 19.2+ for improved performance and new features
  • ESLint 9: Updated to ESLint 9 for better compatibility with Next.js 16

Code Style

  • Use TypeScript for type safety
  • Follow Next.js App Router conventions
  • Use 4 tabs for indentation (not spaces)
  • Follow existing code patterns and practices
  • React 19 features: Uses useTransition for smooth content loading

πŸ“Š Progress Tracking

Progress is stored in browser localStorage with the key wordpress-cert-progress. The data structure:

{
  "section-id": {
    "topic-id": true
  }
}

🚒 Deployment

Live Application: The application is deployed and available at https://gavande1.github.io/learn-wp/

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Deploy automatically

Other Platforms

The application can be deployed to any platform that supports Next.js:

  • Netlify
  • AWS Amplify
  • Railway
  • DigitalOcean App Platform

πŸ“„ License

This project is for educational purposes. Check the license file for details.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ž Support

For issues or questions, please open an issue in the repository.


Note: This is a study guide for the Advanced Professional WordPress Developer certification exam. It is not affiliated with WordPress.org or the certification program.

About

A comprehensive, interactive study guide for the Advanced Professional WordPress Developer certification exam.

Topics

Resources

Stars

Watchers

Forks

Contributors