Process
CEL - interactive Common Expression Language course
A standalone bilingual learning site that helps users understand Common Expression Language through structured explanations, editable inputs, and immediate feedback.
Context
CEL was created as a standalone learning project focused on Common Expression Language. The goal was to build an environment that presents the language not only as syntax, but as a practical way to express rules, conditions, and decision logic.
The project is designed as a product-independent course. It helps users understand the principles of the language before they connect those principles to a specific platform, application, or internal solution.
The course is publicly available at https://cel-course.jl-home.org/.
Problem
Common Expression Language can be difficult to approach when it is learned only from documentation or isolated fragments. In practical use, knowing operators and types is not enough; the important skill is translating a written requirement into a precise expression and checking whether it behaves correctly with different inputs.
Another important distinction is the boundary between the language itself, the host application, and the supporting behavior of the learning environment. Without that distinction, a course can easily appear to be a full implementation of the language, even when its actual purpose is training and explanation.
Role
My role was to design the learning concept, content structure, bilingual page model, interactive areas, and the rules that govern the course behavior. This also included deciding which topics should be explained in text, which parts should be verifiable directly in the browser, and where the project needed to state its limitations clearly.
I approached the project as a combination of content architecture, technical design, and practical web application implementation. Consistency between the Slovak and English editions, stable routes, content quality checks, and usability across devices were all part of the work.
Constraints
The learning environment intentionally does not present itself as a complete Common Expression Language implementation. The browser evaluator supports only the scope required by the course, and unsupported behavior is expected to fail visibly rather than be silently approximated.
The project does not use user accounts, a database, or server-side progress synchronization. Learning progress remains local to the browser. The course also avoids presenting product-specific claims as verified behavior in an external platform.
Solution design
The solution is built as a bilingual website with clearly separated content, navigation, progress handling, and interactive work areas. Each part is intended to explain what the user is learning, why it matters, and how the behavior can be checked without leaving the page.
The course combines explanation, editable inputs, immediate output, and feedback. This narrows the gap between reading documentation and actually reasoning about a rule. Users do not rely on text alone; they gradually build the ability to verify their own decisions.
Technical approach
The application is built with Next.js App Router, React, and strictly typed TypeScript. Content is stored in versioned Markdown files, with validation schemas checking its structure. Search uses a locally generated index, and both language editions follow the same routing logic.
The solution includes a controlled content renderer, client-side progress state, a pilot evaluator for course use, and automated checks. Tests cover content, localization, interactive areas, responsive layouts, accessibility, and the production build.
Result
The result is a standalone course that presents Common Expression Language as a practical tool for expressing rules and decision logic. The project shows that technical learning can be factual, interactive, and transparent about its own limits.
CEL also broadens the project portfolio beyond the ProjectWise area. It demonstrates the ability to design a complete web product from the content model and user interface through to technical validation and automated quality checks.