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

PRO: Robot Garage component and main PRO data model. #302

Open
Reckless-Satoshi opened this issue Oct 24, 2022 · 5 comments
Open

PRO: Robot Garage component and main PRO data model. #302

Reckless-Satoshi opened this issue Oct 24, 2022 · 5 comments
Labels
⚡Eligible for Sats ⚡ This issue or pull request rewards bitcoin enhancement 🆙 New feature or request

Comments

@Reckless-Satoshi
Copy link
Collaborator

Reckless-Satoshi commented Oct 24, 2022

This is an excerpt of main thread for RoboSats PRO #177 (comment)

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

Trade is a yet to implement model that results of storing the response of /api/order/?order_id=XXX (specs . Do not confuse with the Order model (/src/models/Order.model.ts), this model only contain the public view of an order as returned by /api/book (specs). Probably we should rename these models to "Order" (for /api/order ) and "PublicOrder" (for /api/book )

To kick-start this component we SHOULD work over the current /src/components/BookTable.tsx as there is a lot of code we can repurpose (plus this table columns are fully responsive to resizing).

The table columns can be very similar to the ones depicted in @dsitti's draft. To be precise it probably should have at least: [robotAvatar, type:(buy|sell), token (click to copy icon only), amount, currency, premium, pay_methods, current_trade_status, time_to_expiry, preset_message, ...others].

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 BookTable and its BookControl component in the header for inspiration). The controls should have a button for "Add new robot" and a drop-down Select for "Actions" (..."pause", "cancel", "export summaries"...) .

Clicking anywhere in the row will make that garage.slot (a robot and its order) to be the one in focus (the Trade Widget will display the TradeBox prompts of the slot in focus)

This component will be in charge of keeping all current trades updated (i.e., fetch /api/order/?order_id... every X seconds), and alert the user (sound? intermittent light in the row?) if an order status changes.

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 1.5M Sats ⚡ drop a comment below if you want to be assigned. Possibly can be split into a few subtasks/PRs

@KoalaSat
Copy link
Member

Hey @Reckless-Satoshi I think I can start having a look to this one, I remember there was some work on mockups but not sure if they were finished, do we have something?

@Reckless-Satoshi
Copy link
Collaborator Author

That's awesome!

There are no mockups for the Robot Garage component itself at the moment. But @dsitti made a first rendition of it as "My robots and orders" in his Figma drafts #177 (comment)

@Reckless-Satoshi
Copy link
Collaborator Author

Reckless-Satoshi commented Mar 8, 2023

Last week I merged some initial work on the Robot Garage. It only has some basic functionalities that are needed for RoboSats Basic, but it should be easy to add there whatever is needed for a more functional Garage!

https://github.com/Reckless-Satoshi/robosats/blob/f6fcbd61a1a4d5d3dd397f18d4c28ee56409a910/frontend/src/models/Garage.model.ts#L1-L53

@Reckless-Satoshi
Copy link
Collaborator Author

Looking for dev again for this task. Given that both an initial robot garage and a proper state management have been created or converted into a separate task, this task is now smaller and more tractable. The reward for this task has been updated to 1.5M Sats.

@michalvarys
Copy link

Hello @Reckless-Satoshi, what is the status of this one? I don't have much experience with blockchain, but if it's just regular front-end stuff, I think I can handle that.

Here is my LinkedIn with some of the tech stacks I have worked with. Let me know if you think I would be a good fit. I might be able to help with other features too, could use some sats RN 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚡Eligible for Sats ⚡ This issue or pull request rewards bitcoin enhancement 🆙 New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants