@@ -0,0 +1,106 @@
6+grant_type = [ "Bounty" ]
7+grant_category = [ "App Dev" ]
11+description = "Quorum: Clone of Stack Exchange on Urbit"
13+assignee = "~tamlut-modnys, ~litlep-nibbyt,~sidnym-ladrut"
15+champion = "~lagrev-nocfep"
21+Suppose you are new to the network and want to look up information regarding OTA v1.9. Currently, you would either have to 1) ask the
22+question in %landscape, where it probably has been asked multiple times before, or 2) perform an "excavation," a seemingly endless scroll
23+in %landscape to recover a conversation from the last time someone had a similar problem. An app which can store and organize commonly
24+asked questions and their answers while allowing users to search through them would address this problem. In addition, such an app could
25+be a valuable resource to Hoon School and App School participants, enabling faster onboarding of new developers to the Urbit universe.
27+Enter %quorum, a clone of Stack Exchange on Urbit. %quorum is a platform accessible from Urbit which allows users to ask and answer
28+questions, search to find answers to questions that were already asked, and endorse questions and answers based on their usefulness.
29+The platform would be a consolidated knowledge store, with users hosting and sharing “knowledge bases” in the same way that they host
34+- As a curator, I can host one or more knowledge bases on my ship (with an optional set of tags) with groups-esque access controls.
35+- As a user, I can access knowledge bases to view existing questions and answers.
36+- As a user, I can submit questions to an existing knowledge base (with an optional set of tags) and submit answers to existing questions in that knowledge base.
37+- As a user, I can endorse (+1) or oppose (-1) questions and answers in knowledge bases.
38+- As a question submitter, I can designate my favorite response, which will be shown as the top response for all future viewers.
39+vAs a user, I can perform a content-based search inside the knowledge bases to which I am subscribed.
44+Our team consists of three App School-enrolled developers broadly working on three separate app components:
46+~tamlut-modnys: Search and other algorithmic components
48+~litlep-nibbyt: Application back-end (Gall agents, data structures)
50+~sidnym-ladrut: Application front-end (HTML forms, visualization)
52+We hope to develop a MVP version of our app in time for a reveal at Assembly 2022.
56+- Allow authors/admins to delete knowledge bases, questions, and answers.
57+- Allow authors/admins to edit questions, answers, and tags.
58+- Implement a permissions system that enables assigning different privileges (e.g. voting, answering) to different users and user ranks.
59+- Improve the readability of searches by emphasizing matched keywords in rendered results.
60+- Enable result sorting (search, answers) by date and vote score.
61+- Add support for search filters like source knowledge base(s), author, tag(s) (for knowledge base or question), and time frame.
62+- Add a command-line script that enables importing existing %landscape notebooks as new knowledge bases (e.g. %bail-meme in ~middev/the-forge).
63+- Enable %pals-based filtering of answers and +1/-1 responses.
64+- Add per-server author reputation based on aggregate vote score and answer acceptance.
65+- Enable push notifications for authors when responses are made to their posts.
66+- Improve the efficiency of keyword search by leveraging indexing and/or more specialized algorithms/data structures.
67+- Enable users to comment on individual questions and answers.
68+- Enable users on the clearweb to browse public-facing knowledge bases and ask questions using comets/moons.
72+### Milestone #1 - Local Knowledge Base
74+Estimated Delivery: September 2, 2022
80+- Create the basics of a local-only knowledge base browser, which include:
81+- Creating local knowledge bases on the host ship (consisting of unique title, description, and tags).
82+- Browsing all existing knowledge bases and their question/answer threads.
83+- Submitting a new question (consisting of title, tags, & content) to a knowledge base.
84+- Submitting any number of answers to an existing question.
85+- Adding any number of +/-1s to existing questions/answers.
86+- Selecting a particular answer as the preferred answer, which will subsequently be rendered as the first result.
87+- Extend existing Urbit search algorithms (e.g. %graph-query, %sphinx) to accept app-specific data.
90+### Milestone #2 - Networked Knowledge Base
92+Delivery: September 30, 2022
98+- Enable users to mark their knowledge bases as public (anyone can view/participate) or private (only specific ships can view/participate).
99+- Add the ability to join knowledge bases hosted on external ships using a unique path (e.g. ~sampel-palnet/quorum-qa).
100+- Enforce submission rules on knowledge base threads, i.e.:
101+ - One answer per question per ship.
102+ - Authors may not vote (+1 or -1) on their own questions/answers.
103+ - One vote (+1 or -1) per user-question/answer pair.
104+ - Only the question submitter can choose the preferred answer.
105+ -Integrate content-based searching and result browsing into the UI.