Skip to content

Commit

Permalink
Refactored template docs
Browse files Browse the repository at this point in the history
  • Loading branch information
benfortuna committed Mar 28, 2024
1 parent 781e9cb commit 5d4fd2e
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 0 deletions.
98 changes: 98 additions & 0 deletions docs/template/index.md
Expand Up @@ -8,3 +8,101 @@ Whilst the iCalendar and vCard specifications provide generalized component and
may require further constraints to fulfill the requirements of the use-case. iCal4j Templates provides some
opinionated prototyping and validation for common use-cases, and a portable definition language for constructing
your own.

## Template Domains

Templates are group by specific problem domains, or common scenarios that could benefit from the use of the
iCalendar and vCard standards. These domains include:

* [Groupware](groupware.md) - communicating and collaborating within and across teams
* [Project](project.md) - project management objectives and tracking
* [Agile](agile.md) - manage software development and other projects using Agile techniques
* [Workflow](workflow.md) - respond to requests and manage approval workflows
* [Catalog](catalog.md) - define and fulfil a collection of standard offerings
* [Wiki](wiki.md) - knowledge management collaboration using Wiki concepts

A template is a construct for building iCalendar and vCard objects for common use-cases.

### Roster

A roster is a `VCALENDAR` prototype consisting of `VAVAILABILITY` components with one or more `ATTENDEE`s.

```java
VAvailability roster = new Roster().apply();
```

### Sports fixture

A sport fixture is a `VCALENDAR` prototype of `VEVENT` components with a `LOCATION` and embedded Schema.org
`STRUCTURED-DATA`.

```java
VEvent fixture = new SportsFixture().apply();
```

### Timetable

A timetable is a `VCALENDAR` prototype of `VEVENT` components.

```java
Calendar timetable = new Timetable().toCalendar();
```

### Timesheet

A timesheet is a `VCALENDAR` prototype of `VJOURNAL` components.

```java
Calendar timesheet = new Timesheet().toCalendar();
```

### Project Schedule

A project schedule is a `VCALENDAR` prototype of `VTODO` and `VEVENT` components representing tasks and
milestones.


## VEvent Templates

### Anniversary

A common use-case for `VEVENT` components is to define anniversary-style events (i.e. recurring, date-based,
etc.).

* DTSTART - VALUE=DATE
* RRULE/RDATE (required)

```java
VEvent anniversary = new Anniversary().withDate(MonthDay.of(Month.DECEMBER, 25)).apply();
```

### Meeting

A meeting is a `VCALENDAR` prototype of `VEVENT` components.

```java
Agenda agenda = ...
VEvent meeting = new Meeting().withAgenda(agenda).apply();
```


## VToDo Templates

### Project Task

A project task is a `VTODO` prototype.

```java
VTodo task = new Task().apply();
```


## VJournal Templates

### Meeting Minutes

Meeting minutes is a `VJOURNAL` prototype with `RELATED-TO` property referencing the meeting.

```java
VJournal minutes = new MeetingMinutes().apply();
```
48 changes: 48 additions & 0 deletions mkdocs.yml
Expand Up @@ -73,6 +73,54 @@ nav:
- Outlook: extensions/outlook.md
- Template:
- Overview: template/index.md
- Groupware:
- Overview: template/groupware/index.md
- Meeting: template/groupware/meeting.md
- Agenda: template/groupware/agenda.md
- Action: template/groupware/action.md
- Note: template/groupware/note.md
- Attendance: template/groupware/attendance.md
- Appointment: template/groupware/appointment.md
- Project Management:
- Overview: template/project/index.md
- Project: template/project/project.md
- Objective: template/project/objective.md
- Milestone: template/project/milestone.md
- Task: template/project/task.md
- Risk: template/project/risk.md
- Issue: template/project/issue.md
- Decision: template/project/decision.md
- Timesheet: template/project/timesheet.md
- Agile:
- Overview: template/agile/index.md
- Sprint: template/agile/sprint.md
- Backlog: template/agile/backlog.md
- Story: template/agile/story.md
- Epic: template/agile/epic.md
- Criteria: template/agile/criteria.md
- Retrospective: template/agile/retrospective.md
- Workflow:
- Overview: template/workflow/index.md
- Request: template/workflow/request.md
- Approval: template/workflow/approval.md
- Roster: template/workflow/roster.md
- Metric: template/workflow/metric.md
- Catalog:
- Overview: template/catalog/index.md
- Offer: template/catalog/offer.md
- Order: template/catalog/order.md
- Fulfilment: template/catalog/fulfilment.md
- Wiki:
- Overview: template/wiki/index.md
- Article: template/wiki/article.md
- Topic: template/wiki/topic.md
- Definition: template/wiki/definition.md
- Faq: template/wiki/faq.md
- Budget:
- Overview: template/budget/index.md
- Funding: template/budget/funding.md
- Expense: template/budget/expense.md
- Reimbursement: template/budget/reimbursement.md
- Serializer:
- Overview: serializer/index.md
- XML: serializer/xml.md
Expand Down

0 comments on commit 5d4fd2e

Please sign in to comment.