3.1 Functional Requirements - nus-mtp/sashimi-note GitHub Wiki

Requirements are listed according to their categories. For their completion time, please refer to the Project's milestones.

1. EditorView

1.0 Basic

  • ✔️ #3 Editor can author a document using markdown
  • ✔️ #6 Editor can author a document using HTML and CSS
  • ✔️ #34 Editor can create a new document
  • ✔️ #68 Editor can undo a mistake
  • ✔️ #70 Editor can redo a mistake
  • ✔️ #131 Editor can add a title to the document
  • ✔️ #170 Webapp [Codemirror] should display markdown syntax highlighting for markdown input

1.1 Advance

  • #4 Editor can create document using LaTeX
  • #15 Editor can sort a list of blocks in alphabetical order
  • #17 Editor can use local image in the document
  • ✔️ #19 Editor can search text within the document
  • ✔️ #20 Editor can replace searched text within the document
  • #27 Editor can reposition the image freely within the document
  • #29 Editor can crop the image within the document
  • #30 Editor can scale the image within the document
  • #42 Editor can drag and drop images
  • #90 Editor can construct a glossary of terms with page number included
  • #149 Editor can rotate the image within a document
  • #228 Implement text formatting mechanism

1.2 GUI

  • #11 Editor can edit the document using a GUI

2. ViewerView

2.0 Basic

  • ✔️ #1 Viewer can view the formatted document
  • ✔️ #8 Editor can view the formatted document concurrently while editing the document
  • ✔️ #130 Webapp can synchronize the scrolling of the editor view and viewer view

2.1 Advance

  • #86 Users can navigate around the document the links to header within a table of content
  • ✔️ #132 Editor can split the view or editor screen into side by side layouts
  • #133 Editor can split the view or editor screen into top and bottom layouts
  • #134 Editor can split the view or editor screen into within a split screen

3. DocumentFormatter

  • ✔️ #14 Editor can manage page break within the Pages document
  • #24 Editor can change orientation of the Pages
  • #45 Editor can create transition in the Slides document
  • ✔️ #53 Editor can generate multiple document versions from the same single source
  • ✔️ #64 User can use Pages format for printing
  • ✔️ #99 User can switch between different document formats in a menu
  • ✔️ #153 Editor can manage page break within the Slides document
  • ✔️ #154 Editor can generate a Slides format using a markdown source
  • ✔️ #155 Editor can generate a Pages format using a markdown source
  • ✔️ #207 User can press CMD/CTRL+P and get brought to Pages mode for printing
  • #222 User can change the page size and its margin for Pages mode
  • ✔️ #223 User can pan the document with a mouse in Pages Mode
  • #231 Implement fullscreen mode for Slides mode
  • ✔️ #232 Implement slide navigation control for Slides mode
  • ✔️ #233 Break page "intelligently" for Pages or Slides view

4. FilesManagement

  • ✔️ #9 User can update an existing document
  • ✔️ #10 Editor can save the document as a .md file into the webapp
  • ✔️ #38 User can read an existing document
  • ✔️ #40 User can delete an existing document
  • ✔️ #46 User can download an existing document
  • #49 User can upload a markdown file to the webapp
  • #67 Webapp will keep a revision control for the created document
  • #106 User can make a copy of the document inside the webapp
  • ✔️ #144 User can view file manager in icon view
  • ✔️ #145 User can view file manager in list view
  • ✔️ #148 User can search for a file or folder on the file manager
  • #208 User can export document as a HTML file
  • ✔️ #251 Webapp should prevent user from deleting the root folder

5. Conditional

  • #18 Viewer can select sections of the document to print.
  • #93 Editor can export the conditioned version of the document
  • ✔️ #96 Editor can create a different version of the document with part of the content selectively hidden

6. MarkdownExtras

  • ✔️ #22 Editor can create diagram using textual representation
  • ✔️ #28 Editor can create a Table of content for document
  • ✔️ #32 Editor can type mathematical formulas using latex
  • ✔️ #35 Editor can insert formatted snippets of code

7. Annotations

  • #13 User can save the annotations he/she created on the document
  • #48 User can annotate on the document using an active digital stylus
  • #52 User can annotate on the document using a mouse
  • #54 User can annotate on the documents using a keyboard
  • #57 Audience can view presenter's annotation on the document
  • #61 Audience can save presenter's annotation on the document
  • #73 User can annotate on the documents using touchscreen input

8. ExtensivePlugins

8.0 Basic

  • #12 Editor can embed additional plugins into the document
  • #31 Webapp can allow editor to still interact with the plugin when there is no internet connection
  • #146 Webapp can parse the specific plugin syntax format used by the editor
  • #147 Webapp can import the correct plugin according to the parsed plugin information

8.1 Supports

  • #16 Editor can import external PDF into his own document
  • #41 Editor can embed a video player into the document
  • #50 Editor can embed a diagramming tool document
  • #51 Editor can embed an online code editor into the document
  • #59 Editor can embed an online IDE into the document
  • #62 Editor can embed Octave-Online into the document
  • #78 Editor can embed a 3D visualisation tool into the document
  • #317 Editor can create chart using data retrieve from a table in the markdown

9. UsersManagement

  • #65 Editor have full editing abilities to the document they have access to
  • #80 User can register for an account
  • #81 User can login
  • #83 User can logout
  • #85 User can reset password
  • #87 Platform can send email to a user
  • #88 User can request to reset password with a valid username and email
  • #89 User can request for his username with a valid email
  • #91 Platform can send the user's username to his email upon request
  • #94 Platform can send a password reset link to the user's email upon request
  • #100 User can add other users to have access to view the document he created
  • #101 User can invite other readers to view his document

10. CloudStorage

  • #33 User can store documents in the online storage
  • #152 User can retrieve documents from the online storage

11. DocumentSharing

  • #66 User can receive notification on changes made to the document they subscribed to
  • #75 Editor can edit documents that they have published
  • #102 User can invite collaborators to edit his document
  • #105 User can share presentation file with other users
  • #107 User can take ownership of his own document

12. Discussion

  • #69 Viewer can pin comments to a highlighted section within a document
  • #71 Viewer can reply to a pinned comment

13. ClassroomSession

  • #21 Presenter can stream the annotations created with the audience in real time
  • #37 Viewer can see an indication on where the presenter's current viewing location within the document
  • #43 Viewer can click a button to jump to the presenter's current viewing location within the document
  • #76 Editor can notify subscribed users on the updated documents
  • #82 Presenter can display statistics about where the audiences are currently viewing in the document as a heatmap
  • #84 Audience can view where the Presenter is currently located in the document

15. Quiz

  • #108 Presenter can create a quiz
  • #109 Presenter can set a session for the quiz
  • #110 Presenter can set a time limit for the quiz
  • #111 Presenter can create multiple choice question for the quiz
  • #112 Platform can collect answers from the students in a quiz
  • #113 Platform can tabulate the number of students who answers each choice in multiple choice question
  • #114 Presenter can view the number of students who select each choice in multiple choice question

16. Feedback

  • #115 Audience can submit an anonymous feedback to the presenter
  • #116 Audience can add questions in real-time during a classroom session to clarify any doubts
  • #117 Platform can collect user login time
  • #118 Platform can collect how many characters an audience annotate in text for a lecture note
  • #119 Platform can collect information about the number of audience viewing at each section at a particular time interval
  • #120 Platform can collect the time audience spent to annotating on the document

17. Security

  • #79 Webapp can prevent plugins from accessing HTML content beyond its own root
  • #98 Platform can prevent unauthorized access to a document
  • ✔️ #150 Webapp will sanitize any scripts that were written into the markdown document
  • ✔️ #151 Webapp will sanitize input in the file search to prevent SQL injection
  • ✔️ #181 Webapp will sanitise potential XSS execution for markdown-it
  • #309 Webapp should be forced to use https connection on load



Closed 32.3%

⚠️ **GitHub.com Fallback** ⚠️