Arrays
Learn JavaScript arrays -- creating, accessing, mutating, iterating with map/filter/reduce, destructuring, and the spread operator.
Learn JavaScript arrays -- creating, accessing, mutating, iterating with map/filter/reduce, destructuring, and the spread operator.
The Users & Permissions plugin, JWT authentication, user registration, roles, API tokens, and controlling access to your Strapi API.
Build a REST API with Java's built-in HttpServer -- HTTP basics, request handling, JSON serialization, routing, and exposing the task manager over HTTP.
Using Core Components, the responsive grid, navigation, header and footer, building a homepage and article page, and page properties.
Learn Java OOP basics -- classes, objects, constructors, access modifiers, encapsulation, toString, equals/hashCode, static members, and records.
CSS and JS management in AEM -- clientlib structure, categories, dependencies, embedding, proxy serving, and the ui.frontend module.
Learn Java collections -- ArrayList, HashMap, HashSet, iterating, generics, immutable collections, and choosing the right collection.
Touch UI dialogs with Granite/Coral -- field types, tabs, multifields, image upload, validation, and conditional visibility.
Environment-based configuration, PostgreSQL setup, deploying Strapi to a VPS with PM2, nginx reverse proxy, HTTPS, and security hardening.
Content Fragment Models, creating and managing fragments, the AEM GraphQL API, persisted queries, and headless content delivery.
Defining collection types, single types, field types, components, and dynamic zones in Strapi 5.
Learn Java control flow -- if/else, switch expressions, for/while/do-while loops, enhanced for-each, break, continue, and common patterns.
Learn how to make decisions and repeat actions in JavaScript with if/else, switch, ternary operators, and loops.
Extending Strapi's default CRUD controllers, creating custom actions, delegating business logic to services, and sanitizing output.
Deploy your Java REST API to a VPS -- installing the JDK, running as a systemd service, configuring nginx as a reverse proxy, and HTTPS with Let's Encrypt.
Deploy your website to a Virtual Private Server -- server setup, SSH, nginx configuration, HTTPS with Let's Encrypt, and basic security hardening.
Git repo structure, Cloud Manager pipelines, environments, Rapid Development Environments, content transfer, and going to production.
Dispatcher architecture, cache rules, filters, rewrites, vanity URLs, cache invalidation, and local Dispatcher SDK testing.
Learn Java error handling -- try/catch/finally, checked vs unchecked exceptions, custom exceptions, try-with-resources, and best practices.
Handle errors gracefully in JavaScript -- try/catch/finally, error types, custom errors, async error handling, and common patterns.
Learn how to handle user interactions in JavaScript -- event listeners, the event object, bubbling, delegation, forms, and keyboard/mouse events.
Learn Java file I/O -- Path, Files, reading and writing text files, directories, BufferedReader/Writer, and simple CSV parsing.
Learn JavaScript functions -- declarations, expressions, arrow functions, parameters, scope, closures, and callbacks.
Learn Gradle with Kotlin DSL -- project structure, dependency management, building fat JARs, and improving the REST API project with Jackson for JSON handling.
The HTML Template Language in depth -- expressions, block statements, global objects, the Use API, and best practices.
Learn enough HTML and CSS to build web pages -- document structure, semantic elements, forms, CSS selectors, the box model, flexbox, and responsive design.
Learn Java inheritance, method overriding, abstract classes, interfaces, polymorphism, sealed classes, and composition vs inheritance.
What Java is, how the JDK/JRE/JVM relate, installing the JDK, compiling and running your first program, and choosing an IDE.
What JavaScript is, where it runs, how to set up your development environment, and writing your first program.
What AEM is, the technology stack (Sling, JCR, OSGi), AEMaaCS vs on-premise, installing the SDK, generating a project with the Maven archetype, and a project structure walkthrough.
What a headless CMS is, why Strapi, installing Strapi 5, understanding the project structure, and your first look at the admin panel.
Reacting to content events with Document Service middleware, configuring webhooks, and integrating with external services.
Using the admin panel to create, edit, and publish content -- drafts, publishing workflow, media library, and bulk operations.
Learn Apache Maven -- project structure, dependency management, building fat JARs, and improving the REST API project with Gson for JSON handling.
Upload providers, S3 and Cloudinary integration, image optimization, responsive formats, upload validation, and media management.
Learn Java methods -- defining and calling static methods, parameters, return types, overloading, varargs, scope, and recursion.
Blueprints, Live Copies, rollout configurations, language copies, the translation framework, and i18n dictionaries.
Learn JavaScript objects -- literals, properties, methods, this, destructuring, spread, Object methods, and JSON.
Avoid NullPointerException with Java's Optional -- creation, unwrapping, chaining, and best practices for handling missing values.
OSGi bundles, services, the component lifecycle, the Web Console, and configuration management in AEM.
Build a multi-page vanilla JavaScript website from scratch -- navigation, theme toggle, form validation, dynamic content, and local storage.
Build a complete command-line task manager in Java -- CRUD operations, file-based persistence, input validation, and packaging as a runnable JAR.
Master JavaScript regular expressions -- patterns, character classes, quantifiers, groups, lookaheads, and practical validation examples.
Defining one-to-one, one-to-many, and many-to-many relations between content types to build a blog data model.
Strapi's auto-generated REST API -- endpoints, filtering, sorting, pagination, field selection, population, and testing with curl.
Custom routes for new endpoints, access control policies, request/response middleware, and the Strapi request lifecycle.
Injecting JCR content into Java models -- annotations, adaptables, child resources, OSGi services, exporters, and best practices.
Functional Java -- lambda expressions, method references, the Stream API, and practical data processing pipelines.
Editable templates, template types, structure vs initial content, component policies, allowed components, and page structure.
Write your first Java tests -- JUnit 5 setup, assertions, test structure, parameterized tests, and testing the Task Manager and REST API.
Learn how JavaScript interacts with web pages through the DOM -- selecting elements, modifying content, creating and removing elements, and traversing the tree.
The Java Content Repository, node types and properties, resource resolution, CRXDE Lite, and how Apache Sling maps URLs to content.
TypeScript adds static types to JavaScript -- learn type annotations, interfaces, generics, union types, and how to set up a TypeScript project.
Setting up TypeScript in Strapi 5, generating types from content schemas, typing controllers, services, and Document Service queries.
Learn Java's primitive types, String basics, type casting, var, final, arithmetic, comparison, and logical operators.
Learn about JavaScript variables (let, const, var), primitive data types, type coercion, operators, and template literals.
Learn how to fetch data from APIs, handle JSON responses, use async/await, and store data with localStorage and sessionStorage.
Component anatomy in AEM -- the cq:Component node, HTL template, dialog, and Sling Model. Creating, deploying, and using a simple component.