Completed time range search of recurring events.
[citadel.git] / webcit-ng / README.md
1 # WebCit-NG
2
3 This is WebCit-NG, a complete refactoring of the WebCit server that will
4 focus on "REST first" and build around that.  The server code is well layered
5 with as little spaghetti as possible.
6
7 This is a work in progress and not ready for production use.  It is not feature
8 complete.
9
10 ## Design goals
11 * Hold as little state as possible
12 * Require NO cleanup.  Killing the process lets the OS reclaim all resources.
13 * As much as possible, resources should be freed by just coming back down the
14   stack.  Avoid global variables and thread-local variables as much as possible.
15 * Readability of the code is more important than shaving off a few CPU cycles.
16 * Throw sensitive data such as passwords back and forth in clear text.  If you
17   want privacy, encrypt the whole session.  Anything else is false security.
18
19 REST format URLs will generally take the form of:
20
21   /ctdl/objectClass/[container/]object[/operation]
22
23 ## We are using
24 * libcitadel for Citadel server tooling, string handling, JSON encoder, MIME parser
25 * Expat for DAV handling
26 * OpenSSL for TLS
27 * FontAwesome for icons
28
29 ## We are NOT using
30 * Third party javascript libraries and/or CSS frameworks