You will be assessed on your ability to complete all the below features. You will not be judged on how beautiful you can make your UI, but please try to use layout margins/padding to space your views appropriately, and specify text sizes to make things more readable, where necessary. The documentation for the REST API that should be used for these tasks is included at the end of this document.
1. A login screen
○ Customer Service agents provide a username and password and tap a button to submit.
○ If the provided credentials are rejected by the server, then an error should be displayed.
○ If valid credentials are provided, then the app should advance to the next screen, and use the auth token in the response for all subsequent requests.
○ Your username will be your email address, and your password should be your email address in reverse. Please make sure to use a real email address that you own for this exercise.
2. A screen that displays all message threads
○ Display a list of message threads, where each customer’s messages should be treated as a separate private thread.
○ The latest message of each thread should be surfaced in this list. At a minimum, please display the message body, timestamp, and agent OR user id (whichever of these is relevant) of the sender.
○ If any of the message threads in the list is tapped upon, then the app should advance to the next screen.
3. A conversation screen to view an individual message thread and respond
○ A sorted list of all messages (both customer and agent) relevant to the thread should be displayed here.
○ The agent should be able to respond to the customer using an input field.
○ At a minimum, please display the message body, timestamp, and agent OR user id (whichever of these is relevant) of the sender.
API Docs
The root URL for all the endpoints below is: https://android-messaging.branch.co/
Request bodies and responses should all be in JSON. Use request header “Content-Type: application/json”.
Endpoint: api/login - log in as a customer service agent.
Method: POST
Parameters:
● username: your email address
● password: your email address reversed
Response: {“auth_token”: your_auth_token }
All other requests below require that you send a request header like: “X-Branch-Auth-Token: your_auth_token”
Endpoint: api/messages - get all messages from all message threads
Method: GET
Response: An array of message objects, each with the following fields:
● id: the integer id of the message
● thread_id: the integer id of the thread
● user_id: the customer id associated with this thread.
● agent_id: the id of the customer service agent who wrote this message, or null if this message was written by a customer.
● body: the body of the message
● timestamp: the time when this message was created
Endpoint: api/messages - create a new message as the logged in customer service agent
Method: POST
Parameters:
● thread_id: the id of the thread to which you are responding.
● body: the message body.
Response: The newly created message as JSON in the same format as in the GET request.
Endpoint: api/reset - for testing purposes, you may wish to delete all messages you have sent as an agent. This endpoint will reset everything so you can start fresh.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
29 | 30 | 31 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 1 |