This project was generated with Angular CLI version 8.1.2. This is a chat application in which user can add users to their contact list and have chat with them without lossing any data.
OTP varification, Message saved to batabase, read receipt, automatic room creation from contacts list.
Run following command in your workspace:
git clone https://github.com/ChauhanAbhinav/chat.git
// client 'http:https://localhost:4200/
cd chat npm install npm start
//server http:https://localhost:3000/
cd server npm install npm start
Navigate to http:https://localhost:4200/
.
Mongodb:- running on remote by default for switching to local change url in server>db>dbUtils.js
remoteUrl : mongodb+srv:https://cluster0-winsn.mongodb.net/test
mongo shell: mongo "mongodb+srv:https://cluster0-winsn.mongodb.net/test" --username abhinav
mongo compass : mongodb+srv:https://abhinav:@cluster0-winsn.mongodb.net/test
DB Name: chat
collections:
- users :- collection that store primary information of user i.e mobile, country code and and name
eg-
{
"_id":"5d710302e85bdf72bf3ac110",
"mobile":1111111111,
"countryCode":"+91",
"name":"Name01"
} - contacts:- added contact will be store in this collection, a room will be assigned to both users. eg- { "_id":"5d7131acc643910edf2308ee", "mobile":1111111111, "contact":2222222222, "contactName":"Name02", "room":"22222222221111111111" }
- chatMessage: message will be strored in this collection. query can be made by distinct room name and all the messages are stored in a array as given below. { "_id":"5d7215c096fab91104edeff4", "room":"44444444443333333333", "messages":[ { "from":3333333333, "to":"4444444444", "messageId":9, "message":"hi", "read":true }, { "from":4444444444, "to":"3333333333", "messageId":1, "message":"ki", "read":true } ] }
- Read reciept and routing guards are left.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.