Warning, /pim/kube/docs/project.md is written in an unsupported language. File is not indexed.
0001 # What is Kube 0002 0003 Kube is a personal information and communication application. 0004 This includes time and task-management (the time available, and what it's used for), as well as the necessary communication around it (currently based on email). 0005 0006 ## Principles 0007 0008 These are some of the principles Kube is built on. They are intended as a guide, and not a rule. 0009 0010 * Simple 0011 * Strive for simplicity in UI and Code 0012 * Avoid options if possible 0013 * Minimal configuration 0014 * Opinionated where necessary 0015 * Usable Security 0016 * Don't sacrifice usability for security 0017 * Portable 0018 * to operating systems: Windows/macOS/Linux/... 0019 * to desktops: Plasma/Gnome/.... 0020 * to formfactors: Desktop/Mobile/Tablet 0021 * Content focused 0022 * Low-key presentation 0023 * Out of your way 0024 * Plaintext over HTML (simple?) 0025 * Networked 0026 * Avoid local only data (e.g. local only tags) 0027 * The backends decide what we can work with 0028 * Clear data ownership 0029 * All data belongs to individual accounts 0030 * No shared data with unclear account synchronization 0031 * Maintainable 0032 * Comparatively small codebase 0033 * Self contained 0034 * Few dependencies 0035 * Supportable 0036 * Logging 0037 * Scriptable 0038 0039 Features: 0040 * EMail/Addressbook/Calendar/Tasks 0041 * GPG based end to end encryption 0042 * Conversation View 0043 * Fulltext search, including encrypted messages 0044 * Read-only support for protected headers 0045 * Keyboard navigation 0046 0047 # Current state 0048 0049 * Usable as daily driver 0050 * Requires a companion interface for tasks not yet implemented (e.g. webmail to create folders) 0051 0052 # Future 0053 0054 The focus is on quality of life improvements and features that are missing elsewhere, 0055 rather than trying reach feature parity with other popular clients. 0056 0057 ## Differentiators 0058 In order to avoid simply replicating what's already existing it's important to know how this product differentiates to other existing solutions. 0059 This section is supposed to outline that. 0060 0061 * To Roundcube 0062 * Native application 0063 * Responsivness of UI (assuming we can't reach that in the browser) 0064 * Not in a browser (assuming we can't effectively hide that) 0065 * Desktop integration (notifications, startmenu) 0066 * Offline capability 0067 * Cryptography 0068 * Multi-account support 0069 0070 * To Kontact/Thunderbird/... 0071 * Simple but powerful UI 0072 * Performance (lower resource usage, quick and responsive operations) 0073 * Easy & automated setup (scriptable setup process, syncable configuration, setup can easily be nuked and setup from scratch) 0074 * Codebase 0075 * Well automated tested 0076 * Efficient further development 0077 * Codebase can go to mobile platforms as well 0078 0079 * To existing mobile applications 0080 * Complementing usecases that make the overall product more useful (A mobile/tablet could even be the preferred interface for some interactions due to additional screen and touch capabilities) 0081 * Categorization 0082 * What's next, schedule checking 0083 * Todolist view 0084 * Notification center 0085 * Better integration with kolab 0086 0087 # Vision Statement 0088 Kube aims to be an enterprise-ready PIM solution, that has a high-quality and rock solid core. The focus of the core is on high-quality code, maintainability, stability and performance. 0089 0090 We strive to keep the core to the necessary minimum, with minimal dependencies and maximum portability, and in a way that it is maintainable by a small team. 0091 We also strive to keep the solution agile so that work by corporate partners can be executed upstream. 0092 0093 Experimental or advanced features are supported as optional addons, to not affect the high quality of the core product. 0094 0095 Kube aims to be available on various form-factors and platforms. 0096 0097 # Project Structure 0098 While this is an open project that welcomes participation from everyone who's interested, we do have an explicit team strucuture to ensure it's clear to everyone who's repsonsible for what. External contributions are always welcome and the team is of course open for extension. 0099 0100 Team Lead/Maintainer: Christian Mollekopf 0101 0102 It's the team leads responsibility to: 0103 0104 * Organize regular online meetings 0105 * Give direction to the product 0106 * Direct development and oversee decisions 0107 * Ensure documentation of decisions 0108 0109 ## Decision making process 0110 Decisions are generally made in discussion with the team, and result in documentation or an item on the roadmap. Non-trivial decisions are always either discussed on the mailinglist or in an online meeting. 0111 0112 Should the team not be able to reach consensus, the team lead makes the final decision. 0113 0114 ## Planning 0115 All planning happens on [invent.kde.org](https://invent.kde.org/pim/kube), the old planning is avialable on [KDE Phabricator instance](https://phabricator.kde.org/tag/kube/). 0116 0117 ## Releases / Milestones 0118 Releases will follow achieved milestones. Milestones are assembled from tasks on the roadmap. 0119 0120 ## Versioning 0121 The product will follow the semantic versioning scheme (semver.org), with each feature release corresponding to a milestone on phabricator. 0122 0123 ## Git repository 0124 The git repository can be found here: [https://invent.kde.org/pim/kube.git](https://invent.kde.org/pim/kube.git) 0125 0126 The "master" branch is used for the latest development version, releases are tagged. Branches for specific versions that receive patch releases may be created as required. 0127 0128 For new developments use feature branches prefixed with "dev/".