@@ -0,0 +1,106 @@
1++++
2+title = "Quorum"
3+date = "2022-08-16"
4+
5+[taxonomies]
6+grant_type = [ "Bounty" ]
7+grant_category = [ "App Dev" ]
8+
9+[extra]
10+image = ""
11+description = "Quorum: Clone of Stack Exchange on Urbit"
12+reward = "3 stars"
13+assignee = "~tamlut-modnys, ~litlep-nibbyt,~sidnym-ladrut"
14+grant_id = "B0167"
15+champion = "~lagrev-nocfep"
16+completed = false
17++++
18+
19+## Purpose
20+
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.
26+
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
30+and share groups.
31+
32+## User Stories
33+
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.
40+Timeline
41+
42+## Our Team
43+
44+Our team consists of three App School-enrolled developers broadly working on three separate app components:
45+
46+~tamlut-modnys: Search and other algorithmic components
47+
48+~litlep-nibbyt: Application back-end (Gall agents, data structures)
49+
50+~sidnym-ladrut: Application front-end (HTML forms, visualization)
51+
52+We hope to develop a MVP version of our app in time for a reveal at Assembly 2022.
53+
54+## Future Work
55+
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.
69+
70+## Milestones
71+
72+### Milestone #1 - Local Knowledge Base
73+
74+Estimated Delivery: September 2, 2022
75+
76+Reward: 2 stars
77+
78+Tasks:
79+
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.
88+
89+
90+### Milestone #2 - Networked Knowledge Base
91+
92+Delivery: September 30, 2022
93+
94+Reward: 1 star
95+
96+Tasks:
97+
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.
106+