Skip to content
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

Improve UserGenPage / LandingPage #204

Closed
Reckless-Satoshi opened this issue Aug 1, 2022 · 27 comments · Fixed by #357
Closed

Improve UserGenPage / LandingPage #204

Reckless-Satoshi opened this issue Aug 1, 2022 · 27 comments · Fixed by #357
Assignees
Labels
discussion 💬 This issue has become a forum of ideas ⚡Eligible for Sats ⚡ This issue or pull request rewards bitcoin enhancement 🆙 New feature or request

Comments

@Reckless-Satoshi
Copy link
Collaborator

Reckless-Satoshi commented Aug 1, 2022

RoboSats is simple, there is only 4 views: UserPage (aka LandingPage), MakerPage, OrderBook and OrderPage. The UserPage recently got a review and critic by the guys of Bitcoin Design Community (@GBKS @Bosch-0 @pedromvpg @IamSanjana )

Landing page critic (click for video)

crit

Figma used in the video

Describe the solution you'd like

Let's use this stream of realizations / weaknesses / ideas and create an actionable plan to build a more friendly iteration of RoboSats UserGenPage.js

We are using React MUI v5 all over, so it would be appreciated if the new design sticks to MUI components.

Additional context

This task is relevant enough for us to put on it some BTC from the dev fund.

  • Drafting a new landing page with great UX in mind is ⚡rewarded with 300K Sats

  • Implementing the new landing page (ReactJS / MUI) is ⚡rewarded with 1M Sats

For extra incentive, the combined task (drafting + implementing) will be rewarded 1.5M Sats (the mind of the designer will better know how the implementation should feel).

Drop a comment if you want to assign yourself any task. There is not time pressure on getting a new landing page ready, so do not be afraid to assign yourself to later renounce it ;)

@Reckless-Satoshi Reckless-Satoshi added enhancement 🆙 New feature or request discussion 💬 This issue has become a forum of ideas ⚡Eligible for Sats ⚡ This issue or pull request rewards bitcoin labels Aug 1, 2022
@Reckless-Satoshi Reckless-Satoshi moved this to Drafting task 📝 in ⚡Developer Rewards Panel ⚡ Aug 1, 2022
@Reckless-Satoshi Reckless-Satoshi moved this from Drafting task 📝 to Looking for Dev 👨‍💻 in ⚡Developer Rewards Panel ⚡ Aug 25, 2022
@Reckless-Satoshi Reckless-Satoshi moved this from Looking for Dev 👨‍💻 to Drafting task 📝 in ⚡Developer Rewards Panel ⚡ Aug 25, 2022
@KoalaSat
Copy link
Member

KoalaSat commented Aug 26, 2022

I found this guide https://bitcoin.design/guide/savings-wallet/, for sure there is a lot of unnecessary (for Robosats) steps, but I believe that would be a great source for inspiration together with the video

@BrodaDemi
Copy link

Hi guys, so I came up with a few page redesigns. Would love to have your feedback on them.
Here's a link to the Figma file: https://www.figma.com/file/F431OdSfLfjwa912j0U7yx/ROBOSATS?node-id=114%3A16609

@fmitjans
Copy link

fmitjans commented Sep 5, 2022

I think the Figma page looks great! Two improvements I think are worth implementing from the review video are:

  1. The page shouldn't generate an avatar until the user chooses to, in order to avoid confusion and to make more clear that the avatar shown is the result of a randomly generated token (or a restored one).
  2. The order book should be accessible before needing to generate an avatar, so that the main concept of the page is shown without overwhelming the user with avatar details.
    Let me know what you think

@n-ochs
Copy link

n-ochs commented Sep 6, 2022

I'd love to take on the redesign task. I have plenty of MUI (v4 + v5) & React experience. Will this issue be updated or a new one will be created after a design is approved?

@BrodaDemi
Copy link

Hey Fmitjans, those are really valid points, and things I’ve taken into consideration.

  1. A part of the redesign is adding a bit of personalization that way the users get to feel like they’re a part of the decision making process.

  2. I already implemented no 2 in the redesign. Immediately users jump into the dashboard, avatar or not, they immediately get to see the relevant datas and order book. Although for users that haven’t generated a token, at some point they’d be asked to as they can’t go far without it. Something like that.

can we schedule like a video call where I can walk you through the designs and the thought process behind them?

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Sep 7, 2022

Hi guys, so I came up with a few page redesigns. Would love to have your feedback on them. Here's a link to the Figma file: https://www.figma.com/file/F431OdSfLfjwa912j0U7yx/ROBOSATS?node-id=114%3A16609

Hey @BrodaDemi

This is top work. Thank you very much for this inspiring work. I think it is beautiful, congratulations!

Comments

I find some trouble conceptualizing how this design fits within the current app and how actionable it is. I would try to summarize as briefly as possible:

  • Currently RoboSats is "an app" with a focus on mobile devices. Your design is great for a portal/website, sticking very well to user expectations and best UX practices. The current app is also bundled as an Android .apk (webview app in development), as well as, bundled in a docker image for users running sovereign nodes. Without thinking about it too deeply, it feels like this website has to be a new frontend of its own, and not a direct enhancement over what we have built (but maybe I might not be seeing the bigger picture).
  • Merging learn.robosats.com with the app might be a great idea, but I am unsure about it. It introduces too much noise to the app and will make maintaining harder (it increases the complexity of the app, learn.robosats.com is a simple markdown site we can update independently). Let's bear in mind when designing the UI of RoboSats that it is a TOR-only app: users rarely arrive by mistake, so maybe they do not need to have at hand docs / tutorials / stats / best practice guides: these can be kept apart, specially important since these can be hosted on a clearnet site and be more accessible.
  • The Robot avatars are central in RoboSats (part of the name) and they make the app fun to use (originally we wanted to gamify the experience as much as possible). I believe (also the main focus of the critic) that the biggest issue for newbies with the current UX is understanding the robot avatars. Robot generation happens too suddenly with no explanation or context. Everything else: e.g., finding the order book, etc, is very secondary IMO. A UserGen page redesigning should mainly focus on users understanding: what is an avatar; why they need one; that the robot they see is generated on their device only form them; that the token is random; why storing the token is important; and why not reuse robot. I see you have worked a redesigning of many components, but the robot avatar generation has been moved away / dissappear completely.
  • The redesigning of components other than UserGenPage / BookPage (E.g. BottomBar, ProfileDialog, etc) creates the need to fully redesigning everything else on the app that is not part of this draft (OrderPage and trading pipeline). We might not want to re-do the full frontend as that is a large overhead.
  • The "log in" page leads to misunderstandings: we do not "log in" in our RoboSats account (there is no RoboSats accounts). Users should not reuse identities. What we need is an "Emergency! need to recover my robot from backup" page :D
  • (opinion) It leaves away much of the uniqueness/fringe RoboSats has (maybe because this UX is simply better 😅 ), but this is just an opinion of someone with no UX design skill whatsoever.

Ideas

I might be too attached to the current chaotic design :D For this task I was expecting maybe a more pragmatic approach to redesigning the UserGenerator page and streamline the user flow building over what we currently have. An example idea for the user generation: a user opens the onion link, and instead of being shown a Robot right away he is asked whether he is new to RoboSats. If he is new, a Dialog (similar to what Mullvad does) is shown with 3 steps:

  1. "First let's create a random token, this will be the key to your robot avatar" user clicks , ~ random characters flip on screen until the token shows ~
  2. Now, let's generate a random robot identity for trading *user clicks "Generate"
  3. "Woah, your robot avatar is CoolLightning517" . Copy your token safely in case you need to return as CoolLightning517 in the future" Copy (button).
    Dialog closes and shows the BookPage.

Alternatively, a deeper redesign as suggested by you, best if the BookPage is the first page the user sees, then the robot generation prompt triggers when the user clicks on an order. The emergency recovery button (sign in) can be placed in some corner. Place the Make Order Button on the book page, and the Order Maker inputs show as a dialog over the Book page exactly as designed by you.

Other comments and context

We can, of course, work on a new frontend that is Desktop/Browser only and conforms better with user expectations. But I am not sure we have the resources to build it and properly maintain two "RoboSats Basic" frontends (we certainly need the one that is mobile friendly and fun above everything else). Many elements of this frontend proposal could actually fit more / be merged with RoboSats Pro (#177), where users do have a local "workspace" (~ account).

I find that I might have left this task described too openly. I did not want to write a counter critic to specify why some design choices of the initial design were important / mobile first. Preferred to leave contributors comment and propose first, in retrospect I should have framed it more tightly.

Thanks to this draft of @BrodaDemi we now have way more clarity on what are the choices and trade-offs going forward for RoboSats basic frontend. What do you think? I think it is possible to implement most of your suggestions as direct upgrades over the current app without redesigning it as a desktop website. A few more iterations of the draft might be needed until we have a concrete plan to develop.

@Reckless-Satoshi
Copy link
Collaborator Author

I'd love to take on the redesign task. I have plenty of MUI (v4 + v5) & React experience. Will this issue be updated or a new one will be created after a design is approved?

That's amazing! I am assigning you in this Issue. But indeed, we will probably create a new Issue once we settle for something actionable.

@BrodaDemi
Copy link

Hey @Reckless-Satoshi

Amazing take and comments. That really gave some sort of insight into what exactly I'm working on. I started the redesign process after talking to Christoph and also watching Bosch video where they gave their reviews on the site, in terms of UX and UI. The conversation was heavily geared a web/desktop redesign. This is my first time of hearing that there's an app somewhere.

So I understand where you're coming from and I just want you to know open source project or not, I want the best in terms of innovation and advancement for robots.

@BrodaDemi
Copy link

So I get that my focus now will be on the mobile app in regards to specific areas. My question now is that where can I get the app to go through it? cos I use an iPhone so is It downloadable?

And just a design thought now yeah, I realised we could sell the app more on the site cos just as I was clueless about robosats having an app, I'm sure thats how most users are too. but first things first, how can I get the app on my phone?

@Reckless-Satoshi
Copy link
Collaborator Author

So I get that my focus now will be on the mobile app in regards to specific areas. My question now is that where can I get the app to go through it? cos I use an iPhone so is It downloadable?

We have an .apk for Android https://github.com/Reckless-Satoshi/robosats/releases/tag/android-b4fac4c , but this is not needed. The easiest way to experience the mobile UI is to use Tor Browser on Android or Orbot + Safari on Iphone. Then access robosats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion, should be a similar experience as installing the app (if anything, the viewport of the installable app is a bit larger and load times faster). The app is a simple webview that loads the frontend using the device's system browser. The app is responsive, so the Order Book, Order Page and the bottomBar are larger and show more information if you access from Tor Browser on desktop. Ideally we want to maintain a single app that is responsive and serves Desktop / Mobile / Native.

@Reckless-Satoshi Reckless-Satoshi moved this from Drafting task 📝 to In Progress 🚧 in ⚡Developer Rewards Panel ⚡ Sep 8, 2022
@BrodaDemi
Copy link

Uploading 0484D088-9560-4836-8791-169353CA1EE2.png…

@BrodaDemi
Copy link

Can you send screenshots

@domrishe
Copy link

domrishe commented Sep 9, 2022

@Reckless-Satoshi I put together a figma sketch of some ideas based on the community crit a while back. Basically I tried to maintain the ethos I think you guys are going for (simple/robots/playful) in mind so I made sort of a separate flow for people who are first-time users to keep the actual tool super simple and clean for repeat users. New users get a little walk-through of the process. Also a separate page for recovering a robot. Glad to discuss.

https://www.figma.com/file/VmJapnwOYyxlV92jRCsCte/RoboSats-Re-design?node-id=0%3A1

Sorry, I put this together after the crit but didn't realize I should post it here vs. our community slack (I'm new here) and I've been out of pocket for a couple weeks.

I think this could maybe be a lower-level bridge on the way to the great stuff @BrodaDemi has proposed.

@BrodaDemi
Copy link

Hey @domrishe this is a really cool onboarding flow. Can we collaborate to make this much more aesthetically pleasing?

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Sep 10, 2022

Can you send screenshots

We can put some screenshots here. (yet... I think it is important that you experience the current version and complete some trades. You can do it in your phone with testnet BTC accessing robotest.onion.moe or unsafe.testnet.robosats.com. The mobile browser experience is about the same as the installable app.)

Hey @domrishe this is a really cool onboarding flow. Can we collaborate to make this much more aesthetically pleasing?

I'm strongly supporting this collaboration!

Just a recap of some points we have found to be key for improving the user flow:

  • First thing a user sees is the order book.
  • The avatar robot generation pipeline starts only after a) the user selects an order or b) the user creates an order.
  • Users can create an order right from the order book view. If an order is found that matches the user needs (matchmaking Add matchmaking system #237 ) they are given the matches via Swiping cards or by filtering the book table.
  • Users can recover a robot (and its past trade) via "Recovery" button.
  • The robot avatar generation pipeline should be straight forward. Possibly as an Accordion with 3 steps: 1) Random token 2) Press to generate avatar 3) Back it up! .... Done.
  • Everything should fit on a single screen: no scrolling would be great. The design could be responsive to show more info and be pretty on a Desktop screens.

@BrodaDemi
Copy link

https://www.figma.com/file/F431OdSfLfjwa912j0U7yx/ROBOSATS?node-id=418%3A2334

@Reckless-Satoshi Hey, I want you to check out this designs and give me your feedback. Also, I'm having trouble visualising how the back up option will work. Would it be in form of an export to cloud thing, or download to computer, etc. I would need you to share more light on that.

For the recovery button too, how does it work? Btw, the following designs are still work in progress but to achieve amazing result, I need your feedback and clarity on the aforementioned.

@domrishe
Copy link

Hey @domrishe this is a really cool onboarding flow. Can we collaborate to make this much more aesthetically pleasing?

@BrodaDemi I don't really have any more bandwidth to put towards this effort at the moment, but please feel free to use or add anything from my figma file. Looks like you've got a good direction from here. Lmk if you have any questions about what I put together

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Sep 13, 2022

Would it be in form of an export to cloud thing, or download to computer, etc. I would need you to share more light on that.

It is Copy to Clipboard or Download Text File button, those are options to store the token string. The recovery is as simple as "input your token". I want to reiterate it is very important to have some experience as a user on the current version in order to understand what needs to be improved and how to improve it. Robot tokens are somewhat unique to any other website. They are to be used only once, they are "temporary", they are akin to a bitcoin private key...

Your new design is once again very beautiful and practical. I still believe we should not rework the components that are already OKish. E.g: changing the book datagrid for a list of cards. That's a lot of work. It is a matter of preference, but the datagrid is already sort of good and is very battle tested (too small payoff for the amount of work involved).

Please, wait until I come back with a rough sketch, so we can more iteratively exchange visions. I will try to have it by the end of the week. I have never used Figma, I am not sure it can be used with throw away emails and Tor Browser. So I might just use Photoshop and redesign user flow by recomposing the components we have already. Our main objective here is to more clearly guide the user and improve its flow, while avoiding to redo components unless very necessary.

@BrodaDemi
Copy link

okay @Reckless-Satoshi

@Reckless-Satoshi
Copy link
Collaborator Author

okay @Reckless-Satoshi

Just a heads up that it will take me a bit longer :`)

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Sep 24, 2022

Hey @BrodaDemi @domrishe , I do not know how to best proceed.

The issue we are having is sub-optimal communication, due to the fact I cannot annotate or edit Figma (also, Figma is not actionable, the dev will have to redo the work again). Drafting a UI on Photoshop is just not feasible as far as I have been trying: would be easier to just implement it in code. I have also tried to make a sketch with paper and pen for communication, but the drafts I have created are not clear at all, these won't be helpful.

Options:

  1. Use MUI components in Figma (apparently available, but not free) or another design tool that supports MUI (hopefully one that does not have strong restrictions when creating a user).
  2. Implement code directly and prototype using MUI components (forget Figma or UI desgin tools).
  3. Describe in words as clear as possible the requirements for each path and the components must be there. (but then what? :D)

I'm slowly going to start with 2, placing empty boxes with text describing what needs to go in-place, building a draft skeleton for the new user flow (also take the chance to turn into .tsx the components that are still .js).

I can also give my best try to 3 and describe as best as possible what I tried to convey on my last messages.

The current state of BrodaDemi's Figma very closely resembles what we have talked and it's the way to go. The only issue is to adapt it to use the components that we have created (use of order book, use the navigation bar, stick to no scrolling, color scheme, etc)

@Reckless-Satoshi
Copy link
Collaborator Author

I slowly started to transform RoboSats components and by now we have the new BookTable and Makerform as well as a new framework #289. These new components are embedded into the BookPage and the MakerPage. To complete the redesign we will need to create the new RobotPage, a SettingsPage and a Navigation bar. I will have ready the SettingsPage and NavBar in the next couple of weeks max. So the only thing left is the...

New RobotPage

After the refactor of the RoboSats Basic frontend, there is a placeholder for the new RobotPage (/src/basic/RobotPage) and a new data model "Robot" (/src/models/robot.model.ts) . We define in /src/basic/Main.tsx state variables robot and setRobot() . Exemplary API calls to generate/delete/logout of a Robot with using the new model has been implemented in the old UserGenPage.js as a guide.

The new RobotPage should have 2 views: 1) "Generate a robot" (when you have not active Robot) and 2) "Your Robot Profile" (can strongly reuse the /src/components/Dialogs/Profile.tsx).

  1. Generate a Robot should have 2 modalities (2 buttons), one big and centered "Generate a Robot", this is for newbies and would be the verbose on-boarding flow depicted by @BrodaDemi https://www.figma.com/file/F431OdSfLfjwa912j0U7yx/ROBOSATS?node-id=418%3A2334 and @domrishe https://www.figma.com/file/VmJapnwOYyxlV92jRCsCte/RoboSats-Re-design?node-id=0%3A1 . The second button "Quick generate" should skip all the steps and in one go give you a robot avatar (i.e. create a strong token, make the /api/user generation call and show the new Robot right away). The second one is way more useful for anyone who has experience with RoboSats as this is how UserGenPage.js currently works. On the generation flow for newbies, extra points are given for nice and fun transitions and animations. It would be very cool if the randomly generated token has a "slot machine" vibe to it (random number/letters flipping vertically). On the other hand, @RedPurdy is working on a really cool animation to show while the new robot avatar is loading (loosely inspired in Add animated avatar placeholder #270 and easy to add to /src/components/RobotAvatar component) .

  2. The view (2) "Your Robot Profile" should simply show Robot-wide settings. Check /src/components/Dialogs/Profile.tsx . Namely these settings are: enable Telegram notifications; shortcut to your active/previous orders; enable/disable stealth invoices; and, the rewards and compensations switch (referral link and submit and invoice to be paid out rewards). Only thing missing in the current component is a "Logout" and "Delete" buttons (after pressing it, the view (1) will be shown).

Other comments

This task only requires knowledge of ReactJS and MUI and can reuse large parts of /src/basic/UserGenPage.js and /src/components/Dialogs/Profile.tsx

This task is rewarded with 1M Sats ⚡. Write below if you want to be assigned. Preference for assignation given to @n-ochs as interest was shown long time ago. If there happens to not be any volunteer in ~3 weeks max I will take this task as it is the last component needed to have the new iteration of RoboSats Basic ready (would be amazing to have finished it by the release of the Android app).

@Reckless-Satoshi
Copy link
Collaborator Author

Let's share the UI design reward between both contributors @domrishe and @BrodaDemi .

Very arbitrarily we could split the 300K into 250K for @BrodaDemi and 50K Sats for @domrishe. Please submit a LN invoice with a long expiration time from a proxy node pubkey 🚀

@n-ochs
Copy link

n-ochs commented Oct 24, 2022

I would still love to take on this task.

Just throwing it out there: if needed, I can turn any class component into functional and/or JS file into TS. I'm very comfortable with React TS + MUI.

Please let me know when I can branch off and start. @Reckless-Satoshi

Thanks!

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Oct 25, 2022

I would still love to take on this task.

Just throwing it out there: if needed, I can turn any class component into functional and/or JS file into TS. I'm very comfortable with React TS + MUI.

Please let me know when I can branch off and start. @Reckless-Satoshi

Thanks!

Feel free to start whenever you want! 🚀 Let me know if you have any question. We can open a dedicated thread for this task.

In case you want to look into other components that need JS -> functional TS work look into the OrderPage/TradeBox #303 or the other RoboSats PRO components that are planned #177 (comment)

@Reckless-Satoshi
Copy link
Collaborator Author

@domrishe PR #308 introduces the new Navigation Bar. It also refactors and makes it cleaner the login process in the old UserGenPage. If you started working on this component is worth rebasing to add those commits. I will keep testing it but will be merged in a similar form to what there is now. Also feel free to join us in our dev group https://matrix.to/#/#robosats:matrix.org for faster communication :)

@Reckless-Satoshi
Copy link
Collaborator Author

@n-ochs won't be able to follow through with the implementation of the new robot page. I might put mylself on it on the following weeks :)

@Reckless-Satoshi Reckless-Satoshi mentioned this issue Feb 14, 2023
1 task
@github-project-automation github-project-automation bot moved this from In Progress 🚧 to Done 🚀 in ⚡Developer Rewards Panel ⚡ Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion 💬 This issue has become a forum of ideas ⚡Eligible for Sats ⚡ This issue or pull request rewards bitcoin enhancement 🆙 New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants