summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-22 14:29:01 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-22 14:29:01 +0200
commit3cdd184bdbd6dcf1b1d8637854bc5f7a353552df (patch)
tree6bbc953435dfaa9480827e754d200187272c7097 /docs
parent91c372e30a89e1f39662d5d1d836fd7ac009720e (diff)
downloadkube-3cdd184bdbd6dcf1b1d8637854bc5f7a353552df.tar.gz
kube-3cdd184bdbd6dcf1b1d8637854bc5f7a353552df.zip
Documentation
Diffstat (limited to 'docs')
-rw-r--r--docs/design.md41
-rw-r--r--docs/project.md11
-rw-r--r--docs/requirements.md2
3 files changed, 51 insertions, 3 deletions
diff --git a/docs/design.md b/docs/design.md
index 4ab2e887..aff49183 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -49,6 +49,39 @@ Use-case specific controllers are used to operate on the data. Controllers allow
49Rather than splitting controllers by domain type (e.g. an email controller, or a calendar controller), we specifically write controllers for specific usecases (e.g. an email editor), that exposes all required actions. That way we ensure that the API's a UI is working with is always clear an consice, and that we have all domain logic captured in the domain logic layer, rather than the UI layer. 49Rather than splitting controllers by domain type (e.g. an email controller, or a calendar controller), we specifically write controllers for specific usecases (e.g. an email editor), that exposes all required actions. That way we ensure that the API's a UI is working with is always clear an consice, and that we have all domain logic captured in the domain logic layer, rather than the UI layer.
50Of course controllers will need to share functionality internally as soon as an action is available from more than one place. 50Of course controllers will need to share functionality internally as soon as an action is available from more than one place.
51 51
52### Email Domain Logic
53* Folder list
54 * Folder List Controller
55 * Move mail to folder
56 * Move/Copy/Delete folder
57 * Synchronize folder
58 * Folder List Model
59 * Mixes akonadi next queries and subqueries (folder list with smart folders)
60 * name
61 * statistics
62
63* Mail list
64 * MailListController
65 * Mark as read
66 * Flag as important
67 * Move to trash
68 * MailListModel
69 * subject
70 * date
71 * sender
72 * folder
73 * ThreadModel
74 * thread leader (otherwise like maillist model)
75 * number of mails in thread
76
77* Mail Viewer
78 * MailViewController
79 * reply
80 * forward
81 * move to trash
82 * MailModel
83 * subject, date, sender, folder, content, attachments
84
52## Infrastructure 85## Infrastructure
53 86
54The infrastructure layer interfaces with the rest of the system. It is the place where we can integrate with various native infrastructure parts. 87The infrastructure layer interfaces with the rest of the system. It is the place where we can integrate with various native infrastructure parts.
@@ -59,8 +92,14 @@ Note: The infrastructure blocks will use only types provided by the domain logic
59### Akonadi Next 92### Akonadi Next
60Akonadi Next is used for primary data access and handles all synchronization. 93Akonadi Next is used for primary data access and handles all synchronization.
61 94
95Interactions with Akonadi Next involve:
96* Adding/removing/configuring resources
97* Triggering synchronization
98* Querying of data
99* Creating/Modifying/Removing entities
100
62### Configuration 101### Configuration
63Configuration as traditionally store in config files in ~/.kde 102Configuration as traditionally stored in config files in ~/.kde
64 103
65### Notification 104### Notification
66Notifications for the system. 105Notifications for the system.
diff --git a/docs/project.md b/docs/project.md
index 36980d13..4d942c90 100644
--- a/docs/project.md
+++ b/docs/project.md
@@ -1,3 +1,10 @@
1# Why?
2This project started with the aim to produce a product that doesn't cater to all usecases, but does what it does well.
3We want a codebase that is well maintainable by a small team, and that can move fast.
4We want a codebase where it is fast and easy to prototype new features and turn them eventually into full implementations, without compromising the quality of the rest of the system. Additionaly the product should be portable accross a variety of platforms, including mobile, not only due to a portable codebase, but also due to different interfaces for the various formfactors.
5
6Because no existing codebase fullfills those premises or easily allows to reach them, this project started.
7
1# Vision 8# Vision
2Kontact Quick 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. 9Kontact Quick 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.
3 10
@@ -9,7 +16,7 @@ Experimental or advanced features are supported as optional addons, to not affec
9Kontact Quick aims to be available on various form-factors and platforms. 16Kontact Quick aims to be available on various form-factors and platforms.
10 17
11# Project Structure 18# Project Structure
12While 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 alwas welcome and the team is of course open for extension. 19While 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.
13 20
14Team Lead/Maintainer: Christian Mollekopf 21Team Lead/Maintainer: Christian Mollekopf
15Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo 22Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo
@@ -17,7 +24,7 @@ Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo
17It's the team leads responsibility to: 24It's the team leads responsibility to:
18 25
19* Organize regular online meetings (medium yet unknown) 26* Organize regular online meetings (medium yet unknown)
20* Give direction to the product and ensure it's followed. 27* Give direction to the product and ensure it's followed
21* Direct development and oversee decisions 28* Direct development and oversee decisions
22* Ensure documentation of decisions 29* Ensure documentation of decisions
23 30
diff --git a/docs/requirements.md b/docs/requirements.md
index 1b1f5f24..d909ddc0 100644
--- a/docs/requirements.md
+++ b/docs/requirements.md
@@ -83,3 +83,5 @@ Currently available dependencies:
83* Libraries need to be purpose built and with clear responsibilities. No artificial boundaries that don't help something. 83* Libraries need to be purpose built and with clear responsibilities. No artificial boundaries that don't help something.
84* Modal dialogs should be avoided. 84* Modal dialogs should be avoided.
85 85
86## Coding Guidelines
87* Run the tests before you push