Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
26 changes: 26 additions & 0 deletions Day-1/basefile.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<title>Day 1 - Swiggy</title>
</head>

<body>
<script src="display.js"></script>
<script>
function getAlert(){
alert("Inline Script Alert")
}
</script>

<div id='innerhtml'>This is how inner html works</div>
<button onclick="updateValueUsingInnerHtml()">Button</button>

<button onclick="getAlert()">Alert Button</button>

<button onclick="updateValueByWrite()">Rewrite</button>

<button onclick="printTheDcoument()">Print</button>

</body>

</html>
12 changes: 12 additions & 0 deletions Day-1/display.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
function updateValueUsingInnerHtml(){
document.getElementById("innerhtml").innerHTML="Use of innerHTML";
}

function updateValueByWrite(){
console.log("Rewriting everything");
document.write("It rewrites the whole document");
}

function printTheDcoument(){
print();
}
15 changes: 15 additions & 0 deletions Day-2/day2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<html>
<head>
<title>Swiggy Day-2</title>
</head>

<body>
<script src = "day2.js"></script>
<div>
<p id="text1">Text to do operations on</p>
<button id="btn1" onclick="changeFontSize()">Change Font Size</button>
<button id="btn2" onclick="changeDisplay()">Change Display</button>
<button id="btn3" onclick="changeVisibility()">Change Visibility</button>
</div>
</body>
</html>
12 changes: 12 additions & 0 deletions Day-2/day2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
function changeFontSize(){
document.getElementById("text1").style.fontSize = "50px";
}

function changeDisplay(){
document.getElementById("text1").style.display = "none";
}

function changeVisibility(){
document.getElementById("text1").style.visibility = "hidden";
}

15 changes: 15 additions & 0 deletions Meeting Application/config/dbconfig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const dbconfig={
production :{
SECRET: process.env.SECRET,
DATABASE: process.env.MONGODB_URI
},
default : {
SECRET: 'mysecretkey',
DATABASE: 'mongodb://localhost:27017/Users'
}
}


exports.get = function get(env){
return dbconfig[env] || dbconfig.default
}
75 changes: 75 additions & 0 deletions Meeting Application/controllers/authController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
const User=require('../models/user');

const register = (req,res)=>{
const newuser = new User(req.body);
console.log(newuser);

if(newuser.password!=newuser.confirmPassword)return res.status(400).json({message: "password not match"});

User.findOne({email:newuser.email},function(err,user){
if(user) return res.status(400).json({ auth : false, message :"email exits"});

newuser.save((err,doc)=>{
if(err) {console.log(err);
return res.status(400).json({ success : false, error : err.message});}
res.status(201).json({
succes:true,
user : doc
});
});
});
}

const login = (req,res)=>{
let token=req.cookies.auth;
User.findByToken(token,(err,user)=>{
if(err) return res(err);
if(user) return res.status(400).json({
error :true,
message:"You are already logged in"
});

else{
User.findOne({'email':req.body.email},function(err,user){
if(!user) return res.status(401).json({isAuth : false, message : ' Auth failed ,email not found'});

user.comparepassword(req.body.password,(err,isMatch)=>{
if(!isMatch) return res.json({ isAuth : false,message : "password doesn't match"});

user.generateToken((err,user)=>{
if(err) return res.status(400).send(err);
res.status(201).cookie('auth',user.token).json({
isAuth : true,
id : user._id,
email : user.email
});
});
});
});
}
});
}

const logout = (req, res)=>{
req.user.deleteToken(req.token,(err,user)=>{
if(err) return res.status(400).send(err);
res.sendStatus(200);
});
}

const profile = (req, res)=>{
res.json({
isAuth: true,
id: req.user._id,
email: req.user.email,
name: req.user.firstname + req.user.lastname

})
}

module.exports = {
register,
login,
logout,
profile,
};
119 changes: 119 additions & 0 deletions Meeting Application/controllers/meetingController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
const User=require('../models/user');
const Meeting = require('../models/meeting');
const { use } = require('../routes/userRoute');
const { json } = require('body-parser');

const createMeeting = (req, res)=>{
let token=req.cookies.auth;
const {dateOfMeeting, startTime, endTime, description, attendees} = req.body;
User.findByToken(token, (err,user)=>{
if(err) return res(err);
if(user) return res.status(201).send(createMeetingbyUser(dateOfMeeting,startTime, endTime, description, attendees, user));
else return res.status(400).send("Login First");
});
}

const getmeetings = (req, res)=>{
let token=req.cookies.auth;
User.findByToken(token, (err,user)=>{
if(err) return res(err);
if(user) return getAllMeettingsforUser(req,res,user);
else return res.status(400).send("Login First");
});
}

const getMeetingdetails = async (req, res)=>{
let token=req.cookies.auth;
const meeting_id = req.query.meeting_id;
let user = await User.findOne({token:token});
let meetingInfo = {}
console.log(user);
let isMeetingExistsForUser = user.meetings.includes(meeting_id);
if(isMeetingExistsForUser)
meetingInfo = await Meeting.findById(meeting_id);
else
return res.status(200).send("No Meetings found by Given Id for the User");

return res.status(200).send(meetingInfo);
}


const dropUserfromMeeting = async (req, res)=>{
let token=req.cookies.auth;
const meeting_id = req.query.meeting_id;
let user = await User.findOne({token:token});
if(!user.meetings.includes(meeting_id))
return res.status("400").send("Meeting Does not Exist");
let attendeesInMeeting = await Meeting.findById(meeting_id);
console.log(attendeesInMeeting);
let attendeeRemoved = [];
for(let attendeeEmail of attendeesInMeeting.attendees){
if(attendeeEmail != user.email)
attendeeRemoved.push(attendeeEmail);
}
attendeesInMeeting.attendees = [];
attendeesInMeeting.attendees.push(...attendeeRemoved);
await attendeesInMeeting.save();

return res.status(200).send("User removed from the Meeting");
}


function createMeetingbyUser(dateOfMeeting,startTime, endTime, description, attendees, user){
const newMeeting = new Meeting();
newMeeting.startTime = startTime;
newMeeting.endTime = endTime;
newMeeting.description = description;
newMeeting.dateOfMeeting = new Date(dateOfMeeting);
newMeeting.organizer = user.email;

if(attendees.length > 0)
addAttendeestoMeeting(attendees,newMeeting);

newMeeting.attendees.push(user.email);

//console.log(newMeeting);
newMeeting.save((err, doc)=>{
if(err) return err.message;
updateAllAttendeesWithMeetingId(doc.attendees, doc._id);
})

return "true";
}

function updateAllAttendeesWithMeetingId(attendees, meeting_id){
for(let attendee of attendees){
User.findOne({email:attendee}, (err, user)=>{
if(user) {
user.meetings.push(meeting_id);
user.save();
}
})
}
}

function addAttendeestoMeeting(attendees, newMeeting){
for(let attendeeEmail of attendees){
User.findOne({email:attendeeEmail}, (err,user)=>{
if(user) newMeeting.attendees.push(user.email);
});
}
}

const getAllMeettingsforUser= async (req, res, user)=>{
const allMeetingsIds = user.meetings;
let meetings = [];
for(meetingId of allMeetingsIds){
let meeting = await Meeting.findById(meetingId)//, (err, doc)=>{
meetings.push(meeting);
}
return res.status(200).send(meetings);
}


module.exports = {
createMeeting,
getmeetings,
getMeetingdetails,
dropUserfromMeeting,
}
34 changes: 34 additions & 0 deletions Meeting Application/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const express=require('express');
const mongoose= require('mongoose');
const bodyparser=require('body-parser');
const cookieParser=require('cookie-parser');
const User=require('./models/user');
const {auth} =require('./service/auth');
const Meeting = require('./models/meeting');
const { json } = require('body-parser');
const db=require('./config/dbconfig').get(process.env.NODE_ENV);
const userRoutes = require('./routes/userRoute');
const meetingRoutes = require('./routes/meetingRoutes');

const app=express();
// app use
app.use(bodyparser.urlencoded({extended : false}));
app.use(bodyparser.json());
app.use(cookieParser());

// routes to controllers
app.use('/api', userRoutes);
app.use('/api', meetingRoutes)
// database connection
mongoose.Promise=global.Promise;
mongoose.connect(db.DATABASE,{ useNewUrlParser: true,useUnifiedTopology:true },function(err){
if(err) console.log(err);
console.log("database is connected");
});


// listening port
const PORT=process.env.PORT||3000;
app.listen(PORT,()=>{
console.log(`app is live at ${PORT}`);
});
36 changes: 36 additions & 0 deletions Meeting Application/models/meeting.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
var mongoose= require('mongoose');
const meetingSchema = mongoose.Schema({
organizer:{
type : String,
required : true,
index:true
},
dateOfMeeting:{
type : Date,
required : true
},
startTime:{
type : String,
required : true
},
endTime:{
type : String,
required : true
},
description:{
type : String,
required : true
},
attendees:[{
type : String,
match: [/.+\@.+\..+/, 'Please Fill a valid Email'],
trim: true,
lowercase:true
}]
});

meetingSchema.pre('save', function(next){
next();
});

module.exports = mongoose.model('Meeting', meetingSchema);
Loading