Objective: We are building a Web Chat Application that will contain a smooth user interface similar to a mordern SMS/Texting Application. Our build will use the standard iOS texting app as a design guide, as it was built using S.O.L.I.D Object Oriented Design Principles. When sending messages to the recipient, we will communicate data from the front-end to the back-end using an Application Protocool Interface (API). Upon initially viewing the chat app for the first time, a user should be able to select the option to login or quickly create a user account. We will allow users to login with other social media accounts such as: Facebook, Twitter, Gmai, etc.
Features:
- encoding the originial human readable message. This not only allows the opportunity to showcase profficient usage of data structures, but also allows the opportunity for our team of developers to explore the basics of encryption/decryption, and implementing our own proof of concept algorithms.
- Voice recognition & speech recognition. Voice Recognition Allows for users to be authenticated via distict wave patterns, speech recognition allows for speech to text transcription. This feature invovles more advanced concepts of Computer Science, touching sub-topics like Artificial Intelligence. Implementing Speech API's shows a fundumental understanding of practical, real world usage of today's cutting edge Software Technologies.
SideNote: Documentation and maintenance for the Java Encryption Server is currently being maintained in a seperate repository. If you are here for that, please see the javaChatDataServer repo.
The UI is Currently in BETA 1 testing phase, and does not have all of the visual features that would complement using the Private Messenger. Therefore, there are certain guidelines to use it until more UI has been added.Currently, this application is experiencing bugs in the Safari browser. This issue is being investigated.
-
The landing page:
https://chatappproject.herokuapp.com
, load a blank chat interface, simply because no user or recipient has been entered into the search query parameters of the URL. This is not an error. - To add a user to the private messenger you must download Postman , and send a POST request to the url:
[domain]/api/users/createUser/:userId
. Remember to add the sender, and recipient user. -
In order to start a chat between two users, you must type both users into the corresponding query parameters: user, recipient of the url address:
https://chatappproject.herokuapp.com?user=senderId&recipient=recipientId
- While you are able to load the chat website on a mobile device, because it is not configured for touch events the send button will not respond, rendering the application unusable on mobile platforms. This will soon change with an update, but is currently the case.
/api/users/createUser/:userId
/api/users/voiceRecognition/:userId/:voiceId
Create A Conversation Between the current user, and recipient user. DO NOT try to add messages to to a user's conversation with-out creating calling this end-point. [POST]
/api/privateChat/createConvo/:userId/:recipeintId
/api/privateChat/addMessage/:userId/:recipientId/:message
Successfull
{
"error": boolean,
"success": booleam,
"msg": String,
"obj": JSON Object
}
Error / Unsuccessful
{
"error": boolean,
"success": booleam,
"msg": String
}
-
createPrivateConvo(String sender,String recipeint,Object response)
call: createPrivateConvo("WiseNN", "TaslimD", res) response: { "_id" : "WiseNN", "privateConvos" : [ { "recipientId" : "Nommel", "_id" : "WiseNN", "messages" : [ ] } ], "__v" : 1 }
-
deletePrivateConvo(String sender, String recipeint, Object response)
call: db.deletePrivateConvo("WiseNN", "TaslimD", res); response: (succeeds silently)
-
addUser(String userId, String res)
call: addUser("WiseNN"); response: { "_id" : "WiseNN", "isActive" : true, "__v" : 0 }
-
addVoiceRecognitionId(String userId, String voiceId, Object res)
call: addVoiceRecognitionId("WiseNN","kjdns89d8dshcsiudIWEUHIUWE", res); response: { "_id" : "WiseNN", "isActive" : true, "__v" : 0, "voiceId" : "kjdns89d8dshcsiudIWEUHIUWE" }
-
removeUser(userId, response)
call: removeUser("WiseNN"); response: (succeeds silently)
-
addMessage(sender, recipient, msg,response)
call: db.addMessage("WiseNN", "TaslimD", "Hey What's Up!"); response: (re-constructing)
-
Reads the contents of a database document. Pass in a database Schema, and the function will log all documents present
readDb(db)
-
Saves newly created database documents. Pass in a database document, or a newly created object out of a database Schema, and a response object, to respond to the client. The response Parameter can be: `null`
saveDb(doc, response)
-
Sends the client a JSON response and status code, depending on the request. Pass in the response object, an http status code, and the json content that needs to be sent back to the client. Do Not Modify
sendJSONresponse(res, status, content)
## CSC 2720 Datastructures Group Project Members
-
Adobah
Github:
LinkedIn:
Website:
-
Brandon
LinkedIn:
Github:
Website:
-
Nommel Djedjero
LinkedIn: https://www.linkedin.com/in/nommeldjedjero/
Github: https://github.com/NommelDjedjero
Website:
-
Taslim Dosunmu
LinkedIn: https://www.linkedin.com/in/taslimdosunmu/
Github: github.com/JayDosunmu
Website:
-
Hasan Raza
LinkedIn:
Github:
Website:
-
Norris Wise
LinkedIn: https://www.linkedin.com/in/norris-wise-jr-57352189/
Github: https://github.com/WiseNN
Website: