Overview
This iteration, our main focus was to finish the app, refactor and clean the code, and make the UI nicer
Iteration Plan
Completed this iteration:
- Finished all use cases
- Reworked the entire UI
- Created a method for users to cancel a task which they are currently running, as suggested by Professor Palmer
- Cleaned the project to avoid warnings
- Added commenting to the network code as suggested in previous iteration
- Added a configuration folder with files to keep track of server IP, version number, final error messages, etc
- For larger requests, the server now sends the responses back in 'chunks' as opposed to 1 large response
Error Handling/ Defensive Programming
During our final iteration, we spent a lot of time looking for possible ways to break the app in doing un-intended actions. We want to assume that our users will not follow use cases directly. Some examples are:
- Check connection to the server on the splash screen and do not allow users to continue until they are connected to the server
- Check to see the user has a task before sending a finish task request
- Regular expression to make sure e-mail is of proper format when registering
- Check if the deadline for a task is in the past
- Check if the price on a task is unreasonably high (>$999)
- The server only recognizes specific requests and will send an error response to the client if any other type of message is received
- You cannot accept your own task
Future Goals
- Venmo integration
- Tags for tasks - we currently have the UI filter, but not the code for filtering or setting a task's tag
- Backend security
- Personalizable profile pages (image, about, etc)
- User-to-user Messaging