-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flowser: Interact Screen + Blocto & FlowFan's collections integration + UI & Technical updates #150
Comments
thanks for the submission @monikaxh. @fotescodev will reach out to you to discuss this further |
Awesome, thank you! |
Hi @alxflw and @fotescodev! 👋 |
thanks for the ping @monikaxh. we're still gathering reviews. the spring break is delaying some of these. sorry! |
Sure, no problem @alxflw! Thank you for a quick feedback! ✌️ |
Automated Snapshots is a great addition as well. Let's sync on Monday after we have reviewed this with @alxflw. |
@fotescodev Yeah, indeed! Maybe we didn't state that explicitly, but the automated snapshots feature is actually a prerequisite to the interact screen feature. That's because one essential idea behind the interact screen is the ability to revert to any previous interaction/transaction (read "block"). For this to work, we need a reliable mechanism to create snapshots for every new block. I believe we could do that at the (flowser) application layer, but I don't think will work reliably enough in all cases (e.g. if the block interval is very short we could miss some blocks). So I believe we will need to work together on this and possibly other features in this grant if they require some work on the Flow tooling side. |
@bartolomej we have But having a UI for this is great for UX. |
@JeffreyDoyle I was wondering if this would work well with FLIX as well? |
Let's gooooo! Very excited to see Flowser be taken to a new level setting the standard for the rest of the Flow Dev tooling 🚀 |
@fotescodev That's great news! We are starting our work right away. 🚀 |
We've successfully achieved our second milestone: Interact Screen. This marks a significant enhancement to Flowser, transforming it not just into a GUI, but also an integrated development environment (IDE) 🛠️ Key Highlights from this Milestone: Introduction of the interactive screen, empowering users to:
The main components on the Interactive screen are:
Watch the Interactive Screen in action: Video Demo 📺 |
Reviewed the (1) Interactive Screen Implementation milestone. Really nice work! I approve the milestone as being completed. 🎉 During the review and usage of the tool, I found some minor things that would be good to address before the grant is finished:
|
I think this issue in FCL is blocking that: onflow/fcl-js#1762 Agreed with other points you made, most of those are already a WIP! |
Hello @sideninja @gregsantos @SeanRobb 👋 We've successfully reached a significant milestone with our latest updates to Flowser's user interface (UI). UI updates (first pass) Let's dive into the exciting changes: Enhanced UI: We put in the hard work to make Flowser's UI more intuitive and visually appealing. Notable improvements include the representation of addresses with icons and the repositioning of the main menu to the left side, simplifying navigation 🗺 We've also decluttered the interface, creating a cleaner and more user-friendly experience ✨ side.menu.walkthrough.movTable and Details Page Redesign: We've revamped our tables and details pages, replacing buttons with tabs for easier data access and browsing. This refreshed design has also been extended to our Interactive screen. details.page_tabs.movGlobal Search: The design of global search was scheduled for this milestone, but the implementation was originally slated for the future. During the process, we recognized the importance of a global search feature and have decided to include it in upcoming milestones. 🔥 Tags: We've introduced tags such as #service, tailored for service accounts, and #default tag, which is used if the account was created automatically by the emulator. Helpful Tooltips: To assist users, we've added useful tooltips throughout Flowser. Improved Events Data display: We've enhanced the "events data" logic, moving away from a single cluttered table to a more organized structure with a dedicated events table and a detailed view. Events.data.movWe have introduced a temporary solution to showcase user-friendly names for commonly used transactions within Flow CLI. This solution will remain in place until we finalize the "Community to Community" milestone. In our commitment to assist new developers on Flow, we have chosen to provide a range of helpful tips within the tool: All of these updates (and more) can be found in Flowser version 3.0, which is now live 🚀 Check out our Flowser demo 📺, see our updated website & follow us on Twitter or jump on our Discord Other:
|
Reviewed the (3) UI improvements milestone. Awesome stuff and I approve the milestone as being completed. 🎉 |
Hello there @SeanRobb! We've wrapped up two (last 🙀) milestones as part of the grant:
Community to CommunityA key achievement was the integration of FLIX, enabling seamless browsing and utilization of templates. Our FLIX info UI displays verification status (with users empowered to propose new FLIX templates), existing audits, and inline argument documentation.
We also integrated with FlowFans token metadata collection - displaying token info and prompting the creation of new metadata. Additionally, we are transitioning Blocto’s verified transactions collection to the FLIX standard and submitted various proposals to the official FLIX repo. Some of these are already experimentally implemented on our own FLIX fork, while others are still in draft.
MaintenanceOur ongoing maintenance work, initiated since day one, has also reached a completion. This included various bug fixes, improvements, and overall software maintenance work. But some of the most notable changes include Linux support 🐧 for our desktop app and a large internal codebase restructure to support future extensions 🤙 (like the one hinted below).
In the realm of communication and marketing 🎯 we crafted a compelling Flowser demo 📺 for the interactive screen and enhanced our Twitter communication strategy 🐥 Over the past 91 days, our efforts have yielded an impressive 1.8K impressions per day 📈This marks a substantial leap from the pre-grant period (March 1st - May 31st), where we only garnered 8 impressions per day. Additionally, we witnessed a remarkable 1550% increase in the absolute number of replies and a notable 1.5 percentage point rise in overall engagement. Next up🔥 Exciting developments on the horizon for Q1:
As we reflect on this journey, navigating through a bearish market 🐻 we're immensely grateful for the unwavering support 🫶 |
@monikaxh Approved 🎉 |
Closing due to be completed |
Flowser: Interact Screen + Blocto & FlowFan's collections integration + UI & Technical updates
Grant category
Please select one:
1. Milestones & Tasks
1.1. Interact Screen
Problem: During (Flow) blockchain development, you often need to switch between multiple programs (your IDE, Flow CLI, Flowser,..), which can negatively impact your developing flow and productivity.
For example, you may edit the contract source code (in your IDE), redeploy this code (Flow CLI super commands will automatically handle this), test it out by executing some transaction/script (in Flow CLI), and review blockchain state (in Flowser).
This mental context switching is expensive, so ideally, you’d want to use as few tools as possible - your IDE for code writing, Flow CLI for managing the development flow, and Flowser for viewing and interacting with the blockchain.
This is also very similar to the traditional web2 development workflow (e.g., for client-side applications), where you use your IDE to edit code, a CLI tool (like [create-react-app,](https://create-react-app.dev/) [vite](https://vitejs.dev/),..) for managing development flow (rebuilding website source code,..) and your browser for reviewing the changes.
Solution: We want to build a brand-new screen for performing blockchain interactions (executing transactions or scripts). This could replace or enhance some Flow CLI commands like
flow transactions send
andflow scripts execute
with an easier-to-use and more powerful GUI.Main features:
git log --graph
command)Tasks:
Design a UI for viewing the non-linear history of interactions.
(e.g., smart account inputs, generation of additional accounts…)
1.2 Community to Community
a. Transaction Metadata (Flowser & Blocto)
We will integrate [Blocto’s collection of audited Flow transactions](https://github.com/portto/flow-transactions) into Flowser. This will enable better support and documentation for some of the more standard/popular transactions.
With this integration, we will be able to define a list of common transaction templates. The data will then be used in the History view on the Interaction screen (see Milestone 1), as well as in the transaction table.
Tasks:
b. Token metadata (Flowser & FlowFans)
Integrate [FlowFan’s collection of Flow token metadata](https://github.com/FlowFans/flow-token-list) into Flowser.
Token metadata will allow us to recognize more standard/popular Flow tokens and show their metadata in Flowser UI (e.g., links to documentation, symbol, logo,…).
Tasks:
1.3 UI Updates
a. Account address abstraction
Account addresses are not human-friendly, but we show them pretty much everywhere now. We want to provide a better abstraction on top of raw account addresses - account icons or names. Ideally, we’d want to use the same naming convention used in other Flow tools (e.g.,
flow dev
super command).Tasks:
b. Improve transaction transfers info
Flowser is a graphical user interface, and we would like to focus on presenting the data more visually in this grant. With this idea, we would like to improve the transaction token transfer info, enabling users to make more sense of what the transaction is doing.
Tasks:
c. Transaction overview in table
Transactions do different things like:
If you look at the transactions table now, you are not able to see what each executed transaction did without examining the source code:
The idea is to display this information differently from other data, so you can quickly see the effect of a particular transaction.
Tasks:
d. Show uncollapsed view of transaction arguments
We show a collapsed view of transaction arguments (for complex data types like arrays or dictionaries):
Design today:
We should show a full data view, but there won’t be enough space to fit that data in a single line like we used to do (e.g., if the array has 5 elements). We will break that info into multiple lines when the data type is array or dictionary.
Example of how we could present the data:
e. Cleanup of the current UI
We will eliminate unnecessary information, update the address view, and add a better overview of what the transaction did (in the Transaction Table).
Showing non-clickable tabs is confusing.
We will update the design of all details pages (account, blocks, and transactions) whew we will:
f. Global search design
Global search will enable users to search for any kind of:
We will design a modal for a global search.
Global search will be implemented in the future, but we will prepare the design in the scope of this grant.
g. Tags
Tags are a way to attach labels to different objects on the Flow blockchain. We are planning to implement tags for accounts, transactions, and events.
Tasks:
1.4 Technical Improvements
a. Remove the need for manual transaction authorization
As of now, you need manually authorize every transaction that you want to execute using the fcl-dev-wallet modal. This is not ideal behavior for our upcoming interaction screen because it presents an unnecessary distraction.
Tasks:
b. Improve snapshot management
The current implementation of snapshot management is not as reliable as we’d like. Because this feature will be used in the upcoming [interact screen feature](https://www.notion.so/Documentation-01d7fc2f7fab4c30b5d59c85d16ceb88), it should behave reliably.
That’s why we proposed some changes to the snapshot management API in Flow CLI, which have now been implemented in the PR below.
onflow/flow-emulator#241
onflow/flow-emulator#228
The next step is to integrate these API improvements to Flowser. We also want to create snapshots automatically on a per-block basis.
1.5 Continued support, Maintenance & PR
Resolve (or provide support) any GitHub issues: https://github.com/onflowser/flowser/issues
We will support all active users and resolve any GitHub issues: https://github.com/onflowser/flowser/issues, maintain the tool with regular updates and continue with communication on Twitter.
2. Milestones & Tasks
• Snapshots are created automatically on a per-block basis
• FlowFan’s collection of Flow token metadata integration into Flowser.
• Improved transaction transfers design
• Display the human-readable description of the transaction
• Uncollapsed view of transaction arguments is shown
• Tables are updated and contain less clutter
• “Buttons” on the detail page are redesigned into tabs
• Non-clickable tabs on the details page are redesigned
• Design for a global search is created
• Tags are designed and implemented
*Milestone 5 will start on day one and will be ongoing work for 4 months. It will be done simultaneously with all other milestones.
Total suggested USD amount: $52,500
Team
The text was updated successfully, but these errors were encountered: