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/".