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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
176 changes: 0 additions & 176 deletions README.md

This file was deleted.

84 changes: 84 additions & 0 deletions backend/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
//7p0EOoNMoZ4SL8wS
const express = require('express');
const bodyParser = require('body-parser');
const path = require("path");

const session = require('express-session');
const cookieParser = require('cookie-parser');

const ua = require('universal-analytics');

const mongoose = require('mongoose');


const userRoutes = require('./routes/user');
const blogRoutes = require('./routes/blog');
const membersRoutes = require('./routes/members');
const testimonialsRoutes = require('./routes/testimonials');
const projectsRoutes = require('./routes/projects');
const galleryRoutes = require('./routes/gallery');
const eventsRoutes = require('./routes/events');
const aboutRoutes = require('./routes/about');
const archiveRoutes = require('./routes/archives');


const app = express();

// app.use(cookieParser());
// app.use(session({secret: "keep this hidden"}));




mongoose.connect("mongodb+srv://smith:" + process.env.MONGO_ATLAS_PW + "@cluster0.ptmmu.mongodb.net/SESWebChallenge?retryWrites=true&w=majority", {useNewUrlParser: true, useUnifiedTopology: true } )
.then( () =>{
console.log("Connected to Database");
})
.catch(()=>{
console.log('Connection failed');
});

//app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

//granting access to the images folder
app.use("/images", express.static(path.join("backend/images")));

//set headers to disablle CORS error that is triggered bb default
//CORS - Cross Origin Resource Error

app.use((req, res, next) => {

//Allows domains to access resources
res.setHeader("Access-Control-Allow-Origin", "*");

res.setHeader(
"Access-Control-Allow-Methods",
"GET, POST, PATCH, DELETE, OPTIONS, PUT");

//Restrict to domains sending request with a set of particular headers
res.setHeader(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
);

next();
});


app.use(ua.middleware("UA-193746825-1", {cookieName: '_ga'}));

app.use("/api/user", userRoutes);
app.use("/api/blog", blogRoutes);
app.use("/api/team", membersRoutes);
app.use("/api/testimonials", testimonialsRoutes);
app.use("/api/projects", projectsRoutes);
app.use("/api/gallery", galleryRoutes);
app.use("/api/events", eventsRoutes);
app.use("/api/about", aboutRoutes);
app.use("/api/archives", archiveRoutes);



module.exports = app;
19 changes: 19 additions & 0 deletions backend/middleware/check-auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const jwt = require('jsonwebtoken');

module.exports = (req, res, next)=>{
try{
const token = req.headers.authorization.split(" ")[1];
try{
jwt.verify(token, process.env.JWT_KEY);
next();

}catch(error){

}

}
catch(error){
res.status(401).json({ message: 'Auth failed!'});
}

};
12 changes: 12 additions & 0 deletions backend/models/about.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const mongoose = require('mongoose');


const aboutSchema = mongoose.Schema({
aboutUs: {type: String, required: true},
impact: {type: String, required: true},
mission: {type: String, required: true},
vision: {type: String, required: true},
coreValues: {type: String, required: true},
});

module.exports = mongoose.model('About', aboutSchema);
17 changes: 17 additions & 0 deletions backend/models/blog.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');

const blogSchema = mongoose.Schema({
title: {type: String, required: true},
subTitle: {type: String, required: true},
topic: {type: String, required: true},
subTopic: {type: String, required: true},
content: {type: String, required: true},
imagePath: {type: String, required: true},
authorID: {type: String, required: true},
author: {type: String, required: true},
date: {type: Date, required: true},
claps: {type: Number, required: true},
});

module.exports = mongoose.model('Blog', blogSchema);
11 changes: 11 additions & 0 deletions backend/models/event.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const mongoose = require('mongoose');

const eventSchema = mongoose.Schema({
title: {type: String, required: true},
description: {type: String, required: true},
date: {type: Date, required: true},
venue: {type: String, required: true},
imagePath: {type: String, required: true} // poster, photo, etc
});

module.exports = mongoose.model('Event', eventSchema);
23 changes: 23 additions & 0 deletions backend/models/member.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');


const memberSchema = mongoose.Schema({
firstName: {type: String, required: true},
lastName: {type: String, required: true},
role: {type: String, required: true},
email: {type: String, required: true, unique: true},
phone: {type: Number, required: true, unique: true},
imagePath: {type: String, required: true},
bio: {type: String, required: true},
linkedIn: {type: String, required: true, unique: true},
twitter: {type: String, required: true, unique: true},
instagram: {type: String, required: true, unique: true},
startDate: {type: Date, required: true},
endDate: {type: Date, required: true},

});

memberSchema.plugin(uniqueValidator);

module.exports = mongoose.model('Member', memberSchema);
14 changes: 14 additions & 0 deletions backend/models/photo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');


const photoSchema = mongoose.Schema({
imagePath: {type: String, required: true, unique: true},
description: {type: String, required: true},
date: {type: Date, required: true},
});

photoSchema.plugin(uniqueValidator);


module.exports = mongoose.model('Photo', photoSchema);
17 changes: 17 additions & 0 deletions backend/models/project.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');

const projectSchema = mongoose.Schema({
title: {type: String, required: true, unique: true},
content: {type: String, required: true},
author: {type: String, required: true},
date: {type: Date, required: true},
imagePath: {type: String, required: true},
githubLink: {type: String, required: true},
youtubeLink: {type: String, required: true},
claps: {type: Number, required: true},
});

projectSchema.plugin(uniqueValidator);

module.exports = mongoose.model('Project', projectSchema);
Loading