Hi!
Please choose the one task you are most interested in completing and/or which aligns most with what you'd like to work on.
Your task is to build an Eager app! While it will require a bit of learning about how Eager apps work, we have found creating apps to be a great way to show off your frontend chops without the complexity of a full web app. It shouldn't involve more than a couple hours of work, and it will help you to understand what we do a bit better as well :).
The app should allow a website visitor to adjust the font size of the page they are currently on to make it more readable. How you implement this from a UX perspective is up to you. My one suggestion would be to think about how a user might interact with it first and foremost, and feel free to be creative.
You can view our docs and getting started instructions here: Eager Docs
When it's ready, please send me a link to a GitHub repo with the source code.
In the language of your choice (feel free to use Go if you'd like an extra challenge), please build a web service which would support an Instant Message application (one-to-one chat). The API should have the following endpoints:
Create a new chat message, the body is JSON with the following format:
{
"from": "UserName",
"to": "OtherUserName",
"message": "Some message"
}
List chat messages which were sent between UserNameA
and UserNameB
which occured after FromTimeStamp
. If FromTimeStamp
is omitted, list all messages between the users. The endpoint should return JSON (and have the appropriate Content-Type header) of the form:
[
{"from": "UserName", "to": "OtherUserName", "message": "Some Message", "at": someTimeStamp},
{"from": "UserName", "to": "OtherUserName", "message": "Some Other Message", "at": someTimeStamp},
{"from": "OtherUserName", "to": "UserName", "message": "Some Other Other Message", "at": someTimeStamp}
]
The endpoint should return all messages after FromTimeStamp
, there is no need to paginate the response. The endpoint should return all messages sent between the two users, irrespective of which one sent and which one retrieved. You may store the messages in memory, there is no need to use a database or worry about scaling it beyond a single machine.
An example request which would post a message:
curl -X POST -H 'Content-Type: application/json' -d '{"from": "zack", "to": "charles", "message": "pizza tonight?"}' http://localhost/
An example request which would retrieve messages sent after 1460410016 (5:27 PM March 11th 2016 ET):
curl http://localhost/zack/charles/1460410016
Whichever option you chose, please send us a link to a GitHub repo with the source code. If it makes sense to, please create reasonable git commits along the way, as you would on a real project.
If you have any questions or notice any issues with these instructions, please reach out to me at [email protected].