├── .gitignore ├── .DS_Store ├── .swm ├── swimm.json └── chat-app-onboarding.eovyd.sw.md ├── package.json ├── server.js └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TiffinTech/chat-app/HEAD/.DS_Store -------------------------------------------------------------------------------- /.swm/swimm.json: -------------------------------------------------------------------------------- 1 | { 2 | "repo_id": "Z2l0aHViJTNBJTNBY2hhdC1hcHAlM0ElM0FUaWZmaW5UZWNo", 3 | "configuration": { 4 | "swmd": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.swm/chat-app-onboarding.eovyd.sw.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: eovyd 3 | name: Chat App Onboarding 4 | file_version: 1.1.0 5 | app_version: 1.0.6 6 | --- 7 | 8 | Onboarding to the React chat app 9 | 10 |
11 | 12 | This file was generated by Swimm. [Click here to view it in the app](https://app.swimm.io/repos/Z2l0aHViJTNBJTNBY2hhdC1hcHAlM0ElM0FUaWZmaW5UZWNo/docs/eovyd). 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chat-app", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.20.0", 13 | "express": "^4.18.1", 14 | "http": "^0.0.1-security", 15 | "mongoose": "^6.5.3", 16 | "socket.io": "^4.5.1" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const bodyParser = require('body-parser') 3 | const app = express(); 4 | const http = require('http').Server(app); 5 | const io = require('socket.io')(http); 6 | const mongoose = require('mongoose'); 7 | 8 | app.use(express.static(__dirname)); 9 | app.use(bodyParser.json()); 10 | app.use(bodyParser.urlencoded({extended: false})) 11 | 12 | const Message = mongoose.model('Message',{ 13 | name : String, 14 | message : String 15 | }) 16 | 17 | var dbUrl = 'mongodb+srv://user:password@cluster0.rlbj49y.mongodb.net/?retryWrites=true&w=majority' 18 | 19 | 20 | app.get('/messages', (req, res) => { 21 | Message.find({},(err, messages)=> { 22 | res.send(messages); 23 | }) 24 | }) 25 | 26 | 27 | app.get('/messages/:user', (req, res) => { 28 | var user = req.params.user 29 | Message.find({name: user},(err, messages)=> { 30 | res.send(messages); 31 | }) 32 | }) 33 | 34 | 35 | app.post('/messages', async (req, res) => { 36 | try{ 37 | let message = new Message(req.body); 38 | 39 | let savedMessage = await message.save() 40 | console.log('saved'); 41 | 42 | // place any words you dont want to be used 43 | let censored = await Message.findOne({message:'badword'}); 44 | if(censored) 45 | await Message.remove({_id: censored.id}) 46 | else 47 | io.emit('message', req.body); 48 | res.sendStatus(200); 49 | } 50 | catch (error){ 51 | res.sendStatus(500); 52 | return console.log('error',error); 53 | } 54 | finally{ 55 | console.log('Message Posted') 56 | } 57 | 58 | }) 59 | 60 | 61 | 62 | io.on('connection', () =>{ 63 | console.log('a user is connected') 64 | }) 65 | 66 | mongoose.connect(dbUrl,(err) => { 67 | console.log('mongodb connected',err); 68 | }) 69 | 70 | let server = http.listen(3000, () => { 71 | console.log('the server is running on port', server.address().port); 72 | }); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | My First Node App 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |

Send A Chat Message

16 |
17 | 18 |
19 | 20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 | 53 | 54 | --------------------------------------------------------------------------------