diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-22 14:29:01 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-22 14:29:01 +0200 |
commit | 3cdd184bdbd6dcf1b1d8637854bc5f7a353552df (patch) | |
tree | 6bbc953435dfaa9480827e754d200187272c7097 /docs | |
parent | 91c372e30a89e1f39662d5d1d836fd7ac009720e (diff) | |
download | kube-3cdd184bdbd6dcf1b1d8637854bc5f7a353552df.tar.gz kube-3cdd184bdbd6dcf1b1d8637854bc5f7a353552df.zip |
Documentation
Diffstat (limited to 'docs')
-rw-r--r-- | docs/design.md | 41 | ||||
-rw-r--r-- | docs/project.md | 11 | ||||
-rw-r--r-- | docs/requirements.md | 2 |
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 | |||
49 | Rather 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. | 49 | Rather 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. |
50 | Of course controllers will need to share functionality internally as soon as an action is available from more than one place. | 50 | Of 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 | ||
54 | The infrastructure layer interfaces with the rest of the system. It is the place where we can integrate with various native infrastructure parts. | 87 | The 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 |
60 | Akonadi Next is used for primary data access and handles all synchronization. | 93 | Akonadi Next is used for primary data access and handles all synchronization. |
61 | 94 | ||
95 | Interactions 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 |
63 | Configuration as traditionally store in config files in ~/.kde | 102 | Configuration as traditionally stored in config files in ~/.kde |
64 | 103 | ||
65 | ### Notification | 104 | ### Notification |
66 | Notifications for the system. | 105 | Notifications 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? | ||
2 | This project started with the aim to produce a product that doesn't cater to all usecases, but does what it does well. | ||
3 | We want a codebase that is well maintainable by a small team, and that can move fast. | ||
4 | We 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 | |||
6 | Because no existing codebase fullfills those premises or easily allows to reach them, this project started. | ||
7 | |||
1 | # Vision | 8 | # Vision |
2 | Kontact 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. | 9 | Kontact 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 | |||
9 | Kontact Quick aims to be available on various form-factors and platforms. | 16 | Kontact Quick aims to be available on various form-factors and platforms. |
10 | 17 | ||
11 | # Project Structure | 18 | # Project Structure |
12 | 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 alwas welcome and the team is of course open for extension. | 19 | 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. |
13 | 20 | ||
14 | Team Lead/Maintainer: Christian Mollekopf | 21 | Team Lead/Maintainer: Christian Mollekopf |
15 | Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo | 22 | Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo |
@@ -17,7 +24,7 @@ Team Members: Michael Bohlender, Sandro Knauss, Aaron Seigo | |||
17 | It's the team leads responsibility to: | 24 | It'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 | ||