├── .gitignore ├── Procfile ├── app.js ├── client ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ ├── profile.png │ └── robots.txt └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── components │ ├── Details.js │ ├── Edit.js │ ├── Home.js │ ├── Navbaar.js │ ├── Register.js │ └── context │ │ └── ContextProvider.js │ ├── index.css │ ├── index.js │ └── logo.svg ├── db └── conn.js ├── models └── userSchema.js ├── package-lock.json ├── package.json └── routes └── router.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | .env -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web:node app.js -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | require("dotenv").config(); 2 | const express = require("express"); 3 | const app = express(); 4 | const mongoose = require("mongoose"); 5 | require("./db/conn"); 6 | const users = require("./models/userSchema"); 7 | const cors = require("cors"); 8 | const router = require("./routes/router"); 9 | 10 | const port = process.env.PORT || 8003; 11 | 12 | app.use(cors()); 13 | app.use(express.json()); 14 | 15 | app.get("/",(req,res)=>{ 16 | res.json("server start") 17 | }) 18 | 19 | app.use(router); 20 | 21 | app.listen(port, () => { 22 | console.log(`server is start port number ${port}`); 23 | }); -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `npm start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `npm test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `npm run build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `npm run eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | 48 | ### Code Splitting 49 | 50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) 51 | 52 | ### Analyzing the Bundle Size 53 | 54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) 55 | 56 | ### Making a Progressive Web App 57 | 58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) 59 | 60 | ### Advanced Configuration 61 | 62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) 63 | 64 | ### Deployment 65 | 66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) 67 | 68 | ### `npm run build` fails to minify 69 | 70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) 71 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@emotion/react": "^11.5.0", 7 | "@emotion/styled": "^11.3.0", 8 | "@mui/icons-material": "^5.0.5", 9 | "@mui/material": "^5.0.6", 10 | "@testing-library/jest-dom": "^5.14.1", 11 | "@testing-library/react": "^11.2.7", 12 | "@testing-library/user-event": "^12.8.3", 13 | "bootstrap": "^5.1.3", 14 | "react": "^17.0.2", 15 | "react-dom": "^17.0.2", 16 | "react-router-dom": "^5.3.0", 17 | "react-scripts": "4.0.3", 18 | "web-vitals": "^1.1.2" 19 | }, 20 | "scripts": { 21 | "start": "react-scripts start", 22 | "build": "react-scripts build", 23 | "test": "react-scripts test", 24 | "eject": "react-scripts eject" 25 | }, 26 | "eslintConfig": { 27 | "extends": [ 28 | "react-app", 29 | "react-app/jest" 30 | ] 31 | }, 32 | "browserslist": { 33 | "production": [ 34 | ">0.2%", 35 | "not dead", 36 | "not op_mini all" 37 | ], 38 | "development": [ 39 | "last 1 chrome version", 40 | "last 1 firefox version", 41 | "last 1 safari version" 42 | ] 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 14 | 18 | 19 | 28 | React App 29 | 30 | 31 | 32 |
33 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/public/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harsh17112000/crud/d9e0b541726f7c9e8c47a89f7313b3b7eb2a3c42/client/public/profile.png -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /client/src/App.css: -------------------------------------------------------------------------------- 1 | .add_btn{ 2 | text-align: right; 3 | } 4 | 5 | .container{ 6 | overflow: auto; 7 | } 8 | 9 | .left_view h3{ 10 | font-size: 21px; 11 | } 12 | 13 | .left_view p{ 14 | font-weight: 600; 15 | } 16 | 17 | .left_view span{ 18 | font-weight: 400; 19 | } 20 | 21 | .right_view p{ 22 | font-weight: 600; 23 | } 24 | 25 | 26 | .right_view span{ 27 | font-weight: 400; 28 | } -------------------------------------------------------------------------------- /client/src/App.js: -------------------------------------------------------------------------------- 1 | import './App.css'; 2 | import "../node_modules/bootstrap/dist/css/bootstrap.min.css" 3 | import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js" 4 | import Navbaar from './components/Navbaar'; 5 | import Home from './components/Home'; 6 | import Register from './components/Register'; 7 | import Edit from './components/Edit'; 8 | import Details from './components/Details'; 9 | import {Switch,Route} from "react-router-dom" 10 | 11 | 12 | 13 | 14 | function App() { 15 | return ( 16 | <> 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | ); 27 | } 28 | 29 | export default App; 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /client/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /client/src/components/Details.js: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react' 2 | import CreateIcon from '@mui/icons-material/Create'; 3 | import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'; 4 | import Card from '@mui/material/Card'; 5 | import CardContent from '@mui/material/CardContent'; 6 | import MailOutlineIcon from '@mui/icons-material/MailOutline'; 7 | import WorkIcon from '@mui/icons-material/Work'; 8 | import PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid'; 9 | import LocationOnIcon from '@mui/icons-material/LocationOn'; 10 | import { NavLink, useParams, useHistory } from 'react-router-dom'; 11 | 12 | 13 | const Details = () => { 14 | 15 | const [getuserdata, setUserdata] = useState([]); 16 | console.log(getuserdata); 17 | 18 | const { id } = useParams(""); 19 | console.log(id); 20 | 21 | const history = useHistory(); 22 | 23 | 24 | const getdata = async () => { 25 | 26 | const res = await fetch(`https://crudappreactjs.herokuapp.com/getuser/${id}`, { 27 | method: "GET", 28 | headers: { 29 | "Content-Type": "application/json" 30 | } 31 | }); 32 | 33 | const data = await res.json(); 34 | console.log(data); 35 | 36 | if (res.status === 422 || !data) { 37 | console.log("error "); 38 | 39 | } else { 40 | setUserdata(data) 41 | console.log("get data"); 42 | } 43 | } 44 | 45 | useEffect(() => { 46 | getdata(); 47 | }, []) 48 | 49 | const deleteuser = async (id) => { 50 | 51 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/deleteuser/${id}`, { 52 | method: "DELETE", 53 | headers: { 54 | "Content-Type": "application/json" 55 | } 56 | }); 57 | 58 | const deletedata = await res2.json(); 59 | console.log(deletedata); 60 | 61 | if (res2.status === 422 || !deletedata) { 62 | console.log("error"); 63 | } else { 64 | console.log("user deleted"); 65 | history.push("/"); 66 | } 67 | 68 | } 69 | 70 | return ( 71 |
72 |

Welcome Harsh Pathak

73 | 74 | 75 | 76 |
77 | 78 | 79 |
80 |
81 |
82 | profile 83 |

Name: {getuserdata.name}

84 |

Age: {getuserdata.age}

85 |

Email: {getuserdata.email}

86 |

Occuption: {getuserdata.work}

87 |
88 |
89 | 90 |

mobile: +91 {getuserdata.mobile}

91 |

location: {getuserdata.add}

92 |

Description: {getuserdata.desc}

93 |
94 |
95 | 96 |
97 |
98 |
99 | ) 100 | } 101 | 102 | export default Details 103 | -------------------------------------------------------------------------------- /client/src/components/Edit.js: -------------------------------------------------------------------------------- 1 | import React, { useContext, useEffect, useState } from 'react' 2 | import { NavLink, useParams,useHistory } from 'react-router-dom' 3 | import { updatedata } from './context/ContextProvider' 4 | 5 | 6 | const Edit = () => { 7 | 8 | // const [getuserdata, setUserdata] = useState([]); 9 | // console.log(getuserdata); 10 | 11 | const {updata, setUPdata} = useContext(updatedata) 12 | 13 | const history = useHistory(""); 14 | 15 | const [inpval, setINP] = useState({ 16 | name: "", 17 | email: "", 18 | age: "", 19 | mobile: "", 20 | work: "", 21 | add: "", 22 | desc: "" 23 | }) 24 | 25 | const setdata = (e) => { 26 | console.log(e.target.value); 27 | const { name, value } = e.target; 28 | setINP((preval) => { 29 | return { 30 | ...preval, 31 | [name]: value 32 | } 33 | }) 34 | } 35 | 36 | 37 | const { id } = useParams(""); 38 | console.log(id); 39 | 40 | 41 | 42 | const getdata = async () => { 43 | 44 | const res = await fetch(`https://crudappreactjs.herokuapp.com/getuser/${id}`, { 45 | method: "GET", 46 | headers: { 47 | "Content-Type": "application/json" 48 | } 49 | }); 50 | 51 | const data = await res.json(); 52 | console.log(data); 53 | 54 | if (res.status === 422 || !data) { 55 | console.log("error "); 56 | 57 | } else { 58 | setINP(data) 59 | console.log("get data"); 60 | 61 | } 62 | } 63 | 64 | useEffect(() => { 65 | getdata(); 66 | }, []); 67 | 68 | 69 | const updateuser = async(e)=>{ 70 | e.preventDefault(); 71 | 72 | const {name,email,work,add,mobile,desc,age} = inpval; 73 | 74 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/updateuser/${id}`,{ 75 | method: "PATCH", 76 | headers: { 77 | "Content-Type": "application/json" 78 | }, 79 | body:JSON.stringify({ 80 | name,email,work,add,mobile,desc,age 81 | }) 82 | }); 83 | 84 | const data2 = await res2.json(); 85 | console.log(data2); 86 | 87 | if(res2.status === 422 || !data2){ 88 | alert("fill the data"); 89 | }else{ 90 | history.push("/") 91 | setUPdata(data2); 92 | } 93 | 94 | } 95 | 96 | return ( 97 |
98 | home2 99 |
100 |
101 |
102 | 103 | 104 |
105 |
106 | 107 | 108 |
109 |
110 | 111 | 112 |
113 |
114 | 115 | 116 |
117 |
118 | 119 | 120 |
121 |
122 | 123 | 124 |
125 |
126 | 127 | 128 |
129 | 130 | 131 |
132 |
133 |
134 | ) 135 | } 136 | 137 | export default Edit; 138 | 139 | 140 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /client/src/components/Home.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect, useContext } from 'react' 2 | import RemoveRedEyeIcon from '@mui/icons-material/RemoveRedEye'; 3 | import CreateIcon from '@mui/icons-material/Create'; 4 | import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'; 5 | import { NavLink } from 'react-router-dom'; 6 | import { adddata, deldata } from './context/ContextProvider'; 7 | import { updatedata } from './context/ContextProvider' 8 | 9 | 10 | 11 | 12 | const Home = () => { 13 | 14 | const [getuserdata, setUserdata] = useState([]); 15 | console.log(getuserdata); 16 | 17 | const { udata, setUdata } = useContext(adddata); 18 | 19 | const {updata, setUPdata} = useContext(updatedata); 20 | 21 | const {dltdata, setDLTdata} = useContext(deldata); 22 | 23 | const getdata = async () => { 24 | 25 | const res = await fetch("https://crudappreactjs.herokuapp.com/getdata", { 26 | method: "GET", 27 | headers: { 28 | "Content-Type": "application/json" 29 | } 30 | }); 31 | 32 | const data = await res.json(); 33 | console.log(data); 34 | 35 | if (res.status === 422 || !data) { 36 | console.log("error "); 37 | 38 | } else { 39 | setUserdata(data) 40 | console.log("get data"); 41 | 42 | } 43 | } 44 | 45 | useEffect(() => { 46 | getdata(); 47 | }, []) 48 | 49 | const deleteuser = async (id) => { 50 | 51 | const res2 = await fetch(`https://crudappreactjs.herokuapp.com/deleteuser/${id}`, { 52 | method: "DELETE", 53 | headers: { 54 | "Content-Type": "application/json" 55 | } 56 | }); 57 | 58 | const deletedata = await res2.json(); 59 | console.log(deletedata); 60 | 61 | if (res2.status === 422 || !deletedata) { 62 | console.log("error"); 63 | } else { 64 | console.log("user deleted"); 65 | setDLTdata(deletedata) 66 | getdata(); 67 | } 68 | 69 | } 70 | 71 | 72 | return ( 73 | 74 | <> 75 | { 76 | udata ? 77 | <> 78 | 82 | : "" 83 | } 84 | { 85 | updata ? 86 | <> 87 | 91 | : "" 92 | } 93 | 94 | { 95 | dltdata ? 96 | <> 97 | 101 | : "" 102 | } 103 | 104 | 105 |
106 |
107 |
108 | Add data 109 |
110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | { 125 | getuserdata.map((element, id) => { 126 | return ( 127 | <> 128 | 129 | 130 | 131 | 132 | 133 | 134 | 139 | 140 | 141 | ) 142 | }) 143 | } 144 | 145 |
idUsernameemailJobNumber
{id + 1}{element.name}{element.email}{element.work}{element.mobile} 135 | 136 | 137 | 138 |
146 | 147 | 148 |
149 |
150 | 151 | ) 152 | } 153 | 154 | export default Home 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /client/src/components/Navbaar.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { NavLink } from 'react-router-dom' 3 | 4 | 5 | const Navbaar = () => { 6 | return ( 7 |
8 | 28 |
29 | ) 30 | } 31 | 32 | export default Navbaar 33 | -------------------------------------------------------------------------------- /client/src/components/Register.js: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from 'react' 2 | import { NavLink, useHistory } from 'react-router-dom' 3 | import { adddata } from './context/ContextProvider'; 4 | 5 | const Register = () => { 6 | 7 | const { udata, setUdata } = useContext(adddata); 8 | 9 | const history = useHistory(); 10 | 11 | const [inpval, setINP] = useState({ 12 | name: "", 13 | email: "", 14 | age: "", 15 | mobile: "", 16 | work: "", 17 | add: "", 18 | desc: "" 19 | }) 20 | 21 | const setdata = (e) => { 22 | console.log(e.target.value); 23 | const { name, value } = e.target; 24 | setINP((preval) => { 25 | return { 26 | ...preval, 27 | [name]: value 28 | } 29 | }) 30 | } 31 | 32 | 33 | const addinpdata = async (e) => { 34 | e.preventDefault(); 35 | 36 | const { name, email, work, add, mobile, desc, age } = inpval; 37 | 38 | const res = await fetch("https://crudappreactjs.herokuapp.com/register", { 39 | method: "POST", 40 | headers: { 41 | "Content-Type": "application/json" 42 | }, 43 | body: JSON.stringify({ 44 | name, email, work, add, mobile, desc, age 45 | }) 46 | }); 47 | 48 | const data = await res.json(); 49 | console.log(data); 50 | 51 | if (res.status === 422 || !data) { 52 | console.log("error "); 53 | alert("error"); 54 | 55 | } else { 56 | history.push("/") 57 | setUdata(data) 58 | console.log("data added"); 59 | 60 | } 61 | } 62 | 63 | return ( 64 |
65 | home 66 |
67 |
68 |
69 | 70 | 71 |
72 |
73 | 74 | 75 |
76 |
77 | 78 | 79 |
80 |
81 | 82 | 83 |
84 |
85 | 86 | 87 |
88 |
89 | 90 | 91 |
92 |
93 | 94 | 95 |
96 | 97 | 98 |
99 |
100 |
101 | ) 102 | } 103 | export default Register; 104 | -------------------------------------------------------------------------------- /client/src/components/context/ContextProvider.js: -------------------------------------------------------------------------------- 1 | import React, { createContext, useState } from 'react' 2 | 3 | 4 | export const adddata = createContext(""); 5 | export const updatedata = createContext(""); 6 | export const deldata = createContext(""); 7 | 8 | const ContextProvider = ({ children }) => { 9 | 10 | const [udata, setUdata] = useState(""); 11 | const [updata, setUPdata] = useState(""); 12 | const [dltdata, setDLTdata] = useState(""); 13 | 14 | 15 | return ( 16 | 17 | 18 | 19 | {children} 20 | 21 | 22 | 23 | 24 | 25 | ) 26 | } 27 | 28 | export default ContextProvider; 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | import React, { StrictMode } from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import { BrowserRouter } from "react-router-dom" 6 | import ContextProvider from "./components/context/ContextProvider"; 7 | 8 | ReactDOM.render( 9 | 10 | 11 | 12 | 13 | 14 | , 15 | document.getElementById('root') 16 | ); 17 | 18 | -------------------------------------------------------------------------------- /client/src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /db/conn.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | const DB = process.env.DATABASE 4 | 5 | 6 | mongoose.connect(DB,{ 7 | useNewUrlParser:true, 8 | useUnifiedTopology:true 9 | }).then(()=> console.log("connection start")).catch((error)=> console.log(error.message)); -------------------------------------------------------------------------------- /models/userSchema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | const userSchema = new mongoose.Schema({ 4 | name: { 5 | type: String, 6 | required: true 7 | }, 8 | email: { 9 | type: String, 10 | required: true, 11 | unique: true 12 | }, 13 | age: { 14 | type: String, 15 | required: true 16 | }, 17 | mobile: { 18 | type: Number, 19 | required: true 20 | }, 21 | work: { 22 | type: String, 23 | required: true 24 | }, 25 | add: { 26 | type: String, 27 | required: true 28 | }, 29 | desc: { 30 | type: String, 31 | required: true 32 | } 33 | }); 34 | 35 | const users = new mongoose.model("users",userSchema); 36 | 37 | 38 | module.exports = users; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/node": { 8 | "version": "16.11.6", 9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", 10 | "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==" 11 | }, 12 | "@types/webidl-conversions": { 13 | "version": "6.1.1", 14 | "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", 15 | "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" 16 | }, 17 | "@types/whatwg-url": { 18 | "version": "8.2.1", 19 | "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", 20 | "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", 21 | "requires": { 22 | "@types/node": "*", 23 | "@types/webidl-conversions": "*" 24 | } 25 | }, 26 | "accepts": { 27 | "version": "1.3.7", 28 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 29 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 30 | "requires": { 31 | "mime-types": "~2.1.24", 32 | "negotiator": "0.6.2" 33 | } 34 | }, 35 | "array-flatten": { 36 | "version": "1.1.1", 37 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 38 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 39 | }, 40 | "base64-js": { 41 | "version": "1.5.1", 42 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 43 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 44 | }, 45 | "body-parser": { 46 | "version": "1.19.0", 47 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 48 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 49 | "requires": { 50 | "bytes": "3.1.0", 51 | "content-type": "~1.0.4", 52 | "debug": "2.6.9", 53 | "depd": "~1.1.2", 54 | "http-errors": "1.7.2", 55 | "iconv-lite": "0.4.24", 56 | "on-finished": "~2.3.0", 57 | "qs": "6.7.0", 58 | "raw-body": "2.4.0", 59 | "type-is": "~1.6.17" 60 | } 61 | }, 62 | "bson": { 63 | "version": "4.5.3", 64 | "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.3.tgz", 65 | "integrity": "sha512-qVX7LX79Mtj7B3NPLzCfBiCP6RAsjiV8N63DjlaVVpZW+PFoDTxQ4SeDbSpcqgE6mXksM5CAwZnXxxxn/XwC0g==", 66 | "requires": { 67 | "buffer": "^5.6.0" 68 | } 69 | }, 70 | "buffer": { 71 | "version": "5.7.1", 72 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 73 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 74 | "requires": { 75 | "base64-js": "^1.3.1", 76 | "ieee754": "^1.1.13" 77 | } 78 | }, 79 | "bytes": { 80 | "version": "3.1.0", 81 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 82 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 83 | }, 84 | "content-disposition": { 85 | "version": "0.5.3", 86 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 87 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 88 | "requires": { 89 | "safe-buffer": "5.1.2" 90 | } 91 | }, 92 | "content-type": { 93 | "version": "1.0.4", 94 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 95 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 96 | }, 97 | "cookie": { 98 | "version": "0.4.0", 99 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 100 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 101 | }, 102 | "cookie-signature": { 103 | "version": "1.0.6", 104 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 105 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 106 | }, 107 | "cors": { 108 | "version": "2.8.5", 109 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 110 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 111 | "requires": { 112 | "object-assign": "^4", 113 | "vary": "^1" 114 | } 115 | }, 116 | "debug": { 117 | "version": "2.6.9", 118 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 119 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 120 | "requires": { 121 | "ms": "2.0.0" 122 | } 123 | }, 124 | "denque": { 125 | "version": "2.0.1", 126 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", 127 | "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" 128 | }, 129 | "depd": { 130 | "version": "1.1.2", 131 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 132 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 133 | }, 134 | "destroy": { 135 | "version": "1.0.4", 136 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 137 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 138 | }, 139 | "dotenv": { 140 | "version": "10.0.0", 141 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", 142 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" 143 | }, 144 | "ee-first": { 145 | "version": "1.1.1", 146 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 147 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 148 | }, 149 | "encodeurl": { 150 | "version": "1.0.2", 151 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 152 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 153 | }, 154 | "escape-html": { 155 | "version": "1.0.3", 156 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 157 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 158 | }, 159 | "etag": { 160 | "version": "1.8.1", 161 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 162 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 163 | }, 164 | "express": { 165 | "version": "4.17.1", 166 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 167 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 168 | "requires": { 169 | "accepts": "~1.3.7", 170 | "array-flatten": "1.1.1", 171 | "body-parser": "1.19.0", 172 | "content-disposition": "0.5.3", 173 | "content-type": "~1.0.4", 174 | "cookie": "0.4.0", 175 | "cookie-signature": "1.0.6", 176 | "debug": "2.6.9", 177 | "depd": "~1.1.2", 178 | "encodeurl": "~1.0.2", 179 | "escape-html": "~1.0.3", 180 | "etag": "~1.8.1", 181 | "finalhandler": "~1.1.2", 182 | "fresh": "0.5.2", 183 | "merge-descriptors": "1.0.1", 184 | "methods": "~1.1.2", 185 | "on-finished": "~2.3.0", 186 | "parseurl": "~1.3.3", 187 | "path-to-regexp": "0.1.7", 188 | "proxy-addr": "~2.0.5", 189 | "qs": "6.7.0", 190 | "range-parser": "~1.2.1", 191 | "safe-buffer": "5.1.2", 192 | "send": "0.17.1", 193 | "serve-static": "1.14.1", 194 | "setprototypeof": "1.1.1", 195 | "statuses": "~1.5.0", 196 | "type-is": "~1.6.18", 197 | "utils-merge": "1.0.1", 198 | "vary": "~1.1.2" 199 | } 200 | }, 201 | "finalhandler": { 202 | "version": "1.1.2", 203 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 204 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 205 | "requires": { 206 | "debug": "2.6.9", 207 | "encodeurl": "~1.0.2", 208 | "escape-html": "~1.0.3", 209 | "on-finished": "~2.3.0", 210 | "parseurl": "~1.3.3", 211 | "statuses": "~1.5.0", 212 | "unpipe": "~1.0.0" 213 | } 214 | }, 215 | "forwarded": { 216 | "version": "0.2.0", 217 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 218 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 219 | }, 220 | "fresh": { 221 | "version": "0.5.2", 222 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 223 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 224 | }, 225 | "http-errors": { 226 | "version": "1.7.2", 227 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 228 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 229 | "requires": { 230 | "depd": "~1.1.2", 231 | "inherits": "2.0.3", 232 | "setprototypeof": "1.1.1", 233 | "statuses": ">= 1.5.0 < 2", 234 | "toidentifier": "1.0.0" 235 | } 236 | }, 237 | "iconv-lite": { 238 | "version": "0.4.24", 239 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 240 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 241 | "requires": { 242 | "safer-buffer": ">= 2.1.2 < 3" 243 | } 244 | }, 245 | "ieee754": { 246 | "version": "1.2.1", 247 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 248 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 249 | }, 250 | "inherits": { 251 | "version": "2.0.3", 252 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 253 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 254 | }, 255 | "ipaddr.js": { 256 | "version": "1.9.1", 257 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 258 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 259 | }, 260 | "kareem": { 261 | "version": "2.3.2", 262 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 263 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 264 | }, 265 | "media-typer": { 266 | "version": "0.3.0", 267 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 268 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 269 | }, 270 | "memory-pager": { 271 | "version": "1.5.0", 272 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 273 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 274 | "optional": true 275 | }, 276 | "merge-descriptors": { 277 | "version": "1.0.1", 278 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 279 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 280 | }, 281 | "methods": { 282 | "version": "1.1.2", 283 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 284 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 285 | }, 286 | "mime": { 287 | "version": "1.6.0", 288 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 289 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 290 | }, 291 | "mime-db": { 292 | "version": "1.50.0", 293 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", 294 | "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" 295 | }, 296 | "mime-types": { 297 | "version": "2.1.33", 298 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", 299 | "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", 300 | "requires": { 301 | "mime-db": "1.50.0" 302 | } 303 | }, 304 | "mongodb": { 305 | "version": "4.1.3", 306 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.3.tgz", 307 | "integrity": "sha512-lHvTqODBiSpuqjpCj48DOyYWS6Iq6ElJNUiH9HWdQtONyOfjgsKzJULipWduMGsSzaNO4nFi/kmlMFCLvjox/Q==", 308 | "requires": { 309 | "bson": "^4.5.2", 310 | "denque": "^2.0.1", 311 | "mongodb-connection-string-url": "^2.0.0", 312 | "saslprep": "^1.0.3" 313 | } 314 | }, 315 | "mongodb-connection-string-url": { 316 | "version": "2.1.0", 317 | "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz", 318 | "integrity": "sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==", 319 | "requires": { 320 | "@types/whatwg-url": "^8.2.1", 321 | "whatwg-url": "^9.1.0" 322 | } 323 | }, 324 | "mongoose": { 325 | "version": "6.0.12", 326 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.12.tgz", 327 | "integrity": "sha512-BvsZk7zEEhb1AgQFLtxN9C+7qgy5edRuA3ZDDwHU+kHG/HM44vI6FdKV5m6HVdAUeCHHQTiVv+YQh8BRsToSHw==", 328 | "requires": { 329 | "bson": "^4.2.2", 330 | "kareem": "2.3.2", 331 | "mongodb": "4.1.3", 332 | "mpath": "0.8.4", 333 | "mquery": "4.0.0", 334 | "ms": "2.1.2", 335 | "regexp-clone": "1.0.0", 336 | "sift": "13.5.2", 337 | "sliced": "1.0.1" 338 | }, 339 | "dependencies": { 340 | "ms": { 341 | "version": "2.1.2", 342 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 343 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 344 | } 345 | } 346 | }, 347 | "mpath": { 348 | "version": "0.8.4", 349 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", 350 | "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" 351 | }, 352 | "mquery": { 353 | "version": "4.0.0", 354 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", 355 | "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", 356 | "requires": { 357 | "debug": "4.x", 358 | "regexp-clone": "^1.0.0", 359 | "sliced": "1.0.1" 360 | }, 361 | "dependencies": { 362 | "debug": { 363 | "version": "4.3.2", 364 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 365 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 366 | "requires": { 367 | "ms": "2.1.2" 368 | } 369 | }, 370 | "ms": { 371 | "version": "2.1.2", 372 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 373 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 374 | } 375 | } 376 | }, 377 | "ms": { 378 | "version": "2.0.0", 379 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 380 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 381 | }, 382 | "negotiator": { 383 | "version": "0.6.2", 384 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 385 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 386 | }, 387 | "object-assign": { 388 | "version": "4.1.1", 389 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 390 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 391 | }, 392 | "on-finished": { 393 | "version": "2.3.0", 394 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 395 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 396 | "requires": { 397 | "ee-first": "1.1.1" 398 | } 399 | }, 400 | "parseurl": { 401 | "version": "1.3.3", 402 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 403 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 404 | }, 405 | "path-to-regexp": { 406 | "version": "0.1.7", 407 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 408 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 409 | }, 410 | "proxy-addr": { 411 | "version": "2.0.7", 412 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 413 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 414 | "requires": { 415 | "forwarded": "0.2.0", 416 | "ipaddr.js": "1.9.1" 417 | } 418 | }, 419 | "punycode": { 420 | "version": "2.1.1", 421 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 422 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 423 | }, 424 | "qs": { 425 | "version": "6.7.0", 426 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 427 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 428 | }, 429 | "range-parser": { 430 | "version": "1.2.1", 431 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 432 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 433 | }, 434 | "raw-body": { 435 | "version": "2.4.0", 436 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 437 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 438 | "requires": { 439 | "bytes": "3.1.0", 440 | "http-errors": "1.7.2", 441 | "iconv-lite": "0.4.24", 442 | "unpipe": "1.0.0" 443 | } 444 | }, 445 | "regexp-clone": { 446 | "version": "1.0.0", 447 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 448 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 449 | }, 450 | "safe-buffer": { 451 | "version": "5.1.2", 452 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 453 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 454 | }, 455 | "safer-buffer": { 456 | "version": "2.1.2", 457 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 458 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 459 | }, 460 | "saslprep": { 461 | "version": "1.0.3", 462 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 463 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 464 | "optional": true, 465 | "requires": { 466 | "sparse-bitfield": "^3.0.3" 467 | } 468 | }, 469 | "send": { 470 | "version": "0.17.1", 471 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 472 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 473 | "requires": { 474 | "debug": "2.6.9", 475 | "depd": "~1.1.2", 476 | "destroy": "~1.0.4", 477 | "encodeurl": "~1.0.2", 478 | "escape-html": "~1.0.3", 479 | "etag": "~1.8.1", 480 | "fresh": "0.5.2", 481 | "http-errors": "~1.7.2", 482 | "mime": "1.6.0", 483 | "ms": "2.1.1", 484 | "on-finished": "~2.3.0", 485 | "range-parser": "~1.2.1", 486 | "statuses": "~1.5.0" 487 | }, 488 | "dependencies": { 489 | "ms": { 490 | "version": "2.1.1", 491 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 492 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 493 | } 494 | } 495 | }, 496 | "serve-static": { 497 | "version": "1.14.1", 498 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 499 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 500 | "requires": { 501 | "encodeurl": "~1.0.2", 502 | "escape-html": "~1.0.3", 503 | "parseurl": "~1.3.3", 504 | "send": "0.17.1" 505 | } 506 | }, 507 | "setprototypeof": { 508 | "version": "1.1.1", 509 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 510 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 511 | }, 512 | "sift": { 513 | "version": "13.5.2", 514 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 515 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 516 | }, 517 | "sliced": { 518 | "version": "1.0.1", 519 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 520 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 521 | }, 522 | "sparse-bitfield": { 523 | "version": "3.0.3", 524 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 525 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 526 | "optional": true, 527 | "requires": { 528 | "memory-pager": "^1.0.2" 529 | } 530 | }, 531 | "statuses": { 532 | "version": "1.5.0", 533 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 534 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 535 | }, 536 | "toidentifier": { 537 | "version": "1.0.0", 538 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 539 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 540 | }, 541 | "tr46": { 542 | "version": "2.1.0", 543 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", 544 | "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", 545 | "requires": { 546 | "punycode": "^2.1.1" 547 | } 548 | }, 549 | "type-is": { 550 | "version": "1.6.18", 551 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 552 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 553 | "requires": { 554 | "media-typer": "0.3.0", 555 | "mime-types": "~2.1.24" 556 | } 557 | }, 558 | "unpipe": { 559 | "version": "1.0.0", 560 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 561 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 562 | }, 563 | "utils-merge": { 564 | "version": "1.0.1", 565 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 566 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 567 | }, 568 | "vary": { 569 | "version": "1.1.2", 570 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 571 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 572 | }, 573 | "webidl-conversions": { 574 | "version": "6.1.0", 575 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", 576 | "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" 577 | }, 578 | "whatwg-url": { 579 | "version": "9.1.0", 580 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", 581 | "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", 582 | "requires": { 583 | "tr46": "^2.1.0", 584 | "webidl-conversions": "^6.1.0" 585 | } 586 | } 587 | } 588 | } 589 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start":"node app.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "cors": "^2.8.5", 15 | "dotenv": "^10.0.0", 16 | "express": "^4.17.1", 17 | "mongoose": "^6.0.12" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /routes/router.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const router = express.Router(); 3 | const users = require("../models/userSchema"); 4 | 5 | 6 | 7 | // router.get("/",(req,res)=>{ 8 | // console.log("connect"); 9 | // }); 10 | 11 | // register user 12 | 13 | router.post("/register",async(req,res)=>{ 14 | // console.log(req.body); 15 | const {name,email,age,mobile,work,add,desc} = req.body; 16 | 17 | if(!name || !email || !age || !mobile || !work || !add || !desc){ 18 | res.status(422).json("plz fill the data"); 19 | } 20 | 21 | try { 22 | 23 | const preuser = await users.findOne({email:email}); 24 | console.log(preuser); 25 | 26 | if(preuser){ 27 | res.status(422).json("this is user is already present"); 28 | }else{ 29 | const adduser = new users({ 30 | name,email,age,mobile,work,add,desc 31 | }); 32 | 33 | await adduser.save(); 34 | res.status(201).json(adduser); 35 | console.log(adduser); 36 | } 37 | 38 | } catch (error) { 39 | res.status(422).json(error); 40 | } 41 | }) 42 | 43 | 44 | // get userdata 45 | 46 | router.get("/getdata",async(req,res)=>{ 47 | try { 48 | const userdata = await users.find(); 49 | res.status(201).json(userdata) 50 | console.log(userdata); 51 | } catch (error) { 52 | res.status(422).json(error); 53 | } 54 | }) 55 | 56 | // get individual user 57 | 58 | router.get("/getuser/:id",async(req,res)=>{ 59 | try { 60 | console.log(req.params); 61 | const {id} = req.params; 62 | 63 | const userindividual = await users.findById({_id:id}); 64 | console.log(userindividual); 65 | res.status(201).json(userindividual) 66 | 67 | } catch (error) { 68 | res.status(422).json(error); 69 | } 70 | }) 71 | 72 | 73 | // update user data 74 | 75 | router.patch("/updateuser/:id",async(req,res)=>{ 76 | try { 77 | const {id} = req.params; 78 | 79 | const updateduser = await users.findByIdAndUpdate(id,req.body,{ 80 | new:true 81 | }); 82 | 83 | console.log(updateduser); 84 | res.status(201).json(updateduser); 85 | 86 | } catch (error) { 87 | res.status(422).json(error); 88 | } 89 | }) 90 | 91 | 92 | // delete user 93 | router.delete("/deleteuser/:id",async(req,res)=>{ 94 | try { 95 | const {id} = req.params; 96 | 97 | const deletuser = await users.findByIdAndDelete({_id:id}) 98 | console.log(deletuser); 99 | res.status(201).json(deletuser); 100 | 101 | } catch (error) { 102 | res.status(422).json(error); 103 | } 104 | }) 105 | 106 | 107 | 108 | 109 | module.exports = router; 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | --------------------------------------------------------------------------------