2014-11-15 2 views
0

클라이언트 용 간단한 예약 응용 프로그램을 구축 중입니다. 교사는 학생들에게 과제물 달력을 만들 수 있습니다. 한 학생이 한 번에 모든 과제를 캘린더에 추가 할 수있는 기능을 제공하고 싶습니다. 4 주 동안 20 개의 과제가 있다고 가정 해보십시오. 이 기능을 사용하면 학생이 한 파일을 다운로드하거나 특정 피드를 따라 한 번에 20 개의 모든 과제를 자신의 캘린더에 추가 할 수 있습니다.여러 데이터베이스 레코드를 iCal 또는 gCal로 내 보냅니다.

내 머리 속에는 이것이 하나의 iCal 파일이지만 iCal이 그런 식으로 작동하는지 잘 모르겠습니다. 또는 각 코스 /course/basket-weaving-101_51/에는 RSS 피드 /course/basket-weaving-101_51/cal/을 사용할 수 있습니다.

경험이 있거나 도움이 될만한 사람이 있습니까?

답변

1

예, url을 통해 매개 변수를 받아들이는 피드 프로그램을 사용하여 원하는 세부 수준의 구독 가능한 캘린더 피드를 제공 할 수 있습니다. 나는 학생 수준에서 ... subscribeable이라고 말합니다./student_id_or_name? feed = ics는 학생들에게 가장 편리한 해결책을 제공 할 것입니다. 그들은 한 번 구독 할 수 있고 시간이 지남에 따라 모든 과정에 등록 된 모든 과목 과제는 달력 응용 프로그램이 피드를 새로 고침함에 따라 자동으로 나타날 수 있습니다.

단일 과제는 하나의 '이벤트'피드를 제공 할 수도 있습니다. 하지만 구독하기보다는 기본 캘린더로 가져와야합니다.

구독은 가져 오기와 다릅니다. 도움말은 사용자가 피드에서하는 일과 동일하므로 도움말을 작성해야합니다.

가져 오기 (또는 캘린더에 추가)는 일회성이며 새 이벤트/할당으로 업데이트되지 않습니다.

별도의 캘린더로 구독하는 것이 가장 좋습니다. 대부분의 캘린더 앱에서 필요에 따라 캘린더를 선택하고 선택을 취소 할 수 있기 때문입니다. 나는 (그리고 공휴일 등) 가입 mykids 시간표를 가지고 있지만 그것은 매우 바쁜보기, 그래서 종종 나는 그들을 깨끗이보기 untick.

+0

그게 내가 원하는 것 같습니다. 강사가 변경 한 내용을 기반으로 일정 항목을 업데이트 할 수있는 기능이 매력적입니다. 구독 가능한 단일 캘린더로 인해 한 학생이 여러 코스를 "가져올"수 있다고 생각하십니까? 여기서는 일반적인 용어로 가져 오기를 사용합니다. – commadelimited

+0

물론 학생 캘린더 피드의 이벤트를 선택하는 데 올바른 논리가 있어야합니다. 대부분의 캘린더 응용 프로그램은 구독을 허용하고 일정 간격으로 캘린더를 새로 고칩니다. 이벤트를 가져 오면 새로 고침이 발생하지 않습니다. 그런 다음 하나가 자신의 복사본을 만든 것처럼 보입니다. Google 캘린더 나 스마트 폰을 사용하여 자신의 개념을 증명하는 것이 꽤 빠를 것입니다. – anmari

1

다른 캘린더 클라이언트 (Outlook, 웹 메일)가 ical을 처리하는 방법에 익숙해 져야 가장 적합한 방법을 결정할 수 있습니다. 일반적으로, 그들은 ical 치료를위한 두 가지 모드를 가지고 있습니다 : "초대장 수락"과 "인터넷 캘린더 가입".

"초대 수락"의 가장 큰 장점은 일정이 사용자의 일정에 들어가고 사용자가 이벤트를 만든 것처럼 미리 알림을 생성하는 것입니다. 단점은 초대장을 이메일로 한 번에 하나의 "이벤트"로 보내야한다는 것입니다. 특히 Outlook에서 캘린더에 나타나기 전에 메일로 볼 필요가있을 수 있습니다. 20 개 이상의 과제를 보내면받는 사람에게 스팸으로 느껴질 수 있습니다.

"인터넷 일정에 가입하십시오"는 피드가 피드가 아니라는 점에서 약간 오해의 소지가 있습니다. 웹 사이트에 "전체 일정"을 넣으면 클라이언트가 웹 사이트를 폴링합니다. Outlook과 웹 메일 클라이언트는 일반적으로 이러한 캘린더를 표시하는 것이 좋지만 이벤트를 사용자 자신의 캘린더로 "가져 오는"것은 약간 어색합니다. Gmail과 웹 메일은 기본적으로 같은 표에 정보를 표시합니다. Outlook은 각 달력에 대해 새로운 그리드를 표시합니다.

수정은 구독 시나리오에서 좀 더 복잡합니다. 초대 된 시나리오에서는 변경된 이벤트가 포함 된 메일 하나를 보내는 반면 영향을받은 학생의 전체 캘린더를 다시 생성하려고 할 것입니다.

교육 과정, 학생 및 등록이있는 데이터베이스가있는 경우에도 학생 1 인당 숫자를 생성하고 학생 번호로 이름을 지정하고 캘린더 폴더에서 깨우는 멋진 작은 앱을 만들 수 있습니다. 학생은 http://myuniversity.com/calendars/12345.ical에 한 번 구독하고 각 학기의 모든 과제는 웹 캘린더에 자동으로 등록됩니다.

가입 링크에주의하십시오. 수만 명의 학생들이 동적으로 생성 된 캘린더에 가입 (극대화)하면 불필요한 처리가 많이 발생하며 성능 문제가 발생할 가능성이 큽니다. 정적 파일을 생성하고 싶다면 웹 서버가 클라이언트와 재전송해야하는지 여부를 협상 할 수 있습니다.

+0

제 5 절에서 당신의 제안이 내가 원하는 것 같아 보입니다. .ical 파일은 요청에 따라 동적으로 생성 될 수도 있고, 특정 이벤트가 발생한 후 생성되어 서버에 캐시 될 수도 있습니다. 어느 쪽이든 사용자는 원하는 것을 얻을 수 있습니다. 나는 이것이 내가 들어가기를 원하는 방향이라고 생각한다. iCal 파일을 매우 간단하게 생성하고 있는가? 그것은 단지 XML입니다. 나는 그 사양을 계속 지키고있다. 나는 좋다. – commadelimited

+0

가입 링크가있는 한, 이것은 클라이언트가 대학에 관심을 갖도록 만드는 새로운 앱입니다. 스케일링은 적어도 몇 달은 거의 갖지 못할 문제입니다. – commadelimited

+0

캘린더 앱이 ics 피드를 '폴링'할 때 불필요한 추가 처리를 피하기 위해 변경 사항이있을 경우에만 학생 ics 피드 (고유 URL)를 캐싱하고 변경 사항이있을 경우 업데이트 할 수 있습니다. 나는 초대장을 보내는 것이 스팸처럼 느껴지고 모든 사람들이 초대를 '받아들이는'방법을 알지 못한다는 것에 동의한다. Google 캘린더가 Gmail을 통해 다른 Google 메일 계정으로 초대장을 보내는 경우에도 원활하게 작동하지는 않는다. – anmari