-
Notifications
You must be signed in to change notification settings - Fork 0
Support campaign flow depending on user status #38
Description
User Story: Logged-In User Supports a Campaign
Description
As a logged-in user, I want to support a campaign, so I need to be guided through the process of connecting my wallet and confirming the transfer.
Steps to Implement
- User is already logged in (
current_user):- Sub-option 1a: User has no wallet connected to their account:
- Trigger the modal to connect a wallet.
- After the wallet is connected, proceed to step 1b.
- Sub-option 1b: User has a wallet connected:
- Show a page with all the transfer data including:
- Their wallet address
- The campaign owner's wallet address
- Transfer amount
- Other relevant details
- Provide an option to confirm the transfer.
- Implement the transfer process (covered in a separate issue).
- Show a page with all the transfer data including:
- Sub-option 1a: User has no wallet connected to their account:
Acceptance Criteria
- Logged-in users without a connected wallet see a modal to connect their wallet.
- Logged-in users with a connected wallet see a page with transfer details.
- Users can confirm the transfer on the transfer details page.
- The transfer process is initiated upon confirmation.
Tasks
- Detect if the user is logged in and has a connected wallet.
- Trigger the wallet connect modal if no wallet is connected.
- Show the transfer details page if the wallet is connected.
- Implement the transfer confirmation page.
- Implement the transfer process (separate issue).
Additional Information
- Ensure smooth transitions between each step.
- Maintain security and user experience throughout the workflow.
- Log errors and provide user-friendly messages for any issues encountered.
Possible Questions and Options:
-
Modals vs. Normal Pages:
- Should the entire flow be guided using modals for a seamless and contained user experience, or should we use normal pages with URLs to provide more flexibility and direct access?
- Pros and Cons of using modals:
- Pros: Provides a seamless and consistent user experience without page reloads.
- Cons: May require more complex JavaScript and state management.
- Pros and Cons of using normal pages:
- Pros: Easier to manage and debug, allows direct URL access and bookmarking.
- Cons: May feel less seamless due to page reloads.
-
Handling Authentication:
- Should the authentication step be a modal overlay on the current page, or a full-page redirect to the sign-in/sign-up page?
- How should we handle errors during the authentication process? Display inline messages or redirect to an error page?
-
Wallet Connection Process:
- Should the wallet connection process be integrated into the sign-up flow, or should it be a separate step after authentication?
- How do we ensure the wallet connection step is user-friendly and secure?
-
Confirmation Modal:
- Should the confirmation of the transfer be a modal overlay, or a separate confirmation page?
- What specific details should be included in the confirmation modal to ensure users are fully informed before proceeding?
Related Files:
- CampaignsController
- Views related to campaign, sign-in, sign-up, wallet connect, and contribute pages.
- JavaScript files handling modals and redirects.
References:
User Story: New User Supports a Campaign
Description
As a new user who has not authenticated through GitHub and has no wallet connected, I want to support a campaign, so I need to be guided through the authentication and wallet connection process before confirming the transfer.
Steps to Implement
- User is not authenticated (
current_userisnil):- Redirect the user to authenticate through GitHub.
- After successful authentication, trigger the modal to connect a wallet.
- Once the wallet is connected, follow the steps in User Story 1b to show the transfer data and confirm the transfer.
Acceptance Criteria
- Unauthenticated users are redirected to GitHub for authentication.
- After authentication, users see a modal to connect their wallet.
- Once the wallet is connected, users are shown the transfer details page.
- Users can confirm the transfer on the transfer details page.
- The transfer process is initiated upon confirmation.
Tasks
- Redirect unauthenticated users to GitHub for authentication.
- Trigger the wallet connect modal post-authentication.
- Show the transfer details page once the wallet is connected.
- Implement the transfer confirmation page.
- Implement the transfer process (separate issue).
Additional Information
- Ensure smooth transitions between each step.
- Maintain security and user experience throughout the workflow.
- Log errors and provide user-friendly messages for any issues encountered.
Possible Questions and Options:
-
Modals vs. Normal Pages:
- Should the entire flow be guided using modals for a seamless and contained user experience, or should we use normal pages with URLs to provide more flexibility and direct access?
- Pros and Cons of using modals:
- Pros: Provides a seamless and consistent user experience without page reloads.
- Cons: May require more complex JavaScript and state management.
- Pros and Cons of using normal pages:
- Pros: Easier to manage and debug, allows direct URL access and bookmarking.
- Cons: May feel less seamless due to page reloads.
-
Handling Authentication:
- Should the authentication step be a modal overlay on the current page, or a full-page redirect to the sign-in/sign-up page?
- How should we handle errors during the authentication process? Display inline messages or redirect to an error page?
-
Wallet Connection Process:
- Should the wallet connection process be integrated into the sign-up flow, or should it be a separate step after authentication?
- How do we ensure the wallet connection step is user-friendly and secure?
-
Confirmation Modal:
- Should the confirmation of the transfer be a modal overlay, or a separate confirmation page?
- What specific details should be included in the confirmation modal to ensure users are fully informed before proceeding?
Related Files:
- CampaignsController
- Views related to campaign, sign-in, sign-up, wallet connect, and contribute pages.
- JavaScript files handling modals and redirects.
References:
Enhancement: Implement Wallet Transfer Process
Description
Implement the process of transferring funds from the user's wallet to the campaign owner's wallet upon confirmation.
Steps to Implement
-
Show Transfer Details Page:
- Display details including:
- User's wallet address
- Campaign owner's wallet address
- Transfer amount
- Other relevant details
- Display details including:
-
Confirm Transfer:
- Provide an option for the user to confirm the transfer.
- Display a modal to ensure the user wants to proceed with the transfer.
-
Execute Transfer:
- Trigger the transfer from the user's wallet to the campaign owner's wallet upon confirmation.
- Handle any errors and provide feedback to the user.
Acceptance Criteria
- Transfer details page displays all relevant information.
- Users can confirm or cancel the transfer.
- Transfer is executed upon confirmation.
- Errors are handled gracefully with user-friendly messages.
Tasks
- Display transfer details page with relevant information.
- Implement confirmation modal.
- Execute wallet transfer upon confirmation.
- Handle errors and provide feedback.
Additional Information
- Ensure the transfer process is secure and user-friendly.
- Log errors and provide user-friendly messages for any issues encountered.
Possible Questions and Options:
-
Modals vs. Normal Pages:
- Should the entire flow be guided using modals for a seamless and contained user experience, or should we use normal pages with URLs to provide more flexibility and direct access?
- Pros and Cons of using modals:
- Pros: Provides a seamless and consistent user experience without page reloads.
- Cons: May require more complex JavaScript and state management.
- Pros and Cons of using normal pages:
- Pros: Easier to manage and debug, allows direct URL access and bookmarking.
- Cons: May feel less seamless due to page reloads.
-
Handling Authentication:
- Should the authentication step be a modal overlay on the current page, or a full-page redirect to the sign-in/sign-up page?
- How should we handle errors during the authentication process? Display inline messages or redirect to an error page?
-
Wallet Connection Process:
- Should the wallet connection process be integrated into the sign-up flow, or should it be a separate step after authentication?
- How do we ensure the wallet connection step is user-friendly and secure?
-
Confirmation Modal:
- Should the confirmation of the transfer be a modal overlay, or a separate confirmation page?
- What specific details should be included in the confirmation modal to ensure users are fully informed before proceeding?
Related Files:
- CampaignsController
- Views related to campaign, sign-in, sign-up, wallet connect, and contribute pages.
- JavaScript files handling modals and redirects.
References:
For all scenarios, tests are necessary.