Brain-computer interface (BCI) applications implement a direct communication path between the brain and the computer. This paper deals with the fundamentals of BCI systems and the experience of the neuroinformatics team with the design and implementation of various BCI applications. Their advantages, drawbacks and suitability are discussed in multiple contexts.