vaizard / glued-archived

1 stars 3 forks source link

Vector app #41

Open killua-eu opened 6 years ago

killua-eu commented 6 years ago

The vector app is intended as a seamlessly integrated tasks tracker (i.e. github issues), events tracker (i.e. google calendar), journal (your favourite life-pulse tracker, worklog and timetracker) and an ideas board (github projects, trello, google keep). The assumption is, that all these apps are basically different perspectives (representations) of the same thing (data), hence uniting the underlying data to some point seems like a great idea. Some users think and work in a very structured way and prefer to plan their activities with tasks and calendar entries to finally wrap all of them into a project, others prefer creating project lists, mindmaps and similar and then distill specific activities, assigning roles and responsibilities.

Accordingly, a vector object recognizes its classification (string) value as:

Each glued json object contains _v (int), the json document's schema version.

The uid (string) contains an uuid string acting as the vector's unique identifier.

{
  "data": {
    "_v": "1",  
    "uid":"[uuid-string]",
    "classification":"none|event|task|journal|project",
    "...": "...",
}
{
  "data": {
    "classification": "event|task|journal|project",
    "...": "...",
}

```json
{
"data":
    "vector": [
        {
          "class"=:event, task, journal, project
          "tzid": "Europe/Prague",
          "uid": "rjerkjwehrwrh3@tractor.in.space",
          "attachment": [ TODO ]
          "dtstart": [ "", "20130101" ],
          "dtend":  [ "Europe/London", "20130101" ],
          "dtcreated": "20111213T124028Z",
          "dtmodified": "20111218T124028Z",
          "localtion": "",
          "sequence": "0",
          "status": "confirmed",
          "summary": "New years eve",
          "rrule": "FREQ=YEARLY;INTERVAL=1;BYMONTH=2;BYMONTHDAY=12",
          "transparent": "0/1",
          "alarm": {
              "trigger": "-PT10M",
              "description": "New years eve reminder",
              "action": "display"
          }
        }
    ]
}

percent-complete priority resources: PROJECTOR,VCR, LANGUAGE=fr:1 raton-laveur status summary

relationship -attendee -contact -organizer -recurenceid -relatedto -url -uniqueid -exception rule/dadte/time -alarm

participation_status - needs-action, accepted, declined, tentative, delegated reltype - parent, child, sibling

https://tools.ietf.org/html/rfc5545#section-3.2.1

role=\"CHAIR" ; Indicates chair of the ; calendar entity / "REQ-PARTICIPANT" ; Indicates a participant whose ; participation is required / "OPT-PARTICIPANT" ; Indicates a participant whose ; participation is optional / "NON-PARTICIPANT" ; Indicates a participant who ; is copied for information ; purposes only

rsvp=true/false

{ "data": {

 "kind": "individual|group|organization|location";
 "fn": {
 }
 "n": 
    [ { metadata }, $datatype, [ $honprefix, $name, $addname, $familyname, $honsuffix ]
    [ {"type": ["work", "voice"]}, "text", [ "Sir", "Dick", "Adam", "Twist", "PhD." ] ],
 }
 "adr": [

    "type": ["work", "postal"],
    "sa": "Street address",
    "ea": "Extended address (building name, floor, room number)",
    "lo": "Locacity (town)",
    "re": "Region",
    "pc": "Postal code",
    "pb": "Post office box",
    "cn": "Country name"  
 ],

} }

action attach: { "fmttype": application/postscript "url": ftp://xyzCorp.com/pub/reports/r-960812.ps } attendee CN=Henry Cabot:mailto:hcabot@example.com (common name) PARTSTAT=ACCEPTED|DELEGATED|DECINED RSVP (requested or not) SENT-BY

  "LANGUAGE" property parameter is specified, the identified
  language applies to the "CN" parame

ATTENDEE;MEMBER="mailto:DEV-GROUP@example.com": mailto:joecool@example.com ATTENDEE;DELEGATED-FROM="mailto:immud@example.com": mailto:ildoit@example.com

  The following is an example of this property used for specifying
  multiple attendees to an event:

   ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry
    Cabot:mailto:hcabot@example.com
   ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:bob@
    example.com";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:jdoe@
    example.com

  The following is an example of this property with a URI to the
  directory information associated with the attendee:

   ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%
    20Industries,c=US???(cn=Jim%20Dolittle)":mailto:jimdo@
    example.com

  The following is an example of this property with "delegatee" and
  "delegator" information for an event:

   ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM=
    "mailto:iamboss@example.com";CN=Henry Cabot:mailto:hcabot@
    example.com
   ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO=
    "mailto:hcabot@example.com";CN=The Big Cheese:mailto:iamboss
    @example.com
   ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe
    :mailto:jdoe@example.com

Example: The following is an example of this property's use when another calendar user is acting on behalf of the "Attendee":

   ATTENDEE;SENT-BY=mailto:jan_doe@example.com;CN=John Smith:
    mailto:jsmith@example.com

categories class comment completed contact description due duration (calulcated from dtstart, dtend) exdate exrule freebusy geo 37.386013;-122.082932 last-mod location LOCATION;ALTREP="http://xyzcorp.com/conf-rooms/f123.vcf": Conference Room - F123, Bldg. 002 method organizer percent-compete priority 0 .. 9 rdate recurid related repeat rrule resources [RESOURCES:EASEL,PROJECTOR,VCR, LANGUAGE=fr:1 raton-laveur] rstatus seq status "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" summary transp trigger url version

// default = 0, if = 1, then it doesn't take up the time slot as busy

Parsing rrules: https://github.com/simshaun/recurr