ExtBrain

ExtBrain is a research project that aims to simplify the everyday tasks of researchers, software developers, project managers and other power users who need to extract, manipulate and exchange information. ExtBrain focuses primarily on the development of visual tools, rather than on implementing complex algorithms. While keeping usability in mind, it targets more expert users than beginners. The project consists of five main parts: ExtBrain Communicator, ExtBrain Sync, ExtBrain Keyboard, ExtBrain ScriptDevelop, ExtBrain Universe. Additionally, there are several smaller parts, such as ExtBrain browser extension.

ExtBrain Communicator

a unified user interface for communication and collaboration

ExtBrain Communicator is currently implemented as an add-on for Mozilla Thunderbird. Additional functionality being developed includes instant messaging, voice conferencing (multiple accounts and peer-to-peer support), advanced notes support.

ExtBrain Sync

a provider independent synchronization platform

ExtBrain Sync is project that goal is to create provider independent platform for synchronization and sharing. It uses IMAP as a storage for items being synchronized. Currently, it is integrates into Mozilla Thunderbird and Android OS and provides synchronization of contacts and task. It has tree-way merging capability for conflict resolution.

Subprojects:

ExtBrain Keyboard

an Android input method

ExtBrain Keyboard is a software keyboard for Android. It is designed especially for Slavic languages. Its prediction system leverages HunSpell dictionaries (used in Office Office). It allows users to share word usage index and personal dictionaries. [Czech User's Guide] [Czech Reference Manual]

ExtBrain ScriptDevelop

a C# workbench

ExtBrain ScriptDevelop is a modular IDE designed especially for rapid prototyping, API testing and ad-hoc data transformation and manipulation. It aims to bridge the gap between a simple script editor and an IDE for large projects (such as Visual Studio and SharpDevelop). In addition to a simple script editor, support for compilation to executables, debugging, decompilation and simple data visualization is being developed.

ExtBrain Universe

a web-based virtual world

ExtBrain Universe is a research aim to build an e-learning framework that allow users to easily build 3D virtual worlds accessible from a web browser. It is being developed in WebGL. It utilizes especially the Open Street Map database. Currently, it targets applications like real-time programming game or knowledge discovery game.

Other ExtBrain projects

In addition to the projects above, there are some other projects:

Inspirational ideas

Contributors

The following students (in alphabetical order) have worked on ExtBrain during their degree theses:

Do YOU want to contribute? Or you are just looking for a topic for a project or bachelor/master thesis? Just contact me. For bachelor/master theses, it would be easiest if you are a student of ČVUT, UK, VŠE, ČZU or any other university located in or near Prague, so that you can regularly come to discuss your work.

During your work, you will utilize some of the following technologies: HTML, CSS, XUL, XBL, JavaScript, CoffeeScript, Coco, SVG, C#, XAML, PowerShell, Java, Scala, Kotlin, C++ SQL, WebGL, GLSL, Node.js, Mozilla application framework, Gecko layout engine, .NET Framework, Windows Presentation Foundation, Android, SQLite, WebSocket, XMPP, IMAP, SIP and occasionally some others. In case you are not strong in some of these technologies, just come: we will discuss which part of ExtBrain is best for you to contribute to and then you will need to study some relevant technologies. Do not worry if you are not strong in any of these technologies:)

There are two rules that contributors must follow:

  1. Think more, code less.
  2. There are no exceptions to rule 1.

Work of contributors usually follows this roadmap: First, the contributors study relevant technologies and search for existing applications that provide similar functionality. After that, they develop prototypes to check whether they are capable of implementing the desired functionality and to reveal possible complications. Then, with the knowledge they have gained, they propose an architecture for the assigned modules or applications. Finally the contributors start with implementation. The whole process is iterative: contributors develop small usable parts that are submitted to testers to ensure that submitted work does not contain big bugs.

Contact

Tomáš Novotný View Tomas Novotny's LinkedIn profile
Research group: Software Engineering Group
Location: KN:E-435 (Karlovo náměstí, bulding E, 4th floor, room 435)