Skip to content

Commit

Permalink
create model|route|controller 😍
Browse files Browse the repository at this point in the history
  • Loading branch information
RatonBiswas committed Nov 13, 2020
1 parent a2a4d98 commit c832861
Show file tree
Hide file tree
Showing 24 changed files with 255 additions and 63 deletions.
13 changes: 11 additions & 2 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ const app = express();

import AppError from './utils/appError.js';
import courseRoutes from './routes/courseRoutes.js';
import sessionRoutes from './routes/sessionRoute.js';
import sectionRoutes from './routes/sectionRoute.js';
import teacherRoutes from './routes/teacherRoute.js';
import levelRoutes from './routes/levelRoutes.js';
import batchRoutes from './routes/batchRoutes.js';
import termRoutes from './routes/termRoutes.js';
import courseAllocationRoutes from './routes/courseAllocationRoute.js';


// view engine
app.set('view engine', 'ejs');
Expand All @@ -22,8 +27,12 @@ app.use(express.json());

// Use Routes
app.use('/api/courses', courseRoutes);
app.use('/api/sessions', sessionRoutes);
app.use('/api/sections', sectionRoutes);
app.use('/api/teachers', teacherRoutes);
app.use('/api/levels', levelRoutes);
app.use('/api/terms', termRoutes);
app.use('/api/batchs', batchRoutes);
app.use('/api/course-Allocation', courseAllocationRoutes);

// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
Expand Down
14 changes: 14 additions & 0 deletions contollers/batchController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Batch from '../model/batchModel.js';

// import AppError from '../utils/appError.js';
// import catchAsync from '../utils/catchAsync.js';
// import factory from './handlerFactory.js';
import * as factory from './handlerFactory.js';
// const factory = require('./handlerFactory');

export const getAllBatchPost = factory.getAll(Batch);

export const createBatchPost = factory.createOne(Batch);
export const getBatchPost = factory.getOne(Batch);
export const updateBatchPost = factory.updateOne(Batch);
export const deleteBatchPost = factory.deleteOne(Batch);
25 changes: 25 additions & 0 deletions contollers/courseAllocationController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

import CourseAllocation from '../model/courseAllocationModel.js'
import * as factory from './handlerFactory.js';


export const createCourseAllocationPost = factory.createOne(CourseAllocation);
export const getAllCourseAllocationPost = factory.getAll(CourseAllocation);


// export const createOne = catchAsync(async (req, res, next) => {
// const doc = await CourseAllocation.create(req.body);
// res.status(201).json({
// status: 'success',
// doc,
// });
// });
// export const getAll = catchAsync(async (req, res, next) => {
// const docs = await CourseAllocation.find().sort({ createdAt: -1 });
// // SEND Response res
// res.status(200).json({
// status: 'success',
// results: docs.length,
// docs
// });
// });
14 changes: 14 additions & 0 deletions contollers/levelController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Level from '../model/levelModel.js';

// import AppError from '../utils/appError.js';
// import catchAsync from '../utils/catchAsync.js';
// import factory from './handlerFactory.js';
import * as factory from './handlerFactory.js';
// const factory = require('./handlerFactory');

export const getAllLevelPost = factory.getAll(Level);

export const createLevelPost = factory.createOne(Level);
export const getLevelPost = factory.getOne(Level);
export const updateLevelPost = factory.updateOne(Level);
export const deleteLevelPost = factory.deleteOne(Level);
14 changes: 14 additions & 0 deletions contollers/sectionController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Section from '../model/sectionModel.js';

// import AppError from '../utils/appError.js';
// import catchAsync from '../utils/catchAsync.js';
// import factory from './handlerFactory.js';
import * as factory from './handlerFactory.js';
// const factory = require('./handlerFactory');

export const getAllSectionPost = factory.getAll(Section);

export const createSectionPost = factory.createOne(Section);
export const getSectionPost = factory.getOne(Section);
export const updateSectionPost = factory.updateOne(Section);
export const deleteSectionPost = factory.deleteOne(Section);
14 changes: 0 additions & 14 deletions contollers/sessionController.js

This file was deleted.

1 change: 0 additions & 1 deletion contollers/teacherController.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import * as factory from './handlerFactory.js';
// const factory = require('./handlerFactory');

export const getAllTeacherPost = factory.getAll(Teacher);

export const createTeacherPost = factory.createOne(Teacher);
export const getTeacherPost = factory.getOne(Teacher);
export const updateTeacherPost = factory.updateOne(Teacher);
Expand Down
14 changes: 14 additions & 0 deletions contollers/termController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Term from '../model/termModel.js';

// import AppError from '../utils/appError.js';
// import catchAsync from '../utils/catchAsync.js';
// import factory from './handlerFactory.js';
import * as factory from './handlerFactory.js';
// const factory = require('./handlerFactory');

export const getAllTermPost = factory.getAll(Term);

export const createTermPost = factory.createOne(Term);
export const getTermPost = factory.getOne(Term);
export const updateTermPost = factory.updateOne(Term);
export const deleteTermPost = factory.deleteOne(Term);
9 changes: 9 additions & 0 deletions model/batchModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import mongoose from 'mongoose';
const batchSchema = new mongoose.Schema({
batchName : {
type : String,
required : [true,'A courese alllocation have a batch name']
}
})

export default mongoose.model('Batch', batchSchema);
33 changes: 33 additions & 0 deletions model/courseAllocationModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import mongoose from 'mongoose';


const courseAllocationModel = new mongoose.Schema({
session : {
level: {
type: mongoose.Schema.ObjectId,
ref: 'Level',
},
term:{
type: mongoose.Schema.ObjectId,
ref: 'Term',
},
type: Object
},
course : {
teacherId:{
type: mongoose.Schema.ObjectId,
ref: 'Teacher',
},
section: {
type: mongoose.Schema.ObjectId,
ref: 'Section',
},
courseId :{
type: mongoose.Schema.ObjectId,
ref: 'Course',
},
type: Array
}
})

export default mongoose.model('CourseAllocation',courseAllocationModel);
10 changes: 10 additions & 0 deletions model/levelModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import mongoose from 'mongoose';

const levelSchema = new mongoose.Schema({
level: {
type: String,
required: [true, "A course allocation has a level"]
}
})

export default mongoose.model('Level', levelSchema);
10 changes: 10 additions & 0 deletions model/sectionModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import mongoose from 'mongoose';
const sectionSchema = new mongoose.Schema({
sectionName: {
type : String,
maxlength: [45, 'A course allocation have a less than or equal 45 students in one section'],
minength: [35, 'A course allocation have a more than or equal 35 students in one section']
}
})

export default mongoose.model('Section',sectionSchema);
23 changes: 0 additions & 23 deletions model/sessionModel.js

This file was deleted.

24 changes: 19 additions & 5 deletions model/teacherModel.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
import mongoose from 'mongoose';
import validator from 'validator'

const teacherSchema = new mongoose.Schema({
teacherName : {
type: String,
required: [true, "A course allocation has a teacher name"]
},
teacherInitial: {
type: String,
required: [true, "A course allocation has a teacher Initial"]
},
takenCredit: {
type: Number,
required: [true, "A course allocation has a taken Credit"]
required: [true, "A course allocation has a taken Credit"],
maxlength: [15, 'A course allocation have a less than or equal 15 credit he/she taken'],
minlength: [10, 'A course allocation have a more than or equal 10 credit he/she taken']
},
courseId: [{
type:mongoose.Schema.ObjectId,
ref:'Course'
}]
teacherId: {
type: String,
required: [true, "A course allocation has a teacher Id"]
},
teacherEmail: {
type: String,
required: [true, 'Please Provide your email!'],
unique: true,
lowerCase: true,
validate: [validator.isEmail, 'please Provide a valid email']
}
})

export default mongoose.model('Teacher', teacherSchema);
10 changes: 10 additions & 0 deletions model/termModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import mongoose from 'mongoose';

const termSchema = new mongoose.Schema({
term: {
type: String,
required: [true, "A course allocation has a term"]
}
})

export default mongoose.model('Term', termSchema)
5 changes: 5 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"express": "^4.17.1",
"mongoose": "^5.10.9",
"morgan": "^1.10.0",
"nodemon": "^2.0.5"
"nodemon": "^2.0.5",
"validator": "^13.1.17"
}
}
13 changes: 13 additions & 0 deletions routes/batchRoutes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import express from 'express';
import * as batchController from '../contollers/batchController.js';
const router = express.Router();


router.get('/', batchController.getAllBatchPost);
router.post('/create-batch', batchController.createBatchPost);
router.get('/batch-details/:id', batchController.getBatchPost);
router.patch('/update-batch/:id', batchController.updateBatchPost);
router.delete('/delete-batch/:id', batchController.deleteBatchPost);


export default router;
9 changes: 9 additions & 0 deletions routes/courseAllocationRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import express from 'express';
import * as courseAllocationController from '../contollers/courseAllocationController.js';
const router = express.Router();


router.get('/', courseAllocationController.getAllCourseAllocationPost);
router.post('/create-courseAllocation', courseAllocationController.createCourseAllocationPost)

export default router;
5 changes: 2 additions & 3 deletions routes/courseRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ const router = express.Router();
router.get('/', courseController.getAllCoursePost);
router.post('/create-course', courseController.createCoursePost);
router.get('/course-details/:id', courseController.getCoursePost);
router.patch('/update-course', courseController.updateCoursePost);
router.delete('/delete-course', courseController.deleteCoursePost);

router.patch('/update-course/:id', courseController.updateCoursePost);
router.delete('/delete-course/:id', courseController.deleteCoursePost);


export default router;
13 changes: 13 additions & 0 deletions routes/levelRoutes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import express from 'express';
import * as levelController from '../contollers/levelController.js';
const router = express.Router();


router.get('/', levelController.getAllLevelPost);
router.post('/create-level', levelController.createLevelPost);
router.get('/level-details/:id', levelController.getLevelPost);
router.patch('/update-level/:id', levelController.updateLevelPost);
router.delete('/delete-level/:id', levelController.deleteLevelPost);


export default router;
14 changes: 14 additions & 0 deletions routes/sectionRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import express from 'express';
import * as sectionController from '../contollers/sectionController.js';
const router = express.Router();


router.get('/', sectionController.getAllSectionPost);
router.post('/create-section', sectionController.createSectionPost);
router.get('/section-details/:id', sectionController.getSectionPost);
router.patch('/update-section/:id', sectionController.updateSectionPost);
router.delete('/delete-section/:id', sectionController.deleteSectionPost);



export default router;
14 changes: 0 additions & 14 deletions routes/sessionRoute.js

This file was deleted.

Loading

0 comments on commit c832861

Please sign in to comment.