From 896fadb2ded18156ea3273563e47054f5f1ba1d5 Mon Sep 17 00:00:00 2001 From: Pradip Prajapati Date: Sat, 2 Apr 2022 10:35:14 +0530 Subject: [PATCH 1/3] Initial setup User --- .gitignore | 3 +++ package.json | 27 +++++++++++++++++++ server.js | 10 +++++++ src/model/answerModel.js | 0 src/model/questionModel.js | 0 src/model/userModel.js | 49 ++++++++++++++++++++++++++++++++++ src/routes/userRoute.js | 7 +++++ src/validator/userValidator.js | 8 ++++++ 8 files changed, 104 insertions(+) create mode 100644 .gitignore create mode 100644 package.json create mode 100644 server.js create mode 100644 src/model/answerModel.js create mode 100644 src/model/questionModel.js create mode 100644 src/model/userModel.js create mode 100644 src/routes/userRoute.js create mode 100644 src/validator/userValidator.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b5cb019 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +Metastack.env +node_modules/ +package-lock.json \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..f95ce6c --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "metastack", + "version": "1.0.0", + "description": "MetaStack", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js", + "dev": "env-cmd -f Metastack.env nodemon server.js" + }, + "keywords": [ + "NodeJs", + "and", + "MongoDB" + ], + "author": "pradip", + "license": "ISC", + "dependencies": { + "env-cmd": "^10.1.0", + "express": "^4.17.3", + "joi": "^17.6.0", + "mongoose": "^6.2.9" + }, + "devDependencies": { + "nodemon": "^2.0.15" + } +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..d3e05d8 --- /dev/null +++ b/server.js @@ -0,0 +1,10 @@ +const express = require("express"); +const userRouter = require("./src/routes/userRoute"); + +const port = process.env.PORT || 4000; +const app = express(); +app.use("user", userRouter); + +app.listen(port, () => { + console.log(`Server is running ${port}`); +}); diff --git a/src/model/answerModel.js b/src/model/answerModel.js new file mode 100644 index 0000000..e69de29 diff --git a/src/model/questionModel.js b/src/model/questionModel.js new file mode 100644 index 0000000..e69de29 diff --git a/src/model/userModel.js b/src/model/userModel.js new file mode 100644 index 0000000..fa0f72f --- /dev/null +++ b/src/model/userModel.js @@ -0,0 +1,49 @@ +const mongoose = require("mongoose"); +import mongoose from "mongoose"; +import bcrypt from "bcryptjs"; + +const UserSchema = mongoose.Schema( + { + name: { + type: String, + required: true, + trim: true, + minlength: 3, + }, + email: { + type: String, + required: true, + unique: true, + trim: true, + lowercase: true, + }, + password: { + type: String, + required: true, + minlength: 8, + trim: true, + }, + publicAddress: { + type: String, + trim: true, + }, + totalRewards: { + type: Number, + }, + }, + { + timestamps: true, + } +); +// hashing password +UserSchema.pre("save", async function (next) { + const user = this; + + user.password = await bcrypt.hash(user.password, 8); + + next(); +}); + +// admin create + +export const User = mongoose.model("User", UserSchema); diff --git a/src/routes/userRoute.js b/src/routes/userRoute.js new file mode 100644 index 0000000..cabb7a6 --- /dev/null +++ b/src/routes/userRoute.js @@ -0,0 +1,7 @@ +const express = require("express"); + +const router = express.Router(); + +router.post("/register", (req, res) => { + res.send("hello"); +}); diff --git a/src/validator/userValidator.js b/src/validator/userValidator.js new file mode 100644 index 0000000..93abbc2 --- /dev/null +++ b/src/validator/userValidator.js @@ -0,0 +1,8 @@ +const Joi = require("joi"); +export const UserSchema = Joi.object({ + name: Joi.string().min(3).max(30), + password: Joi.string().min(8).required(), + email: Joi.string().email().required(), + publicAddress: Joi.string(), + totalRewards: Joi.number(), +}); From 92306be0cd1d74e19087e9811ec2b884739fa5a1 Mon Sep 17 00:00:00 2001 From: aayush Date: Sat, 2 Apr 2022 10:56:29 +0530 Subject: [PATCH 2/3] answerModel added --- src/model/answerModel.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/model/answerModel.js b/src/model/answerModel.js index e69de29..ce1cd34 100644 --- a/src/model/answerModel.js +++ b/src/model/answerModel.js @@ -0,0 +1,28 @@ +const mongoose = require('mongoose'); +//schema for Answer Model +const answerSchema = new mongoose.Schema({ + userId: { + type : mongoose.Schema.ObjectId, + ref : "User", + required : true + }, + questionId :{ + type : mongoose.Schema.ObjectId, + ref : "Question", + required : true + }, + description :{ + type:String, + required : true + }, + isAccepted :{ + type : Boolean, + required : true, + default: false + } + + +},{ + timestamps : true +}) +module.exports = mongoose.model('Answer', answerSchema); \ No newline at end of file From 3b313cae0e6675ff21c2c9eb62ff833c452ad0a5 Mon Sep 17 00:00:00 2001 From: vivekchavda1002 Date: Sat, 2 Apr 2022 10:56:50 +0530 Subject: [PATCH 3/3] questionModel Added --- bug-busters | 1 + src/model/questionModel.js | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 160000 bug-busters diff --git a/bug-busters b/bug-busters new file mode 160000 index 0000000..a791d61 --- /dev/null +++ b/bug-busters @@ -0,0 +1 @@ +Subproject commit a791d6199a714cbcabadbb2f46e42ff1b3280943 diff --git a/src/model/questionModel.js b/src/model/questionModel.js index e69de29..95e823a 100644 --- a/src/model/questionModel.js +++ b/src/model/questionModel.js @@ -0,0 +1,26 @@ +const mongoose = require('mongoose') + //Schema For Question Model. +const productSchema = new mongoose.Schema({ + name: { + type: String, + require: true, + trim: true, + index: { + unique: true + } + }, + qty: { + type: Number, + require: true, + trim: true + }, + available: { + type: Boolean, + require: true, + trim: true + } + }, { + timestamps: true + }) + //Exports Question Model +module.exports = mongoose.model('product', productSchema) \ No newline at end of file