Knowledge Base ~ User Stories - uchicago-cs/chigame GitHub Wiki
User Stories
These user stories define how three types of users – viewers, contributors, and moderators – are able to interact with and control the ChiGame Knowledge Base.
Alice is a player who uses ChiGame
- Alice navigates to ChiGame (possibly while not logged in) and clicks on “Knowledge Base” on the navigation bar. She is brought to the “Knowledge Base” page.
- She decides that she wants to look at guides for board games, so she selects this option from a filter that shows categories of games. The page displays a list of all board games, with their game information (photo, name, and number of likes). Alice then decides she wishes to return to the initial page for all game guides, so she hits the “Reset” button from the filter.
- She can also search “Game A” from a search box on the top of the page, and the page displays the grid for games with similar names, if they have a guide.
- Alice navigates to the game guide for Game A. The game’s title, author, and categories are displayed across the top of the guide, as well as the guide’s landing page. On the left side, there is a guide outline: a hierarchical list of pages contained by the guide. For example, it may have “Intro,” “Strategies,” and “Rules.” Additionally, “Strategies” has a dropdown arrow next to it, signifying sub-levels. There is also a link to the game in the top right.
- On the left, Alice sees options for “Strategies” with a dropdown. After expanding the list, she sees “Beginner”/ “Intermediate”/ “Strategies” / “FAQs” on this page. When Alice clicks on “Intermediate”, the page navigates to the “Intermediate” header of the “Strategies” page.
- Alice decides that she’s actually an advanced player. This time, she hits “Strategies” and is brought to the top of the “Strategies” section, and then scrolls down to the “Advanced” subheader.
- Alice finds a guide she likes. There is one “favorite” button and one “like” button on the bottom-left of the page, which is fixed when Alice scrolls down. Alice hits the “favorite” button, so the guide is automatically added to a folder in her profile page that she can access faster next time. She also hits the “like” button, and the number next to the button increases by one.
Alice is a novice game developer who wants to contribute to the Chigame community
- Alice loves chess and notices that Chigame does not yet have a knowledge guide for the game. So, she decides that she wants to make a guide to help interested players. She downloads a ChiGame knowledge base template (a markdown file) to see what pages she should populate.
- She adds basic information like strategies, rules, and history. She also decides to define a new page, “Famous Chess Players” to the knowledge base guide as well. She saves the file to her computer.
- Then, Alice navigates to ChiGame and then the knowledge base via the navbar. She scrolls down to the bottom and hits “Contribute.” Because Alice is not logged in, she is prompted to log in before continuing. After logging in, Alice is then presented with a form that asks her to select a game and upload a markdown file. She uploads her files and submits.
- After submitting the form, Alice is returned to the ChiGame knowledge base page, and there is now a banner across the top that says “1 pending guide.” Additionally, there is an option to manage her submissions. She is curious about the status of her request, so she clicks on either of these elements. She is brought to a new page that presents a list of all her submitted guides, the time they were submitted, and whether they were accepted, rejected, or are still pending. Each list also has an option to cancel the submission.
- A week later, Alice logs in and notices that the banner says “Guide status changed.” She logs in, and the top entry now includes the knowledge base moderator’s notes. Alice had made a typo and mispelled “chess.” There is a new option to resubmit. Alice updates the knowledge base markdown file and then resubmits the updated version of the file.
- The next day, Alice checks the knowledge base home page again and sees “Guide status changed.” This time, after clicking on the banner, she sees that the newest entry shows “accepted.”
- A month later, Alice figures out a new chess strategy. Because she has published a guide before, she has the option to manage her guides on the Knowledge Base landing page. She navigates to this page and downloads the most recent guide she uploaded. She adds a new strategy to the file and submits a new request to the moderators containing the updated file.
Alice is a ChiGame moderator responsible for reviewing knowledge base guides
- Adam, a site admin, asks their friend Alice to help review knowledge base guides for ChiGame’s expansive game library. Alice accepts, and Adam designates her existing account to be a moderator.
- The next time that Alice navigates to the ChiGame knowledge base page, she sees a new option to manage the list of entries. This option brings her to a new page with a list of all user-submitted knowledge base guides pending moderator approval. Every row includes high-level information about each submission: the game, date of submission, and contributing user. There are also filters that allow her to focus on specific games or game types.
- Alice sees that John just submitted a new guide. She clicks on the entry and is brought to a preview of John’s guide. Alice notices a typo, so she clicks “review guide.” There are three options: reject, accept, or request changes. Alice thinks that the guide could eventually be used, so she requests changes and explains the issue. She submits the form, and is brought back to the list of submissions, which no longer displays John’s guide.
- Alice decides that ChiGame’s new game, chess, needs a guide. Therefore, Alice follows the same flow as a normal user to submit a markdown file. Then, she returns to the moderator dashboard and accepts her own request.
- Later in the week, Alice is scrolling through Checkers guides and decides that the current guide has too many typos. When Alice is logged in with her moderator account, she sees an option to “manage guide” when viewing the Checkers’ knowledge base page. She is presented with a list of previously accepted guides, including the date that they were accepted and the user who submitted them. She decides to select the previously accepted version. The next time Alice or any other user visits the page, they will see this previous version.
- Alice then looks at the Battleship guide and decides that she wants to make a small tweak. As a moderator, she has the option to download the guide. She downloads it to her machine, and makes a couple changes. Then, she has the option to “Upload new guide” directly on the Battleship page.