Skip to content

Commit

Permalink
feat(cat-voices): Workspace - more data 837 (#1051)
Browse files Browse the repository at this point in the history
* feat: Workspace - More data

* feat: Workspace - More data, reformat

* feat: Workspace - More data, richTextParams, titleInDetails, ...

* feat: Workspace - More data, smaller padding for title

* feat: Workspace - More data, ignore_for_file

* feat: Workspace - More data, change to final

* feat: Workspace - More data, assert message

* feat: Workspace - More data, add words to project.dic

* feat: Workspace - More data, pass only title
  • Loading branch information
digitalheartxs authored Oct 25, 2024
1 parent f4e392b commit 91335f7
Show file tree
Hide file tree
Showing 19 changed files with 506 additions and 247 deletions.
3 changes: 3 additions & 0 deletions .config/dictionaries/project.dic
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ dbschema
dbsync
Deleg
delegators
devnet
DIND
dockerhub
Dominik
Expand Down Expand Up @@ -271,6 +272,7 @@ unchunk
Unlogged
unmanaged
Unstaked
upskilling
UTXO
Utxos
varint
Expand All @@ -287,6 +289,7 @@ wallclock
wasmtime
Wconditional
Werror
Wireframes
Wmissing
Wnullable
Woverlength
Expand Down
63 changes: 34 additions & 29 deletions catalyst_voices/lib/pages/workspace/proposal_details.dart
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ class _SegmentDetails extends StatelessWidget {
return _StepDetails(
key: ValueKey('WorkspaceStep${step.id}TileKey'),
id: step.id,
name: step.title,
title: step.titleInDetails != null
? step.titleInDetails!
: step.title,
desc: step.description,
doc: (step.documentJson != null)
? Document.fromJson(step.documentJson!.value)
: null,
richTextParams: step.richTextParams,
isSelected: step.id == selected,
isEditable: step.isEditable,
);
Expand All @@ -121,43 +121,48 @@ class _StepDetails extends StatelessWidget {
const _StepDetails({
super.key,
required this.id,
required this.name,
required this.title,
this.desc,
this.doc,
this.richTextParams,
this.isSelected = false,
this.isEditable = false,
});

final int id;
final String name;
final String title;
final String? desc;
final Document? doc;
final RichTextParams? richTextParams;
final bool isSelected;
final bool isEditable;

@override
Widget build(BuildContext context) {
return (desc != null)
? WorkspaceTextTileContainer(
name: name,
isSelected: isSelected,
headerActions: [
TextButton(
onPressed: isEditable ? () {} : null,
child: Text(
context.l10n.stepEdit,
style: Theme.of(context).textTheme.labelSmall,
),
),
],
content: desc!,
)
: WorkspaceTileContainer(
isSelected: isSelected,
content: VoicesRichText(
title: name,
document: doc,
if (desc != null) {
return WorkspaceTextTileContainer(
name: title,
isSelected: isSelected,
headerActions: [
TextButton(
onPressed: isEditable ? () {} : null,
child: Text(
context.l10n.stepEdit,
style: Theme.of(context).textTheme.labelSmall,
),
);
),
],
content: desc!,
);
} else if (richTextParams != null) {
return WorkspaceTileContainer(
isSelected: isSelected,
content: VoicesRichText(
title: title,
document: Document.fromJson(richTextParams!.documentJson.value),
charsLimit: richTextParams!.charsLimit,
),
);
} else {
return const SizedBox();
}
}
}
5 changes: 5 additions & 0 deletions catalyst_voices/lib/pages/workspace/rich_text/answer.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const answer = [
{"insert": "Answer\n"}
];
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const sampleRichText = [
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const bonusMarkUp = [
{
'insert': {
'image':
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const deliveryAndAccountability = [
{
"insert":
"The Catalyst Team is committed to providing continuous, accessible updates to the Cardano community. Updates and outputs will also be published on the Catalyst public Gitbook. \n\nIn addition to monthly progress reports and completed milestone proof of achievement ceremonies, the Catalyst team will also promote outcomes, outputs, and general progress in the following ways:   \n\n"
},
{
"insert": "Weekly newsletters:",
"attributes": {"bold": true}
},
{"insert": "\nReach: 60,000 mailing list members"},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"Each week, an update email is sent to all mailing list members to provide a run down on progress and highlight key achievements.  "
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"Fortnightly technical development updates: Reach: Averaging per week: 3000 report readers, 60,000 Twitter views, 100 retweets   "
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"
The Catalyst team will provide technical development updates every two weeks as part of the overall Cardano technical development update communications. This will amount to at least 24 updates over the next 12 months, accounting for the seasonal Winter holiday period. \n
"
},
{
"insert": "Weekly Town Halls",
"attributes": {"bold": true}
},
{
"insert":
"\nReach: At least 1000 viewers, up to 10,000 periodically \n
Catalyst Town Hall is a mainstay platform for communicating key progress and achievements, and provides an opportunity to gather insights from attendees about new features or potential changes to Catalyst. Catalyst funded projects that have achieved project-completion status are highlighted weekly.\n
"
},
{
"insert": "Catalyst Blogs: ",
"attributes": {"bold": true}
},
{
"insert":
"\nReach: Averaging 5000 readers per blog based on the last 12 months\nRegular blogs published via ProjectCatalyst.io will help to amplify progress and updates to outputs that have been achieved.\n"
}
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const feasibilityChecks = [
{
"insert": "Approach and implementation",
"attributes": {"bold": true}
},
{
"insert":
"\n\nEngineering and security best practices will be followed to implement the solution, in addition to consultation with both the Catalyst / Cardano community and internal IOG subject matter experts from cryptography, and game theory domains. Prior user research and community feedback informs our initial understanding of challenges to solve for. \n\nCatalyst Voices intends to develop iOS, Android, and Web applications from a single code base with near-native speed and performance. \n\nWe will approach the implementation of sets of features in terms of “modules”. Each module will correspond to a user role, segmenting the experience into sections aimed at completing specific actions. \n\nRole registrations, participation history, and saved preferences will unlock new aspects of the experience to help users engage at their own pace, on their own terms.\n\nLearnings acquired through developing and maintaining existing tools (such as Catalyst Mobile App, Voting Center, Snapshot Module) will be leveraged in order to rewrite the target development frameworks by building a single platform that is highly secure, extensible, and maintainable. While we anticipate unexpected challenges in integrating all features into a single platform, our plan to leverage battle-tested reference implementations should de-risk and accelerate development significantly. \n\nThe project will also benefit from maximizing the results of prior discovery and design research. Wireframes and mock-up designs created for and after user testing for the proposal submission module to replace Ideascale will continue to refine the UX with further user feedback gathered during the delivery of this project. This will include features and UX interactions for user profiles, cross-module navigation, and embedded guidance. \n\nFinally, the development of Catalyst Voices will follow the testing and deployment framework planned for the existing Catalyst stack. The latest experimental features will be deployed to a public devnet, and the latest stable features will be deployed to a public testnet. The community will have opportunities to engage with new features and provide feedback before promoting features to the production release candidate. \n\nRecurring voting events will run every 2-weeks on the Catalyst testnet to provide more frequent opportunities to engage with each of the phases of proposing, reviewing, and voting.\n"
}
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const problemStatement = [
{
"insert":
"Catalyst's short participation windows with fragmented UX experience and complicated manual processes frustrate and limit community engagement.\n"
}
];
121 changes: 121 additions & 0 deletions catalyst_voices/lib/pages/workspace/rich_text/public_description.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const publicDescription = [
{
"insert": "Introducing Catalyst Voices
",
"attributes": {"bold": true}
},
{
"insert":
"Through this 12 month project, the Catalyst Team proposes to unleash the wisdom of the community by delivering a front-end web-browser based application that radically lowers the barriers to meaningful participation in collective decision-making for voters, representatives, and proposers. \n\nA unified front-end interface to meet the needs of the Catalyst community. Developed with continuous feedback from the community, the Catalyst Team will deliver a unified experience to replace the patchwork composed of wallets, Ideascale, standalone web apps, and the Catalyst mobile app today. \n\nThe proposed product design is informed by insights gleaned over nearly three years of operating Catalyst, ongoing discovery research, and feedback from the community. \n
Prior feedback and research indicate 3 significant opportunities to improve the Catalyst experience with a unified platform:\nStreamline the experience by designing modules to serve the needs of each role"
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"Unlock continuous opportunities for ideation, feedback, building skills and reputation, as well as earning rewards"
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"Offer better guidance by creating context based on identity, preferences and intent
"
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert": "The proposed outputs will: ",
"attributes": {"bold": true}
},
{
"insert":
"\nreduce the time and steps required of Catalyst users to complete important actions eliminating the frustration of context switching "
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"accelerate the onboarding and upskilling of both casual and committed Catalyst users"
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"improve the quality of participation with just-in-time tips, and more data provided to voters about Catalyst proposals   "
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"introduce participation history that maintains data and context over time, "
},
{
"insert": "\n",
"attributes": {"list": "bullet"}
},
{
"insert":
"
Simplified user processes mean more time spent on activities that matter, enabling new capabilities and co-building opportunities that push the boundaries of distributed decision-making. \n\nAll these benefits add up to productivity gains, a more collaborative and focused community, and better funding decisions that create more value for the Cardano ecosystem. \n"
},
{
"insert":
"
Unlocking Incremental Value With Milestones & Continuous Testing",
"attributes": {"bold": true}
},
{
"insert":
"\nThe proposed project will be delivered via a series of milestones, each unlocking new capabilities and creating value for Catalyst and the Cardano \necosystems. \n"
},
{
"insert": "
Milestones include:",
"attributes": {"bold": true}
},
{"insert": "\nOpen Source Setup"},
{
"insert": "\n",
"attributes": {"list": "ordered"}
},
{
"insert": "Architectural Updates to registrations to support multiple roles"
},
{
"insert": "\n",
"attributes": {"list": "ordered"}
},
{"insert": "Backend and Wallet Integration Updates"},
{
"insert": "\n",
"attributes": {"list": "ordered"}
},
{"insert": "Voting & Delegation"},
{
"insert": "\n",
"attributes": {"list": "ordered"}
},
{"insert": "Proposal Submission & Commentary"},
{
"insert": "\n",
"attributes": {"list": "ordered"}
},
{"insert": "\n"},
{
"insert": "Continuous Testing & Learning",
"attributes": {"bold": true}
},
{
"insert":
"\nAlong the way, continuous delivery to the Catalyst testnet will ensure that the community has meaningful feedback loops to help guide development - rather than waiting to give feedback. Voters, representatives, and proposers will have a chance to test drive the entire Catalyst process end-to-end every 2 weeks from inside Catalyst Voices once available.\n"
}
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const solutionStatement = [
{
"insert":
"Catalyst Voices provides a unified experience and platform including production-ready liquid democracy, meaningful collaboration opportunities & data-driven context for better onboarding&decisions.\n"
}
];
8 changes: 8 additions & 0 deletions catalyst_voices/lib/pages/workspace/rich_text/title.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const title = [
{
"insert":
"F10 / IOG Catalyst Team : Ideascale replacement and web-browser based Voting Centre with liquid democracy aka “Catalyst Voices”\n"
}
];
16 changes: 16 additions & 0 deletions catalyst_voices/lib/pages/workspace/rich_text/value_for_money.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// ignore_for_file: prefer_single_quotes, require_trailing_commas, lines_longer_than_80_chars

const valueForMoney = [
{
"insert":
"The requested total budget for developing this first iteration of Catalyst Voices as a functional replacement for Ideascale, the existing mobile application, and wallet interface for registration is 840,000 ADA. This is a 12 Month project.\n    \nFund 11 Period : Open Source Activation             
₳75,000     \nFund 11 Period : Voices Architectural Changes,        
₳150,000\nFund 12 Period : Backend & Wallet Integration        
₳189,000    \nFund 13 Period : Voting & Delegation Implementation  
₳200,000    \nFund 13 Period : Voices First Release - Proposal Process Implementation     
₳226,000    
\n"
},
{
"insert": "Total: ₳840,000",
"attributes": {"bold": true}
},
{
"insert":
"\n
To deliver this work we require a small team of rust backend developers, QA engineers, front end developers, site reliability engineers and UI designers.\n
This is a moderately complex proposal due to the development of fully decentralized role based access control to replace the Web2 authorizations and user management required by Ideascale and other typical systems. It will also require throughout the entire project, Architectural Design to work on and refine the proposed CIPs and other technical aspects of the system, Engineering Management to keep the project on track, and Product Management that the final product delights and empowers users across the community.\n
This project will also require regular updates to the community and high levels of community engagement to properly respond to and evaluate feedback or queries we are receiving. Especially as it relates to refining and finalizing the CIPs necessary to underpin the operation of this Project, which will also be critical work underpinning future work both in Catalyst Voices and in future work envisioned for the “Athena” distributed Project Catalyst which we ultimately desire to have all the functionality proposed here.\n
We will also be building and deploying test versions of Catalyst Voices continuously to our internal test deployments, and these will be publicly accessible. This is to allow the community to easily see what state the development is in and the available functionality without needing to run the system themselves. We want to allow the greatest number of Project Catalyst community members to track our progress as possible.\n"
}
];
Loading

0 comments on commit 91335f7

Please sign in to comment.