Discourse Calendar에서의 논의를 이어갑니다:
Fedora 프로젝트에는 현재 자체 캘린더 웹 앱인 Fedocal이 있습니다. 업데이트 시기가 도래했으며, 독립형 앱을 다시 작성하는 대신 Discourse의 캘린더로 교체할 수 있는지 고민하고 있습니다. 이는 기능 요청이라기보다는, 향후 방향을 결정하는 과정에서 우리의 사용 사례와 현재 부족한 점을 정리하는 것입니다.
사용 사례
Fedocal에 대해 제가 볼 수 있는 중요한 사용 사례는 세 가지입니다. 더 있다면 알려주시면 고려 대상에 추가하겠습니다.
- 회의 일정 잡기. 이것이 가장 중요합니다.
- 사람들이 자신의 가용 시간을 공유하게 하는 것. 현재 프로젝트 내 책임 있는 사람들에게 휴가 기간 등을 입력하도록 요청하고 있지만, 실제로 그렇게 하는 사람은 적습니다. (개인적으로 기억나서 입력하려고 하면 너무 번거롭게 느껴집니다.)
- Flock to Fedora, 다양성의 주(Week of Diversity), 릴리스 파티와 같은 Fedora 이벤트를 보여주는 것. 현재 실제로 이렇게 하지 않고 있습니다.
기타 가능성
- 2013년에 Flock 컨퍼런스 일정용으로 Fedocal을 사용해 보았지만, 그 이후로는 하지 않았습니다. 그런 일을 매력적이고 쉽게 만들어 줄 솔루션이 있으면 좋을 것입니다.
- Fedora 릴리스 일정 자체를 보여주는 것. 현재는 실제 일정보다는 Go/No-Go 회의를 잡는 데만 사용하는 것 같습니다. 이를 수행하려면 수동 입력이 아니라 Making sure you're not a bot! 에서 자동으로 가져와야 합니다.
현재 Discourse Calendar 플러그인의 단점
추가되고 있는 “이벤트” 시스템은 우리가 필요한 것과 맞지 않습니다. (이것은 사이트 전체의 게시물에서 "이벤트"를 수집하여 하나의 전역 캘린더에 표시합니다. 우리는 그보다 훨씬 더 많은 것이 필요합니다.)
제 첫 번째 가정은 캘린더 플러그인의 “전통적인” 부분을 확장하는 데 초점을 맞추는 것입니다. 이 부분은 토픽의 첫 번째 답변에 캘린더가 있고, 해당 토픽의 답변만 "공급"받는 구조입니다. 그러나 사이트 전체에서 이벤트를 가져오는 다른 방식이 더 나을 수도 있습니다. 그런 경우, 여러 캘린더를 대상으로 할 수 있도록 확장해야 합니다. (그리고 그 경우 햄버거 메뉴에 숨겨져 있는 것이 아니라 고정된 토픽에 임베드할 수 있으면 좋겠습니다.)
그렇다면, 우리가 필요로 하는 것들은 다음과 같습니다:
전반적으로
- 캘린더 표시 자체는 매우 원시적입니다.
- 훨씬 더 아름답게 만들 수 있습니다.
- 표시 방식에 따라 확장되거나 적응하지 않습니다.
- EU 스타일의 월요일~일요일 주간으로 하드코딩되어 있습니다.
- _항목_은 로컬 시간대이지만, 날짜가 항상 UTC로 표시되는 것 같습니다. 이로 인해 로컬 시간대의 하루짜리 이벤트가 캘린더에서 두 날에 걸쳐 표시될 수 있습니다. (Discourse 팀은 이 버그를 인지하고 있습니다.)
- 월간 뷰는 현재 이벤트 설명의 처음 몇 자만 표시합니다. 캘린더가 단순한 한 가지 것에만 해당한다면 괜찮지만(예: Fedora Social Hour에서 사용 중인 예시), 다양한 항목이 많은 캘린더에는 좋지 않습니다.
- 현재 “휴가” 버전의 캘린더는 이벤트를 색상으로 지정할 수 있지만, 이는 사용자 이름에서 프로그래매틱하게 파생된 값을 사용합니다. 대신 이벤트별로 설정 가능해야 하며, 휴가 캘린더뿐만 아니라 모든 캘린더에 적용되어야 합니다.
- .ical 피드가 없는 것 같습니다. 사용자가 Google Calendar 등에 추가할 수 있으면 좋겠습니다.
- 있으면 좋음: 구독한 사용자뿐만 아니라 메일링 리스트로 리마인더 이메일을 생성할 수 있는 기능. 아직 모든 사람이 Discourse에 있는 것은 아니므로!
- 있으면 좋음: 추적할 항목을 정확히 선택할 수 있는 개인 캘린더 뷰.
회의 사용 사례
- Fedocal에는 두 가지 주요 "축"이 있습니다. 캘린더 항목이 속하는 그룹(예: “council”)과 위치(예: “#fedora-meeting”)입니다. 캘린더 플러그인은 둘 중 하나만 수행할 수 있습니다. “Fedora Council Meetings” 토픽이나 “Fedora Meeting Channel” 토픽을 만들 수는 있지만, 항목들은 연결되지 않습니다. 플러그인으로서 최선의 디자인이 무엇인지 정확히 모르겠습니다. 이에 대해 UX 디자이너의 전문 지식이 필요할 것 같습니다.
- “그룹” 축이 Discourse 그룹이면 충분합니다. 특히 언젠가(바쁘면) Discourse 그룹을 SSO와 연결할 계획이므로 더욱 그렇습니다.
- 또는, 캘린더 “그룹” 축이 _태그_일 수도 있습니다. 이것이 더 유연할 수 있으며, 사이트 조직을 위해 그룹-태그 매핑을 계획하고 있으므로 우리에게도 적합합니다.
- “위치” 축은 짧습니다. 몇 개의 회의 채널이 있고, 특수한 경우를 위해 “기타” 위치를 허용하는 것으로 충분할 것입니다.
- 중요: 시스템은 두 축 모두에서 충돌을 방지하거나(최소 경고하거나) 해야 합니다. 즉, 같은 시간에 두 개의 council 그룹 회의가 있을 수 없고, 다른 그룹의 두 회의가 같은 위치에 같은 시간에 있을 수 없습니다.
- "기타"라는 포괄적인 항목이 있는 경우를 제외하면… 그래서 일부 위치는 겹침이 허용되어야 할 것 같습니다.
- 반복 이벤트의 구문은 다소 이상하지만 괜찮습니다. 그러나 반복 이벤트는 캘린더 그리드에서 단순히 반복되어 표시되고(리마인더에서는 다음 것으로 업데이트됨), 그 이상은 아닙니다. 더 많은 기능이 필요합니다:
- 중요: 사용자가 캘린더 항목별로 각 반복 이벤트에 대한 알림을 구독할 수 있어야 합니다.
- 있으면 좋음: 특정 캘린더의 기본 알림에 대한 Discourse 그룹별 설정, 예를 들어 council 그룹 구성원이 council 캘린더 항목에 대한 알림을 기본적으로 받도록 하는 것.
- 있으면 좋음: 다가오는 회의에 대한 15분 전 경고 알림도 설정할 수 있는 기능
- 중요: 전체를 변경하지 않고 특정 이벤트를 건너뛰거나(또는 다른 시간에 개최하도록) 표시할 수 있어야 합니다.
- 중요: 사용자가 캘린더 항목별로 각 반복 이벤트에 대한 알림을 구독할 수 있어야 합니다.
- 현재 이벤트 지속 시간은
[date=2021-11-28 time=12:00:00 timezone="America/New_York"] → [date=2021-11-28 time=13:00:00 timezone="America/New_York"]와 같은 항목으로 처리됩니다. 입력하기가 번거롭고 결과(2021-11-28T17:00:00Z → 2021-11-28T18:00:00Z)가 즉시 명확하지 않습니다. 대신[date=2021-11-28 time=12:00:00 timezone="America/New_York" duration="1 hour"]와 같은 형식이 있으면 좋겠습니다.- 있으면 좋음: 지속 시간이 없는 항목은 시각적으로 다르게 표시되어야 하며, 아마도 “하루 전체” 항목에만 허용되어야 합니다.
- 있으면 좋음: 각 캘린더 항목(반복 항목은 별도로)에 안건 + 노트 토픽으로의 링크를 가질 수 있습니다. 이 토픽은 상호 작용 없이 자동으로 생성되지 않아야 하지만, 한 번의 클릭으로 시작하기 쉬워야 하고, 생성되면 자동으로 링크되어야 합니다.
“휴가” 사용 사례
- 휴가 캘린더도 그룹을 인식해야 합니다. 현재 (Discourse 사이트) Staff에 대한 특수 처리가 있지만, 이는 일반화되고 설정 가능해야 하며, 전역 캘린더 외에도 그룹별로 다른 캘린더가 허용되어야 합니다.
- 기본 설정에서 휴가 캘린더는 로케일이 설정된 모든 사람에게 표준 국경절을 표시합니다. 2개 이상의 다른 위치에 5명 이하의 사람이라면, 이것이 모든 것을 압도합니다. Discourse 팀은 이를 숨기기 위한 임시 해킹을 제공해 주었습니다.
- 있으면 좋음: 현재 직원들은 휴가 중일 때 사용자 이름 옆에
이모지가 표시되며, 이는 다른 직원들에게만 보입니다. 이 아이콘의 가시성을 설정 가능하게 해야 합니다. - 있으면 좋음: 표시되는 이모지를 설정할 수 있도록 허용.
- 보너스 있음: 사용자가 특정 불가 시간(휴가, 병가, 여행 등)에 대해 이모지 _목록_과 이유를 선택할 수 있도록 허용.
Fedora 이벤트
실제로, 현재 우리가 가진 것이 이 용도로 작동할 수 있다고 생각합니다. 그러나 위에서 언급한 것들 중 일부 — 더 아름답고 유연한 캘린더 표시, 알림, 색상 — 이 유용할 것입니다.
기타 가능성에 대해
- 컨퍼런스 일정 사용 사례는 회의 일정 사용 사례와 같지만, 훨씬 더 집중적입니다. 수동으로 충돌을 추적하는 것은 불가능해집니다. 이를 위해 그룹 수준 축 대신 사용자 수준 축이 필요할 수 있습니다. (연사자는 두 곳에 동시에 있을 수 없습니다.) 그리고 15년 동안 거의 변하지 않았고(URL 업데이트 제외) 앞으로 15년 동안도 변하지 않을 우리의 회의실 위치와 달리, 각 이벤트에는 고유한 위치 세트가 있습니다.
- 릴리스 일정 캘린더: 저는 이것이 기존 일정 데이터에서 가져오는 자동화의 문제라고 생각합니다. 기존 캘린더 플러그인이 대부분 작동할 수 있다고 생각합니다. Fedora 이벤트와 마찬가지로, 색상 코딩이 있으면 좋겠습니다.