Skip to content

Requirements & Specification

Jaemin Choi edited this page Dec 10, 2023 · 11 revisions

Software Development Principles and Practice 2023

Product : Calendy

Team 10 : Jajuboja (자주보자)

Requirement & Specification Guidelines

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

Abstract

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.

Customer

  • 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

Competitive Landscape

Untitled

Terms

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).

Functional Requirements

Use Cases

Case 01 : View Weekly Schedule

  • Goal: User gets a screen with all the plans of the week
  • Actor: User
  • Pre-conditions: User is at weekly view page
  • Main Scenario:
    1. User moves to weekly view page
    2. From the local storage, bring plan datas of the week
    3. Fill weekly view with the data.
  • Success End: User gets view with weekly plans
  • Failure End & Extensions:

Case 02 : View Monthly Schedule

  • Goal: User gets a screen with all the plans of the Month
  • Actor: User
  • Pre-conditions: User is at monthly view page
  • Main Scenario:
    1. User moves into monthly view page
    2. From the local storage, bring plan datas of the month
    3. Fill monthly view with the data.
  • Success End: User gets view with monthly plans
  • Failure End & Extensions:

Case 03 : View Daily Plan from Monthly Page

  • 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:
    1. User selects a day with at least one plan.
    2. Pop up which contains list of plans of the selected day.
    3. User select one of them.
    4. Move to Single view.
  • Success End: User moved to single plan which has selected.
  • Failure End & Extensions:
    1. User clicks day with no plan.
      1. The day is selected, but no pop up opens.
      2. If selected again, move to add plan (=edit plan) view.

Case 04 : View Daily Plan from Weekly Page

  • 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:
    1. User selects a time slot with at least one plan.
    2. Pop up which contains list of plans of the selected time.
    3. User select one of them.
    4. Move to Single view.
  • Success End: User moved to single plan which has selected.
  • Failure End & Extensions:
    1. User clicks time with no plan.
      1. Do nothing.

Case 05 : View Todo List

  • Goal: User gets list of todo list within some days
  • Actor: User
  • Pre-conditions: User is at Todo list page
  • Main Scenario:
    1. User moves into todo list page
    2. From the local storage, bring todo datas within 7 days, starting from today
    3. Fill todo element in the list, in sorted order
    4. If user scrolls up at the top, bring former todo datas within 7 days
    5. 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:
    1. If user scrolls up or down but no data to load
      1. Do nothing. Keep the todo view components unchanged

Case 06 : Add Plan

  • 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:
    1. User clicks ‘Add plan’ button or empty block of weekly calendar.
    2. Opens plan Editing page. System automatically write default time values.
    3. Writes content of plan.
      1. At least title and time is required.
        1. If it is a schedule, enter start and end time or day.
        2. If it is a todo, enter only a single time or day or month or year.
      2. Write other optional contents (category, priority)
    4. Press done button.
  • Success End: Data is saved in local storage, and it will be displayed in each views.
  • Failure End & Extensions:
    1. User did not enter the title.
      1. Save title as (”Untitled”)
    2. App or page is closed unexpectedly
      1. Contents are lost and the data will not be saved.

Case 07 : Edit Plan

  • 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:
    1. User clicks ‘Edit plan’ button.
    2. Opens plan Editing page. System finds the corresponding plan data in local storage and set the values.
    3. Edit content of plan.
    4. Press done button.
  • Success End: Data is edited , and it will be displayed in each views.
  • Failure End & Extensions:
    1. User did not enter the title.
      1. Save title as (”Untitled”)
    2. App or page is closed unexpectedly
      1. Edited contents are lost and the data will not be updated.

Case 08 : AI Manager - Get Daily Briefing

  • 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:
    1. User enter ‘브리핑 해줘’ to AI Manager
    2. App requires server to make briefing with the plan data.
    3. Server sends API call, get response, and send back to app.
    4. App gets response.
    5. 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:
    1. User’s device is not connected to internet
      1. Alert user to check internet connection (”인터넷 연결을 확인해주세요”)

Case 09 : AI Manager - Add or Edit Plan by Text

  • 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:
    1. User writes text into textview, and press send.
    2. App sends request with the text to server.
    3. Server requests text interpretation to AI API.
    4. Server gets formatted data from AI API, and send response to app
    5. 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:
    1. Failed internet connection
      1. Alert user to check the network.
      2. User checks internet, and retries

Case 10 : AI Manager - Add or Edit Plan by Voice

  • 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:
    1. User touch mic button and talk.
    2. App sends request with the text to server.
    3. Server requests text interpretion to AI API.
    4. Server gets formatted data from AI API, and send response to app
    5. 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:
    1. Failed internet connection
      1. Alert user to check the network.
      2. User checks internet, and retries

User Stories

User Story 1: Integrated Management of To-Do’s and Schedules

  • 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.

User Story 2: Insert, Update, Delete Plans via App Screen Interaction

  • 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.

User Story 3: Insert, Update, Delete Plans via Text Prompt

  • 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.

User Story 4: Get Summarized Report of Plans by AI Manager

  • 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.

User Story 5: Manage Plans via Voice Input to AI Manager

  • 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.

Non-functional Requirements

Performance

AI API Call

  • Average response time from user request should not be late more than 3 seconds, for every AI prompt request

CRUD API Call

  • 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

UI element optimization

  • For each view with a lot of plan list, they should not be laggy

Usability

AI Manager usability

  • for a single prompt request about a plan, app should find exact plan data

User Interface Requirements

  • Calendy overall wireframe
Untitled 1
  • AI manager detail wireframe
Untitled 2