I am currently commissioning a web app which is live for a specific period of time and showcases deals. This website is built using php and mongoDB.
I need a developer to build the second phase to the website, which is a live 1-on-1 chat feature. This chat feature of the web application should be delivered in the form of a client and server. The server should facilitate subscription to a chat via WebSockets, making use of Redis to persist chats in progress whilst storing finished conversations in Mongo (the chosen database for the web application). (We will be hosting this project in the cloud via AWS or similar).
Please note that I am currently producing all the UI html for this as I am a front-end developer. I am happy to provide the UI mocks to help you visualise this project upon request.
Java/Scala with Play framework or NodeJS with [url removed, login to view] are seen as robust choices for the chat server.
The client of the chat server - integrated into the web application - must be compatible with WebSockets and must be cross-browser compatible (including IE 9+).
The chat feature set is outlined in more detail below.
- Authentication & Session Management -
Each call to the chat server must be accompanied with a valid session token
It must only be possible for the web application (chat client) to obtain a session token
A session must expire after a configurable period of inactivity
- User Sign-in -
A chat user must "sign-in” to the server to become “available" to join a chat
It must only be possible for the web application (chat client) to sign-in a user
A user sign-in request must consist of a minimum of name and IP address
A user must be automatically set to “unavailable” status after a configurable period of inactivity
- Chats -
The client must be able to start a chat between two users
A chat must be automatically expire after a configurable period of inactivity
A chat agent is able to send canned messages (stored via the admin in mongoDB)
A chat agent must be able to send internal url's to the website for specific pages
A chat agent must be able to block users based on IP
- Admin -
View active chats
View chat messages
Mark a chat as “favourite"
- Data Retention -
Move chats to Mongo as one document upon expiry
Some suggested REST/JSON endpoints of the server are provided below
Get session token for client
Sign-in a user
Get a list of users with an optional boolean filter
Get chats in progress
Create new chat
Get specific chat in progress by chat identifier
The same URL (with scheme ws:// instead of http://) can be used for the WebSocket connection
Further details provided upon request. Many thanks.
58 freelancers are bidding on average £1352 for this job
I am Senior Java Developer with more than 10 years of experience in Java design and development with strong problem solving skills. Code Samples [login to view URL] CV [login to view URL]