-
Notifications
You must be signed in to change notification settings - Fork 145
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
Draft RoboSats PRO: a frontend for large liquidity providers and advanced RoboSats users. #177
Comments
To get started, I will roughly describe what I have in mind: "a table with a toolbar on top", not too different of how Google Sheets looks. On the table (DataGrid)Each Row of the table is a Robot identity with an active/past order that is being tracked. On the toolbarThe toolbar on the top can have multiple tools, but at least there should be an "Export/Import Workspace" button that will allow users to download a On the right side (or on a corner)Embed the current Contract Box ( There are many components and utils that can/must be reused from RoboSats basic (e.g. token generation, PGP keys functionalities, currency flags, icons, MakerPage.js, EncryptedChat.js, etc). Optionally, all robots on the same workspace are derived deterministically from a single master key. |
List of ideas collected from the Telegram:
|
Once a design is done for this I might have some time so help develop the front-end. |
Oh nice, in the last days I actually thought more often about how it could look like and started to draw my ideas. |
Awesome, I was also thinking on putting forward some initial sketches. But will wait for @dsitti input. Once we have something solid I will luck into splitting the development into small tasks :) |
Hey @dsitti these look beautiful! I have enjoyed discovering every corner of your vision :D This contribution deserves some dev fund Sats. Please, submit an invoice for 100K Sats and long expiration time (make sure to use a proxy node_id or send it via private message in TG). Some things that I like about this design that we should stick to:
Let's try to also fit a few of these constrains Some hurdles Optimizing real state Workspace summary Landing view Some other unrelated ideas: xToken I only missed on @dsitti's draft the button for the pre-formated chat messages :D It's a powerful feature, let's keep it present. EDIT: Oh, I see it is thought to be under "Settings" I believe we can do a bit better at naming a "workspace". E.g. "Robot garage". Ideas? ^^ |
I really like these designs. The one with the two OrderPage does not look bad, although these boxes on your design might be too small (in any case we really want to reuse the ContractBox the OrderBox can be redisigned? )
I have never used Figma. Is there any way for you to share a link to your draft for collaborative work? It would be ideal to stick to React MUI components. I am not sure how suited Figma is for it, on a quick look there seems to be some friction: https://mui.com/store/items/figma-react/ (there is a free demo here https://www.figma.com/community/file/912837788133317724 ) |
Also for me first time, but sure, here is a link to view: If anyone want edit permissions ask for a link via TG (@RoboSats). :) |
Hey guys, It's time to get moving and start writing code towards RoboSats PRO. I am very excited, I think we can build something fun and powerful here. The setupI have initialized the As it stand, both apps (basic and pro) are 'Webpacked' together. They share same Check the live concept at pro.robosats.comYou can have a look at the new route with the placeholders and demo widgets in https://unsafe.robosats.com/pro/ I am amazed on how powerful and performant RoboSats PRO components and tasksAt the moment, the tasks are highly parallelizable as the new components and widgets should not rely on each other. However, the Robot Table (aka Robot Garage) and its data model are the priority. We should aim for a default workspace layout close to the @dsitti design. Robot Garage (aka "my robots & orders table")This component is the core of PRO. It is a table where each row shows a robot with it's active order. We can each row a "slot" in our "garage". This component needs a new data model: "Garage". A Robot Garage can be something like a list of slots where each is populated by a Robot and its current trade. In addition a Garage has a single extended token for which all other tokens are derived. interface Garage {
slots:{robot: Robot, trade: Trade}[];
xToken:string;
} this is just a hint, we only will get to know what structure is best once we start working on it
To kick-start this component we SHOULD work over the current The table columns can be very similar to the ones depicted in @dsitti's draft. To be precise it probably should have at least: The rows in this table should be selectable (a checkbox in the beginning) so the user can perform an "action" over many Trades at once (e.g. "Pause selected orders"). This table should have a controls builtin (see Clicking anywhere in the row will make that This component will be in charge of keeping all current trades updated (i.e., fetch Building the Robot Garage is quite the priority so I am hoping we can start working on it in the next 2-3 weeks and have it ready before the end of the year. If there is not volunteers I will start working on it and share progress once we are done with the new basic NavBar, SettingsPage and RobotPage Rewarded with 3M Sats ⚡ Trade Box (also for RoboSats Basic)We need to turn the current Turning both, the OrderPage and the TradeBox into functional components and building the Trade widget is rewarded with 2M Sats ⚡ Settings (also for RoboSats Basic)A simple For to set user settings: UI fontSize, mode (light|dark), language... Most likely I will build this one in the next couple of week as it is very needed for the next iteration of RoboSats Basic. ToolbarA simple component with a few buttons and selectables to: Import / Export a workspace (all: Garage/Layout/Settings/Maker models), add/remove widgets to the viewport and freeze/unfreeze the widgets. Adding and removing widgets via "drag and drop" would be really cool and is pretty easy (here a demo on how to easily implement it with RGL). The RoboSats logo on the top left will fit well as in @dsitti 's draft. Rewarded with 200K Sats ⚡ Others (low priority)Garage History: A table with all past trades. Very cool if it generates all time statistics: number of orders, average lifetime premium, total fiat traded, earned Sats asssuming arbitrage over the CEX market ... These require some of the priority components to be built first. So let's talk more about them once we have a working app. Some other widgets can be created in the future (very low priority): standalone chat box, tool to generate QR codes from any string, etc... Other commentsI already failed at developing a frontend from scratch following best practices once :D So I would be very happy if some experienced dev checks over this plan in more depth. Also happy if they volunteer to fully lead RoboSats Pro development (@onelight ? @shattered ? @KoalaSat ?), leading the development would of course be a rewarded task as well. Mentioning everyone who might potentially be interested on contributing (those who did frontend contributions in the past and participants of this thread): |
Hello everyone! Following the drafts of @dsitti and comments of @Reckless-Satoshi , I tried my best to create a prototype more close to reality (using MUI patterns and +). Here's the figma: https://www.figma.com/file/tvll4DmXOj7MWZjP9ywR2P/Robosats-Pro?type=design&node-id=0%3A1&mode=design&t=T2hiL22VX1Ow3H00-1And here's the interactive prototype: https://www.figma.com/proto/tvll4DmXOj7MWZjP9ywR2P/Robosats-Pro?type=design&node-id=3-1641&t=k2qvQ7sYEg5tKvTu-1&scaling=scale-down&page-id=0%3A1&starting-point-node-id=1%3A2&show-proto-sidebar=1&mode=designI droped some notes on the design. Also, if you're not familiar with Figma, in the interactive/playable prototype page you can switch FLOW 1 and FLOW 2 in the sidebar. I separated in 2 alternatives. One (FLOW 1) following the drafts before and showing everything on the screen, and the other one (FLOW 2), I tried to hide unecessary stuff and only show it in dialog boxes, such as the "Create Order" feature. Please give me some feedback and let me know if there's something to add/remove or improve. "Original":Alternative:These are just some pages of example. In the Figma you can see the entire flow.
|
Advanced users and large liquidity providers need better tools: a panel/workspace where they track many robots and orders, functions to batch load/save order configurations, further order customization, public order editing, etc. All these features add further complexity to the current frontend and will be very confusing for new users, yet they are critical for RoboSats to grow into a healthy and liquid market. So... Let's create a frontend specifically for advance users!
Let's fork RoboSats frontend into two: RoboSats Basic and RoboSats PRO
RoboSats basic
RoboSats basic (or simply "RoboSats") will stay as is currenctly. See source code in
/frontend/src/
. Some of the advanced features included recently can be deleted (e.g., the Customize tab on theMakerPage.js
). RoboSats basic must remain clean and easy to use for new users and takers and be as lightway and multiplatform as possible. RoboSats basic will also be eventually available as a Webview app for Android (...and iOS?) currently WIP #170RoboSats PRO
RoboSats PRO will be a new frontend, designed for Desktop only. RoboSats PRO is a re-factoring of the current app with an added layer of abstraction: a workspace. A workspace is a client-side abstraction that consists of a set of Robot identities (and their orders). A workspace should be easy to export and import from/into the webapp as a file in the local disk. The objective of RoboSats PRO is simple: a user should be able to track the current state of all of his robots and orders with a quick glance (no need to click/scroll.) and interact with the contract of any of them with the click of a button.
We should use our previous learnings from RoboSats basic development and use Create React App w/ Typescript support and stick to best practices.
This issue is intended to discuss users expectations, define app requirements and create a rough draft of how RoboSats PRO must look.
Developing this app/feature is STRONGLY eligible for developer compensation (pilot program)
The text was updated successfully, but these errors were encountered: