ajhenry / cs1699project

An Android application where users can request to have a job done for a specified amount of money. After completion of the job, users are paid via PayPal within the application.
MIT License
0 stars 0 forks source link

A comprehensive TODO list #26

Open ajhenry opened 6 years ago

ajhenry commented 6 years ago

This is a comprehensive list of what needs to be done, if you think something else needs to be done, please comment below. This list is also in order of importance, starting with 1 and breaking down into sub-categories starting with a.

  1. Create Task 1a. Error checking for the input forms needs to be added, all of the text inputs are wrapped in TextInputLayouts and so this should be trivially easy to add an error message underneath, please refer to here for documentation on that. https://stackoverflow.com/questions/30953449/design-android-edittext-to-show-error-message-as-described-by-google 1b. Fix the floating point error that is display in the summary.xml dialog, and add '$' to the subtotal display. 1c. Change layout so that the cost doesn't change the layout completely

  2. Adding PayPal This is pretty important that this be set up asap because it takes 3-5 days for a regular account to be transformed to a business account. 2a. We need to add a PayPal checkout after a perform hits "Request Errand" 2b. We need to ensure this is securely handled within our firebase db.

  3. Task Activity 3a. We need to fill the Task activity with the correct data, all the components should be labeled correctly in activity_task.xml. When the activity starts, it is sent a taskID, from the feeds. With this task ID, we can perform a Query on firebase to return the info for the task and get the info you need to fill the activity in with 3b. Need a way for users to accept an available errand.

  4. The Feeds 4a. We need to add a content provider, there are many, many better ones than SQLite, so if you have suggestions, please put them below. When we first open the app, we need to populate the content provider so we don't have to query firebase every time someone changes to a different feed. 4b. Geofire (Found here https://github.com/firebase/geofire-java), can be used to query the HomeFeed to get tasks based on location.

  5. Accepting an Errand 5a. We need be able to let people accept errands, and we can do this with the following 5a1. a person clicks on an errand and tries to accept the errand 5a2. the creator is notified and has a choice of approving or declining the person that tried to accept the errand

5aa. We could possible add a feature for users to negotiate on the price of an errand that the creator may accept or decline

  1. Need to add a balance activity 6a. This is where a user can request a payout to their PayPal

  2. The rest of the triggers, this will be easy if we complete the above

ajhenry commented 6 years ago

https://github.com/square/retrofit/tree/version-one this library can be used for the PayPal rest calls

pitchaim commented 6 years ago

@AJHenry re. 2a, do we want to integrate Paypal on Request Errand (& set up price/payment tracking throughout) or when a task is complete? The Braintree API for Express Checkout I'm working with now will just drop the user into a payment window when they want to make a payment, so we could include a Paypal button in the Task activity or just open the Braintree activity when someone marks a task complete. Might make life easier, and no need to track Paypal login on our end.

ajhenry commented 6 years ago

@pitchaim I figured this would be the payment flow, feel free to offer suggestions,

  1. The user requests an errand costing $10, since this is a micropayment, the fee is 5% of the cost, plus $0.05, so the total cost would be $10.55. We can hold onto that money until the person who requested the errand completes it, thereby making our life easier if someone tries to steal money by saying they completed the errand without doing it.
  2. When the user finally completes it and both parties (Requester and Runner) are satisfied, the runner can request to get paid the $10. To payout with paypal, it costs $0.25 per payout. So this would be bring the overall cost to $10.80, if we don't take any fees out for ourselves.

So we can use paypal checkout for making the errand, and then paypal payout for paying people

Or we could also do, we don't charge anyone until someone accepts the errand, that way they can cancel it if they need to without getting charged

ajhenry commented 6 years ago

I will take care of 1, and push it up in a few

Bas164 commented 6 years ago

Tomorrow after my classes I will work on 3.

And 5, as they kind of relate.

ajhenry commented 6 years ago

I can work on the Feeds next, it may not be until the weekend however, if someone wants to do it before then, lemme know