Commit 6c8360177c7a9c89c779c430dfb8ead44775d565

Authored by Kevin Mach
Exists in master

Merge branch 'master' of git.ucsd.edu:110swag/docs

Showing 2 changed files Side-by-side Diff

DesignUseCases.tex View file @ 6c83601
... ... @@ -1130,14 +1130,17 @@
1130 1130 \item
1131 1131 {The User shall highlight the words that he wishes to blank out.}
1132 1132 \item
  1133 + {The frontend shall enclose the selected text in \textless{}b\textgreater{} tags to alter its appearance.}
  1134 +\item
1133 1135 {The User shall click the 'Contribute' button.}
1134 1136 \item
  1137 + {The frontend shall convert the blanked portion of the text into a list of offsets to be
  1138 + sent to the backend in FeedController.js.}
  1139 +\item
1135 1140 {The backend shall mark those words by updating the field mask for
1136 1141 that userflashcard object in views.py in function create. }
1137 1142 \item
1138   - {The backend shall save those in models.py.}
1139   -\item
1140   - {The frontend shall change the color of the text that was blanked out in flashcard.html.}
  1143 + {The backend shall save the new mask in models.py.}
1141 1144 \end{enumerate}
1142 1145  
1143 1146 {Alternative Workflows:}
1144 1147  
... ... @@ -1149,13 +1152,15 @@
1149 1152 \item
1150 1153 {The User shall highlight selection text and click either ctrl-b or 'Blank Selected Text'.}
1151 1154 \item
  1155 + {The frontend shall enclose the selected text in \textless{}b\textgreater{} tags to alter its appearance.}
  1156 +\item
  1157 + {The frontend shall convert the blanked portion of the text into a list of offsets to be
  1158 + sent to the backend in CardGridController.js.}
  1159 +\item
1152 1160 {The backend shall mark those words by updating the field mask for
1153 1161 that userflashcard object in views.py in function create. }
1154 1162 \item
1155 1163 {The backend shall save those in models.py.}
1156   -\item
1157   - {The frontend shall change the color of the text that was blanked out in flashcard.html.}
1158   -
1159 1164 \end{enumerate}
1160 1165 \end{description}
1161 1166 {}
1162 1167  
... ... @@ -1343,97 +1348,7 @@
1343 1348  
1344 1349 {}
1345 1350 \section{Decks}
1346   -\subsection{[-D2-] Making a deck - Removed}
1347 1351  
1348   -\begin{description}
1349   -\item[Description]{Upon selecting the right course, the student has the
1350   -power to make a deck by either selecting existing flashcard or adding a
1351   -new flashcard.}
1352   -
1353   -\item[Desired Outcome]{The user can keep track of cards that s/he wants.}
1354   -\\
1355   -\item[User Goals]{The user has a personal deck ready for review later.}
1356   -
1357   -\item[Primary Actor]{User (student)}
1358   -
1359   -\item[Dependency Use Cases]{Add a class {[}A3{]}, Add Flashcards to Deck
1360   -{[}F1{]}, Make a Flashcard {[}F3{]}}
1361   -\\
1362   -\item[Priority Level]{``Must''}
1363   -
1364   -\item[Status]{In Progress}
1365   -
1366   -\item[Pre-conditions]
1367   -
1368   -\begin{itemize}
1369   -\itemsep1pt\parskip0pt\parsep0pt
1370   -\item
1371   - {The user has an account with the application. }
1372   -\item
1373   - {The user has been added to the desired class.}
1374   -\end{itemize}
1375   -
1376   -\item[Post-conditions]
1377   -
1378   -\begin{itemize}
1379   -\itemsep1pt\parskip0pt\parsep0pt
1380   -\item
1381   - {Desired cards are added to user's deck to the specific class }
1382   -\item
1383   - {User's deck is added to the database.}
1384   -\end{itemize}
1385   -
1386   -\item[Trigger]{The User wants to have a collection of cards.}
1387   -
1388   -\item[Workflow]
1389   -
1390   -\begin{enumerate}
1391   -\itemsep1pt\parskip0pt\parsep0pt
1392   -\item
1393   - {User is at their dashboard.}
1394   -\item
1395   - {User selects the class of interest that they had no activity in yet.}
1396   -\item
1397   - {Client displays the Live Feed for the class.}
1398   -\item
1399   - {User presses ``Pull Flashcard'' button on a Flashcard that they want
1400   - in their Deck.}
1401   -\item
1402   - {The server creates a Deck for the User for the Class of interest.}
1403   -\item
1404   - {The server adds the Flashcard to the User's Deck.}
1405   -\item
1406   - {The Client makes the Flashcard disappear from the Live Feed.}
1407   -\item
1408   - {The Client displays the Flashcard in the User's Deck in the sidebar.}
1409   -\end{enumerate}
1410   -
1411   -{Alternate Workflow:}
1412   -
1413   -\begin{enumerate}
1414   -\itemsep1pt\parskip0pt\parsep0pt
1415   -\item
1416   - {User is at their dashboard.}
1417   -\item
1418   - {User selects the class of interest that they had no activity in yet.}
1419   -\item
1420   - {Client displays the Live Feed for the class.}
1421   -\item
1422   - {The User adds a Flashcard into the Class.}
1423   -\item
1424   - {The server creates a Deck for the User for the Class of interest.}
1425   -\item
1426   - {The server adds the new Flashcard to the User's Deck.}
1427   -\item
1428   - {The Client makes the Flashcard disappear from the Live Feed.}
1429   -\item
1430   - {The Client displays the Flashcard in the User's Deck in the sidebar.}
1431   -\end{enumerate}
1432   -\end{description}
1433   -\newpage
1434   -
1435   -{}
1436   -
1437 1352 \subsection{[D1] Remove a card from a deck}
1438 1353  
1439 1354 \begin{description}
... ... @@ -1527,93 +1442,6 @@
1527 1442 \end{enumerate}
1528 1443 \end{description}
1529 1444  
1530   -\subsection{[-D2-] Shuffling deck - Removed}
1531   -
1532   -\begin{description}
1533   -\item[Description]{User is able to shuffle his/her deck as a way to study
1534   -the flashcards}
1535   -
1536   -\item[Desired Outcome]{When taking a quiz, the user will notice that
1537   -flashcards appear in random order}
1538   -
1539   -{User Goals:}{Improve quiz taking skills and knowledge consumption}
1540   -
1541   -\item[Primary Actor]{User (student)}
1542   -
1543   -\item[Dependency Use Cases]{Deck has been created {[}D2{]}}
1544   -\\
1545   -\item[Priority Level]{}{''Won't''}
1546   -
1547   -\item[Status]{Implemented }
1548   -
1549   -\item[Pre-conditions]
1550   -
1551   -\begin{itemize}
1552   -\itemsep1pt\parskip0pt\parsep0pt
1553   -\item
1554   - {User must have registered for course }
1555   -\end{itemize}
1556   -
1557   -\begin{itemize}
1558   -\itemsep1pt\parskip0pt\parsep0pt
1559   -\item
1560   - {User must have added cards to deck.}
1561   -\end{itemize}
1562   -
1563   -\item[Post-conditions]{}
1564   -
1565   -\begin{itemize}
1566   -\itemsep1pt\parskip0pt\parsep0pt
1567   -\item
1568   - {User takes a quiz and notice the deck has been shuffled.}
1569   -\end{itemize}
1570   -
1571   -\item[Trigger]{The User wants to review their cards in random order.}
1572   -
1573   -\item[Workflow]
1574   -
1575   -\begin{enumerate}
1576   -\itemsep1pt\parskip0pt\parsep0pt
1577   -\item
1578   - {User is on the homepage.}
1579   -\item
1580   - {User selects the ``Study'' button for the Class they want to view or
1581   - shuffle cards for.}
1582   -\item
1583   - {The Client displays their Deck for the Class of interest.}
1584   -\item
1585   - {User clicks on ``shuffle deck'' button to shuffle the deck,
1586   - randomizing the order in which it will be displayed.}
1587   -\item
1588   - {The Client displays a change in card ordering.}
1589   -\item
1590   - {System reorders cards' study order.}
1591   -\end{enumerate}
1592   -
1593   -{Alternate Workflow: }
1594   -
1595   -\begin{enumerate}
1596   -\itemsep1pt\parskip0pt\parsep0pt
1597   -\item
1598   - {User is on the homepage.}
1599   -\item
1600   - {User selects Class of interest.}
1601   -\item
1602   - {The Client displays the Live Feed for the Class.}
1603   -\item
1604   - {User clicks on ``shuffle deck'' button to shuffle the deck,
1605   - randomizing the order in which it will be displayed.}
1606   -\item
1607   - {The Client displays a change in card ordering.}
1608   -\item
1609   - {System reorders cards' study order.}
1610   -\end{enumerate}
1611   -\end{description}
1612   -{}
1613   -
1614   -\newpage
1615   -
1616   -{}
1617 1445  
1618 1446 \subsection{[D2] Viewing cards in deck by pull time}
1619 1447  
TestCases.tex View file @ 6c83601
... ... @@ -74,7 +74,7 @@
74 74 \subsection{[A1] User Registration}
75 75 \begin{description}[style=multiline,leftmargin=3cm]
76 76  
77   -\item[Description:]{This test case outlines the presentation layer step
  77 +\item[Description:]{This test case outlines the presentation layering step
78 78 process of a user registering for an account with our application.}
79 79  
80 80 \item[Desired Outcome:]{An account will be created for the User from the
... ... @@ -241,7 +241,7 @@
241 241  
242 242 \subsection{[A3] Add a Class}
243 243 \begin{description}
244   -\item[Description:]{This test case outlines the presentation layer step
  244 +\item[Description:]{This test case outlines the presentation layering step
245 245 process of a user adding a class.}
246 246  
247 247 \item[Desired Outcome:]{The class shall be linked with the student's account
... ... @@ -363,7 +363,7 @@
363 363 \subsection{[A4] Drop a Class}
364 364  
365 365 \begin{description}
366   -\item[Description:]{This test case outlines the presentation layer step process of a user dropping a class.}
  366 +\item[Description:]{This test case outlines the presentation layering step process of a user dropping a class.}
367 367  
368 368 \item[Desired Outcome:]{The User has dropped the class and no longer needs
369 369 access to the flashcards for the dropped class. They can no longer
... ... @@ -421,8 +421,8 @@
421 421 \subsection{[A5] Password Change}
422 422  
423 423 \begin{description}
424   -\item[Description:]{The User shall be able to change the password for their
425   -account in the account settings. This requires that they are logged in.}
  424 +\item[Description:]{This test case outlines the presentation layering step process
  425 +of a user changing their password.}
426 426  
427 427 \item[Desired Outcome:]{The User's password shall be changed and the user
428 428 shall be able to log in with the new password in the future.}
... ... @@ -495,7 +495,7 @@
495 495 \item[Expected Result:] {The System shall display a toast ``Your old password is not correct''.}
496 496 \\
497 497  
498   -\item[Workflow:]
  498 +\item[Alternate Workflow B:]
499 499 \begin{enumerate}
500 500 \itemsep1pt\parskip0pt\parsep0pt
501 501 \item
... ... @@ -518,7 +518,7 @@
518 518 \subsection{[A6] Password Reset}
519 519  
520 520 \begin{description}
521   -\item[Description:]{This test case outlines the presentation step layering process of
  521 +\item[Description:]{This test case outlines the presentation layering step process of
522 522 a user requesting a password reset without logging in.}
523 523  
524 524 \item[Desired Outcome:]{The User's password shall be changed to one that
525 525  
... ... @@ -591,11 +591,12 @@
591 591  
592 592 \item[Alternate Workflow:]
593 593 \begin{enumerate}
594   -\setcounter{enumi}{4}
  594 +\setcounter{enumi}{2}
595 595 \itemsep1pt\parskip0pt\parsep0pt
596 596 \item
597   - {If no such account exists, the System shall display an error message
598   -``Enter a valid email!'' to UserX.}
  597 + {UserX shall submit an invalid email \mbox{``NotUserX@flashy.cards''}.}
  598 +\item
  599 + {The System shall display an error message ``Enter a valid email!'' to UserX.}
599 600 \end{enumerate}
600 601  
601 602 \item[Expected Result:] {UserX's password will not be reset.}
... ... @@ -607,7 +608,8 @@
607 608 \subsection{[A7] Student Prevented From Accessing A Restricted Course}
608 609  
609 610 \begin{description}
610   -\item[Description:]{The User shall not be able to access a restricted course.}
  611 +\item[Description:]{This test case outlines the presentation layering step process of
  612 +an instructor limiting access to a class.}
611 613  
612 614 \item[Desired Outcome:]{The class will have limited access and only those
613 615 users who are whitelisted may enroll in the class.}
... ... @@ -725,7 +727,8 @@
725 727 \subsection{[A9] Contact Admin}
726 728  
727 729 \begin{description}
728   -\item[Description]{The User shall be able to contact the admin.}
  730 +\item[Description]{This test case outlines the presentation layering step
  731 +process of a user contacting site admins.}
729 732  
730 733 \item[Desired Outcome]{The User shall send a message to the admin; the
731 734 admin shall receive the message.}
... ... @@ -820,7 +823,7 @@
820 823 \subsection{[F1] Push Flashcard}
821 824  
822 825 \begin{description}
823   -\item[Description:]{This test case outlines the presentation layer step
  826 +\item[Description:]{This test case outlines the presentation layering step
824 827 process of a User contributing a flashcard to the live feed and to their deck.}
825 828  
826 829 \item[Desired Outcome:]{The User shall have the flashcard added to their own deck
... ... @@ -1248,7 +1251,7 @@
1248 1251 \subsection{[F5] Filter Flashcards}
1249 1252  
1250 1253 \begin{description}
1251   -\item[Description:]{This test case outlines the presentation layer process
  1254 +\item[Description:]{This test case outlines the presentation layering process
1252 1255 of a user filtering existing flashcards to view only a specified subset.}
1253 1256  
1254 1257 \item[Desired Outcome:]{The User shall see flashcards based on the filter
... ... @@ -1318,7 +1321,7 @@
1318 1321 \subsection{[F6] Blank Out Words in Flashcard}
1319 1322  
1320 1323 \begin{description}
1321   -\item[Description:]{This test case outlines the presentation layer process
  1324 +\item[Description:]{This test case outlines the presentation layering process
1322 1325 of the User to create keywords in a card they are pushing.}
1323 1326  
1324 1327 \item[Desired Outcome:]{The blanked out words (visually bolded) in the
... ... @@ -1386,7 +1389,7 @@
1386 1389 \subsection{[F7] Fix Flashcard}
1387 1390  
1388 1391 \begin{description}
1389   -\item[Description:]{This Test Case outlines the presentation layer process
  1392 +\item[Description:]{This Test Case outlines the presentation layering process
1390 1393 for the User to alter (``fix'') a flashcard they made originally and not have
1391 1394 to make a new copy of it. It is only a ``fix'' if no other users have the
1392 1395 flashcard in their Decks AND the User is the author.}
... ... @@ -1473,7 +1476,7 @@
1473 1476 \subsection{[F8] Hide cards from feed}
1474 1477  
1475 1478 \begin{description}
1476   -\item[Description:]{This test case outlines the presentation layer process
  1479 +\item[Description:]{This test case outlines the presentation layering process
1477 1480 for the User shall be able to hide cards from their own view, on
1478 1481 the Feed and Deck.}
1479 1482  
... ... @@ -1560,7 +1563,7 @@
1560 1563  
1561 1564 \begin{description}
1562 1565 \item[Description:]{This test case outlines the presentation
1563   -layer process process of a user viewing a class Feed.}
  1566 +layering process process of a user viewing a class Feed.}
1564 1567  
1565 1568 \item[Desired Outcome:]{The System shall show the user the
1566 1569 Feed for their class.}
1567 1570  
1568 1571  
... ... @@ -1617,13 +1620,15 @@
1617 1620 \subsection{[D1] Remove a Card from Deck}
1618 1621  
1619 1622 \begin{description}
1620   -\item[Description:]{This test case outlines the presentation layering step process
1621   -of a user removing a flashcard from their deck.}
  1623 +\item[Description:]{This test case outlines the presentation layering
  1624 +step process of a user removing a flashcard from their deck.}
1622 1625  
1623   -\item[Desired Outcome:]{The deck does not display the removed card.}
  1626 +\item[Desired Outcome:]{The selected card will not appear in
  1627 +the deck.}
1624 1628 \\
1625 1629  
1626   -\item[User Goals:]{The User wants to only review cards that the User wants to review.}
  1630 +\item[User Goals:]{The User wants to remove an undesirable card
  1631 +from their deck.}
1627 1632  
1628 1633 \item[Dependency Use Cases:]{[A3] Add a class, [F1] Push Flashcard, [F3] Pull Flashcard}
1629 1634 \\
1630 1635  
1631 1636  
1632 1637  
... ... @@ -1638,18 +1643,23 @@
1638 1643 \item
1639 1644 {User is logged in as UserX.}
1640 1645 \item
1641   - {UserX has enrolled in the class TEST 101.}
  1646 + {UserX has added the class TEST 101.}
1642 1647 \item
1643   - {UserX has added cards from the feed into their deck.}
  1648 + {UserX has created a flashcard with the text
  1649 +``This is a bad card''.}
1644 1650 \item
1645   - {UserX is at the deck/live feed screen for the class TEST 101.}
  1651 + {UserX has created a flashcard with the text
  1652 +``This is a bad card too''.}
  1653 +\item
  1654 + {UserX has created a flashcard with the text
  1655 +``This is a bad card''.}
1646 1656 \end{itemize}
1647 1657  
1648 1658 \item[Postconditions:]
1649 1659 \begin{itemize}
1650 1660 \itemsep1pt\parskip0pt\parsep0pt
1651 1661 \item
1652   - {Desired card are hidden from the User.}
  1662 + {Selected card is hidden from the User.}
1653 1663 \end{itemize}
1654 1664  
1655 1665 \item[Trigger:]{UserX wants a card to be removed from their deck.}
1656 1666  
1657 1667  
1658 1668  
1659 1669  
1660 1670  
1661 1671  
1662 1672  
1663 1673  
1664 1674  
1665 1675  
... ... @@ -1658,40 +1668,42 @@
1658 1668 \begin{enumerate}
1659 1669 \itemsep1pt\parskip0pt\parsep0pt
1660 1670 \item
1661   - {UserX is at the Deck screen for the class.}
  1671 + {UserX is at the deck for the class TEST 101.}
1662 1672 \item
1663   - {UserX shall hover over the card they want to delete and click
1664   - the trash icon (hereafter, the ``Delete'' button) in the lower right
1665   - corner of the card.}
  1673 + {UserX shall hover the cursor over the card
  1674 +with the text ``This is a bad card''.}
1666 1675 \item
1667   - {UserX shall select the appropriate class.}
  1676 + {UserX shall click the large green minus button.}
1668 1677 \item
1669   - {The System removes the flashcard from UserX's Deck.}
  1678 + {The System shall remove the flashcard from UserX's Deck.}
1670 1679 \item
1671   - {The System updates the flashcard's position in the Live Feed of class TEST 101.}
1672   -\item
1673   - {The System updates UserX's Deck.}
  1680 + {The System shall update UserX's Deck.}
1674 1681 \end{enumerate}
1675 1682  
1676   -\item[Expected Result:] {The flashcard is removed from UserX's deck.}
  1683 +\item[Expected Result:] {The flashcard with the
  1684 +text ``This is a bad card'' will no longer have a checkmark
  1685 +on top right of the flashcard. After UserX refresh the page,
  1686 +the flashcard will be removed from the deck.}
1677 1687  
1678 1688 \item[Alternate Workflow:]
1679 1689 \begin{enumerate}
1680 1690 \itemsep1pt\parskip0pt\parsep0pt
1681 1691 \item
1682   - {UserX is at the Live Feed screen for the class.}
  1692 + {UserX is at the live feed screen for the class.}
1683 1693 \item
1684   - {UserX shall hover over the card they want to delete and click
1685   - the ``Delete'' button in the lower right corner of the card.}
  1694 + {UserX shall hover the cursor over the card
  1695 +with the text ``This is a bad card too''.}
1686 1696 \item
1687   - {The System removes the flashcard from the User's Deck.}
  1697 + {UserX shall click the large green minus button.}
1688 1698 \item
1689   - {The System updates the flashcard's position in the Live Feed.}
1690   -\item
1691   - {The System updates the User's Deck.}
  1699 + {The System shall update UserX's Deck, and the flashcard's
  1700 +position in the live feed.}
1692 1701 \end{enumerate}
1693 1702  
1694   -\item[Expected Result:] {The flashcard is removed from UserX's deck.}
  1703 +\item[Expected Result:]
  1704 +{The flashcard with the text ``This is a bad card too'' will
  1705 +no longer have a checkmark on the top right of the flashcard.
  1706 +The flashcard will no longer be in UserX's deck.}
1695 1707  
1696 1708 \end{description}
1697 1709 \newpage