diff --git a/docs/examples.html b/docs/examples.html index dc3992c9..5f4e108d 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -90,8 +90,7 @@

Kolibri

Purpose

Kolibri comes with many features. Every feature is tested and used in an application. - Many features have additional, self-contained example pages that show how to use the feature and - what benefits the feature yields. + Many features have additional, self-contained example pages that visualize the feature.

This page provides an overview over the example pages such that you can browse @@ -188,7 +187,8 @@

Sequences

Playing Tic Tac Toe against the computer gives you some winning chances since the computer only looks three half-moves ahead. However, this is an example of the functional minimax - algorithm (see John Hughes "Why FP matters") based on Kolibri sequences.
+ algorithm (see John Hughes "Why FP matters") based on Kolibri sequences and the + monadic JINQ (read "jinx") API. diff --git a/docs/features.html b/docs/features.html new file mode 100644 index 00000000..ea0b5f31 --- /dev/null +++ b/docs/features.html @@ -0,0 +1,114 @@ + + + + + Kolibri Features + + + + + + +
+
+ + + + + + + + + + +
+

Kolibri

+
Features
+
+ +
+ +
+

Standard Library

+

+ Immutable: Pair, Tuple, Maybe, Either, Sequence, JINQ, JSON monad + along with many church-encoded lambda abstractions. +

+

+ Observable, ObservableList, DataFlowVariable, Scheduler, Attribute, ModelWorld. +

+

+ Utilities: array extensions, DOM handling, test facility (incl. async testing), logging, REST calls. +

+
+
+

Patterns

+

+ Classical MVC, Projector Pattern +

+ +
+ + +
+ + + diff --git a/docs/index.html b/docs/index.html index 6978dfa2..538e57fd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,226 +1,188 @@ - - Kolibri - - + + Kolibri + + - -
-
- - - - - - - - - - -
-

Kolibri

-
The Web UI Toolkit
-
- -
- -
-

What's New

-

- Beta testing new features: typesafe - routing and animated page transitions (basic start, more to come). - All feedback is - much appreciated! -

-
- -
-

Free Open Source

-

- Kolibri is under development at - GitHub, which is - also the place for any discussions and issues. -

-
- -
-

Contributions

-

Kolibri aims to be a sustainable, high-quality toolkit. - Contributions are validated through usability testing - and automated tests. - Industry experts and academic advisers assess the code quality - and the completeness of the documentation. - Every contribution must have proven its worth in an application. -

-
-
Andermatt, Brodwolf -
-
code, - git book
-
Häfliger, Misic -
-
code, - documentation.pdf -
-
Christen, Robin -
-
code, - git book
-
Berchtold, Duss -
-
- - documentation.pdf, - info
-
Wild, Wyss -
-
- code, - documentation -
-
Altermatt, Schnidrig -
-
- code, - documentation, - showcase -
-
Advisors and Experts -
-
Prof. Dierk König, Fabian Affolter, Dr. Dieter Holz, Daniel Kröni, François Martin, - Marco Sanfratello, Dirk Lemmermann, Gerrit Grunwald -
-
-
-
-

Live Test Cases

-

Have a look at the live test case report. -

-

Showing the report actually runs the latest test cases live in your current browser window. - The Kolibri test facility does not require any build steps or extra tooling. -

-
-
-

Examples

-

Browse through many examples. -

-
-
-

Guided Tour

-

Take the tour through a selection of examples in order to understand how - Kolibri helps with developing web applications. They are arranged from simple to - increasingly complex and introduce new concepts along the way. -

-

Create a simple form very - efficiently with just one line of code. -

-

Enforce and test business rules in the UI - to interactively manage working hours in a day. -

-

Put the daily work hours in a week overview - and keep all the business rules in place by simply delegating to what we have done before. - Show compositionality of controllers and projectors. -

-

Have some fun with multi-way editing in a - master-detail view. - It builds on what we already know and adds real interactive richness to our application. -

-
-
-

Installation without dependency

-

Common wisdom has it that web development comes with a myriad of dependencies. - Kolibri follows a different approach. We do not use any dependencies at all - neither - at runtime nor at build-time. There actually is no build-time since we never need building. -

-

Likewise, a project that uses Kolibri should be able to follow the same - approach and not even depend on Kolibri itself! -

-

We assume that you simply copy the Kolibri source code (everything under the - src directory) into your own project. You become the owner of the copied code - - just as if you copied it from stackoverflow. -

-

This copy includes the documentation, examples, the testing facility, and the test cases. - It will likely contain more than you need for your production code but that does no harm. - Kolibri is fully written as ES6 modules, which means that you can "treeshake" with any bundler - to remove all unused parts from your own production bundle while still having the best - developer experience while programming. -

-

For the die-hard "but I just want to have Kolibri as a single file" developers, there is an - automatically generated - production bundle - that always reflects the - latest version (see version). It contains the - production code, type definitions, and documentation but neither the test cases nor the examples. - This might be useful for quick experiments. -

-
- -
- - + +
+
+ + + + + + + + + + +
+

Kolibri

+
The Web UI Toolkit
+
+ +
+ +
+

What's New

+

+ Beta testing new features: typesafe + routing and animated page transitions (basic start, more to come). + All feedback is + much appreciated! +

+
+ +
+

Features

+

+ Kolibri's typesafe standard library contains the functional and immutable: + Pair, Tuple, Maybe, Either, Choice, Sequence, JINQ, and JSON monad + along with many church-encoded lambda abstractions. +

+

+ For interactive user interfaces we have: + Observable, ObservableList, DataFlowVariable, Scheduler, Attribute, and the ModelWorld. +

+

+ Additional utilities care for: array extensions, + DOM handling, test facility (incl. async testing), logging, and REST calls. +

+

+ Classic MVC and the Projector Pattern lead us + from simple to more-and-more advanced web clients as shown in the + examples. The UI becomes rich, reliable, + consistent and efficient to build and maintain. +

+

+ Kolibri also puts forward best practices on how to organize code, + organize types, organize styles, develop to interfaces, + layout code, use JavaScript features wisely, ubiquitous testing, and helpful JsDoc. +

+
+ +
+

Examples

+

Browse through many examples. +

+
+ +
+

Guided Tour

+

Take the tour through a selection of examples in order to understand how + Kolibri helps with developing web applications. They are arranged from simple to + increasingly complex and introduce new concepts along the way. +

+

Create a simple form very + efficiently with just one line of code. +

+

Enforce and test business rules in the UI + to interactively manage working hours in a day. +

+

Put the daily work hours in a week overview + and keep all the business rules in place by simply delegating to what we have done before. + Show compositionality of controllers and projectors. +

+

Have some fun with multi-way editing in a + master-detail view. + It builds on what we already know and adds real interactive richness to our application. +

+
+ +
+

Why is Kolibri the way it is?

+

Have a look at our philosophy. +

+
+ +
+

Free Open Source

+

+ Kolibri is feely available on + GitHub, which is + also the place for any discussions and issues. +

+

+ Please have a look at how to + install without dependencies. +

+
+ +
+ + diff --git a/docs/philosophy.html b/docs/philosophy.html new file mode 100644 index 00000000..c0970afb --- /dev/null +++ b/docs/philosophy.html @@ -0,0 +1,240 @@ + + + + + Kolibri Philosophy + + + + + + +
+
+ + + + + + + + + + +
+

Kolibri

+
Philosophy
+
+ +
+ +
+

Why Kolibri?

+

+ Kolibri is a collection of utilities, patterns, and best practices + that we discovered or invented as part of our duties at the + University of Applied Sciences and Arts, + Northwestern Switzerland. It covers educational content from modules and lectures, + achievements from student projects and workshops, findings from our + + Certificate of Advanced Studies (CAS) programme, and contributions from our + industry and academic experts. +

+
+ +
+

Values

+
+
Top Quality
+
Kolibri is a sustainable, high-quality toolkit. + Contributions are validated through usability testing and automated tests. + Industry experts and academic advisers assess the code quality + and the completeness of the documentation. + Every contribution must have proven its worth in an application. +
+
No Dependencies
+
Kolibri has no dependencies at all - neither + at runtime nor at build-time. Likewise, a project that uses Kolibri + should be able to follow the same + approach and not even depend on Kolibri itself! + See installation without dependency. +
+
Test Driven
+
+ Kolibri comes with its own testing facility. + Have a look at the live test case report. +
+
Typesafe
+
+ Kolibri shows how to develop with plain vanilla JavaScript in a typesafe manner. + This is possible with the help of JsDoc. Kolibri comes with many advanced + examples on how to use that type system: generics, union types, intersection types, etc. +
+
Free Open Source
+
+ There is no licence. Just pick and choose what you want to use. The code is yours. +
+
+
+ +
+

Installation without dependency

+

Common wisdom has it that web development comes with a myriad of dependencies. + Kolibri follows a different approach. We do not use any dependencies at all - neither + at runtime nor at build-time. There actually is no build-time since we never need building. +

+

Likewise, a project that uses Kolibri should be able to follow the same + approach and not even depend on Kolibri itself! +

+

We assume that you simply copy the Kolibri source code (everything under the + src directory) into your own project. You become the owner of the copied code - + just as if you copied it from stackoverflow. (This has the nice side effect that + AI tools will pick up Kolibri as "your code" and suggest Kolibri-style completions.) +

+

This copy includes the documentation, examples, the testing facility, and the test cases. + It will likely contain more than you need for your production code but that does no harm. + Kolibri is fully written as ES6 modules, which means that you can "treeshake" with any bundler + to remove all unused parts from your own production bundle while still having the best + developer experience while programming. +

+

For the die-hard "but I just want to have Kolibri as a single file" developers, there is an + automatically generated + production + bundle + that always reflects the + latest version (see version). It contains the + production code, type definitions, and documentation but neither the test cases nor the examples. + This might be useful for quick experiments. +

+
+ +
+

Contributions

+

+ Contributions are validated through usability testing + and automated tests. + Industry experts and academic advisers assess the code quality + and the completeness of the documentation. + Every contribution must have proven its worth in an application. +

+
+
Andermatt, Brodwolf +
+
Lambda calculus and start of the functional stdlib:
+ code, + git book +
+
Häfliger, Misic +
+
Styling, incl. logo, plus login/registration:
+ code, + documentation.pdf +
+
Christen, Robin +
+
MVC and collaborative web applications:
+ code, + git book +
+
Berchtold, Duss +
+
Facetted search:
+ + documentation.pdf, + info + +
+
Wild, Wyss +
+
Logging, sequences, and JINQ:
+ code, + documentation, +
+
Altermatt, Schnidrig +
+
Navigation:
+ code, + documentation, + showcase +
+
Advisors and Experts +
+
Prof. Dierk König, Fabian Affolter, Dr. Dieter Holz, Daniel Kröni, François Martin, + Marco Sanfratello, Dirk Lemmermann, Gerrit Grunwald +
+
+
+
+ + +