-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements & Specification
Rev. 2023/10/05 10:25 ver 1.0 (By Hochan Bang)
- Initial creation
Rev. 2023/10/21 00:00 ver 1.1 (By Yoonjae Jung)
- Separated Use Cases & User Stories and added User Stories
Rev. 2023/11/5 10:00 ver 1.2 (By Jaemin Choi)
- Add detail wireframe of AI manager feature & update competitive landscape
Rev. 2023/11/12 23:50 ver 1.3 (By Gunwoo Kim)
- Update User Stories for User Acceptance Test
Rev. 2023/11/19 18:00 ver 1.4 (By Gunwoo Kim)
- Update Use Cases
- Update User Interface Requirements
Rev. 2023/12/03 20:30 ver 1.5 (By Hyehyun Chu)
- Update Use Cases
- Update User Stories for User Acceptance Test
In today's busy world, keeping track of your schedule is a necessity. Whether it's classes, work, assignments, to-dos, or appointments with people, we use a variety of different methods and tools to keep track of our schedules, including calendars, weekly schedules, and to-do lists. Sometimes, however, our schedules can get scattered and confusing, and we can miss important things.
Calendy is a scheduling software developed to solve this problem, giving users the ability to effectively manage and organize their schedules. It offers a variety of forms for managing your schedule, and you can see them all at a glance on one screen.
Furthermore, Calendy provides a personalized schedule management service based on your schedule information. It provides you with a briefing that includes your schedule for the day, as well as reminders of important events, and helps you manage your schedule in the form of a conversation with an AI manager.
- People who struggle to manage multiple schedules in their private and public lives.
- People who feel fatigued and confused by disparate scheduling tools
- People who often forgetting and missing things that need to be done
Plan : A collective term for plans and to-do lists.
Schedule : Plan with start and end time.
Todo : Plan with only one time information(deadline).
- Goal: User gets a screen with all the plans of the week
- Actor: User
- Pre-conditions: User is at weekly view page
-
Main Scenario:
- User moves to weekly view page
- From the local storage, bring plan datas of the week
- Fill weekly view with the data.
- Success End: User gets view with weekly plans
- Failure End & Extensions:
- Goal: User gets a screen with all the plans of the Month
- Actor: User
- Pre-conditions: User is at monthly view page
-
Main Scenario:
- User moves into monthly view page
- From the local storage, bring plan datas of the month
- Fill monthly view with the data.
- Success End: User gets view with monthly plans
- Failure End & Extensions:
- Goal: Open detailed page of selected single plan.
- Actor: User
- Pre-conditions: User is at monthly page, and selects a day with at least one plan.
-
Main Scenario:
- User selects a day with at least one plan.
- Pop up which contains list of plans of the selected day.
- User select one of them.
- Move to Single view.
- Success End: User moved to single plan which has selected.
-
Failure End & Extensions:
- User clicks day with no plan.
- The day is selected, but no pop up opens.
- If selected again, move to add plan (=edit plan) view.
- User clicks day with no plan.
- Goal: Open detailed page of selected single plan.
- Actor: User
- Pre-conditions: User is at weekly page, and selects a time slot with at least one plan.
-
Main Scenario:
- User selects a time slot with at least one plan.
- Pop up which contains list of plans of the selected time.
- User select one of them.
- Move to Single view.
- Success End: User moved to single plan which has selected.
-
Failure End & Extensions:
- User clicks time with no plan.
- Do nothing.
- User clicks time with no plan.
- Goal: User gets list of todo list within some days
- Actor: User
- Pre-conditions: User is at Todo list page
-
Main Scenario:
- User moves into todo list page
- From the local storage, bring todo datas within 7 days, starting from today
- Fill todo element in the list, in sorted order
- If user scrolls up at the top, bring former todo datas within 7 days
- If user scrolls down at the bottom, bring latter todo datas within 7 days
- Success End: User can see todo list of periods.
-
Failure End & Extensions:
- If user scrolls up or down but no data to load
- Do nothing. Keep the todo view components unchanged
- If user scrolls up or down but no data to load
- Goal: User wants to add plan
- Actor: User
- Pre-conditions: User can click ‘Add Plan’ button. It’s in weekly/monthly page, daily popup, todo list page, and monthly todo list view. Or in Weekly page, user can click empty block of calendar.
-
Main Scenario:
- User clicks ‘Add plan’ button or empty block of weekly calendar.
- Opens plan Editing page. System automatically write default time values.
- Writes content of plan.
- At least title and time is required.
- If it is a schedule, enter start and end time or day.
- If it is a todo, enter only a single time or day or month or year.
- Write other optional contents (category, priority)
- At least title and time is required.
- Press done button.
- Success End: Data is saved in local storage, and it will be displayed in each views.
-
Failure End & Extensions:
- User did not enter the title.
- Save title as (”Untitled”)
- App or page is closed unexpectedly
- Contents are lost and the data will not be saved.
- User did not enter the title.
- Goal: User wants to edit selected plan
- Actor: User
- Pre-conditions: User can click title of each plan. It’s in single plan view at daily popup, todo list page, and monthly todo list view.
-
Main Scenario:
- User clicks ‘Edit plan’ button.
- Opens plan Editing page. System finds the corresponding plan data in local storage and set the values.
- Edit content of plan.
- Press done button.
- Success End: Data is edited , and it will be displayed in each views.
-
Failure End & Extensions:
- User did not enter the title.
- Save title as (”Untitled”)
- App or page is closed unexpectedly
- Edited contents are lost and the data will not be updated.
- User did not enter the title.
- Goal: User gets daily briefing
- Actor: User wants to get daily briefing at morning (8 am)
- Pre-conditions: User’s device is connected to internet. App is running in background.
-
Main Scenario:
- User enter ‘브리핑 해줘’ to AI Manager
- App requires server to make briefing with the plan data.
- Server sends API call, get response, and send back to app.
- App gets response.
- App send push alarm and add the text to chat page.
- Success End: User gets daily briefing with today’s plans and reminders of important plans within few days
-
Failure End & Extensions:
- User’s device is not connected to internet
- Alert user to check internet connection (”인터넷 연결을 확인해주세요”)
- User’s device is not connected to internet
- Goal: User wants to add or edit existing plan by natural language text
- Actor: User
- Pre-conditions: User is at AI Manager chat page. User’s device is connected to internet.
-
Main Scenario:
- User writes text into textview, and press send.
- App sends request with the text to server.
- Server requests text interpretation to AI API.
- Server gets formatted data from AI API, and send response to app
- App gets response, post-process the data, add new plan or edit existing plan
- Success End: Plan is successfully added or edited.
-
Failure End & Extensions:
- Failed internet connection
- Alert user to check the network.
- User checks internet, and retries
- Failed internet connection
- Goal: User wants to add or edit existing plan by natural language speech
- Actor: User
- Pre-conditions: User is at AI Manager chat page. User’s device is connected to internet.
-
Main Scenario:
- User touch mic button and talk.
- App sends request with the text to server.
- Server requests text interpretion to AI API.
- Server gets formatted data from AI API, and send response to app
- App gets response, post-process the data, add new plan or edit existing plan
- Success End: Plan is successfully added or edited.
-
Failure End & Extensions:
- Failed internet connection
- Alert user to check the network.
- User checks internet, and retries
- Failed internet connection
- As an organized person, I can manage my tasks, personal schedules, and official schedules(such as school and work) in one application, so that I don’t have to use multiple services to manage my duties.
- Acceptance Criteria:
- Scenario: Schedules and ToDos should be handled in the one app
- Given I am on the Weekly / Monthly Calendar page,
- When I move to the date I want to check,
- Then all the plans for that week / month should be distinguishably visible.
- Given I am on the Todo List Page,
- When I set the filter or leave it as none,
- Then all the ToDos matching the condition should be visible.
- As a user, I can add new detailed plan to my calendar, so that I can update my schedule with all the information I want to include. After that, I want to update the plan I want with a touch to an app screen interaction, so that I can update the information of the plan I intended to change.
- Acceptance Criteria:
- Scenario: Intended plans and changes should be added and updated to the calendar
- Given I am on the Weekly / Monthly Calendar Page,
- When I click an add plan button on navigation bar,
- Then I can move on to Add Plan Page. And on the Add Plan Page, I can enter all the information I want about the plan to register it.
- Given I recognize something I want to change about the plan (e.g., the title, time, memos, etc.), click the specific plan to enter the Edit Plan Page.
- When, I make any changes I want and then confirm the undated plan.
- Then, I can able to see that the changes are well reflected on the Weekly / Monthly Calendar Page.
- As a user, I can add new plan quickly using a simple text prompt, so that I can easily update my schedule without navigating through complex menus. After that, I want to delete all my plans for today with a single text prompt, so that I don’t have to go through the pain of deleting all the plans one-by-one.
- Acceptance Criteria:
- Scenario: Intended plans should be added to and deleted from the calendar
- Given I am on the Manager Page,
- When I send a message such as “이번 주 목요일 저녁 7시에 컴퓨터구조 시험 추가해줘.”, “이번 주 목요일 저녁 7시에 컴퓨터구조 시험봐야해”, “이번 주 목요일 저녁 7시에 컴퓨터구조 시험이 있어” to add ‘컴퓨터구조 시험’ at this thursday 7pm,
- Then AI Manager should insert corresponding plan (in this case, “컴퓨터구조 시험” for this Thursday) and notice me.
- And Given, I am on the Manager Page,
- When I send a message such as “오늘 계획 모두 삭제해줘.”, “오늘은 쉴래”,
- Then AI Manager should delete all the plans of today and notice me.
- As a user, I can receive text summaries for a specific time scope of my future in natural language, so that I can intuitively & quickly evaluate the plans of my upcoming days.
- Acceptance Criteria:
- Scenario: Intends to get a summary of my plans of upcoming days plans entered into the calendar
- Given I am on the Manager Page,
- When I ask AI Manager for the summarization of my plans up to a certain point in time by message such as “오늘 일정 보여줘”, “오늘 일정 중요한 순서대로 알려줘”, “브리핑 해줘”
- Then AI Manager should give a summarized report that reflects priority & number of plans in natural language.
- As a user who don’t have free hand now, I can use AI Manager feature with a single voice command, so that I don’t have to go through finding the correct time scope and typing in all the details.
- Acceptance Criteria:
- Scenario: Willing to use the app with voice controls because of inability to type text due to lack of use of hands
- Given I am on the AI Manager of the app,
- When I click the Mic Button next to text input field,
- Then AI Manager should recognize correct voice prompt as text, move to AI Manager page and execute the requested task.
- Average response time from user request should not be late more than 3 seconds, for every AI prompt request
- For local storage, performance time from calling (searching) existing data to showing data as view should not be late more than 0.5 seconds, for every screen
- For each view with a lot of plan list, they should not be laggy
- for a single prompt request about a plan, app should find exact plan data
- Calendy overall wireframe

- AI manager detail wireframe
