Skip to content

Commit

Permalink
Merge pull request #13 from nhattpn/viet
Browse files Browse the repository at this point in the history
new commit ( 17/04 )
  • Loading branch information
vietlecd committed Apr 19, 2024
2 parents 2282175 + 4e3397c commit 0350296
Show file tree
Hide file tree
Showing 25 changed files with 380 additions and 77 deletions.
1 change: 1 addition & 0 deletions qlsv_be/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/node_modules
41 changes: 31 additions & 10 deletions qlsv_be/controllers/admin/control_panel.controller.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Import necessary modules and models
const Course = require('path_to_course_model');
const Course = require('../../models/course.model');

// Get all courses
const getCourses = async (req, res) => {
Expand All @@ -17,6 +17,7 @@ const addCourse = async (req, res) => {
// Logic to add a new course to the database
try {
const newCourse = new Course({
semester: req.body.semester,
courseCode: req.body.courseCode,
scheduleDay: req.body.scheduleDay,
scheduleTime: req.body.scheduleTime,
Expand All @@ -33,23 +34,43 @@ const addCourse = async (req, res) => {

// Update an existing course
const updateCourse = async (req, res) => {
// Logic to update a course based on its ID
try {
const updatedCourse = await Course.findByIdAndUpdate(req.params.id, req.body, { new: true });
res.json(updatedCourse);
} catch (error) {
res.status(400).send(error.message);
const courseUpdate = {
semester: req.body.semester,
courseCode: req.body.courseCode,
scheduleDay: req.body.scheduleDay,
scheduleTime: req.body.scheduleTime,
classroom: req.body.classroom,
studentCount: req.body.studentCount,
instructorName: req.body.instructorName
};

const course = await Course.findOneAndUpdate({ courseCode: req.params.courseCode }, courseUpdate, { new: true });

if (!course) {
return res.status(404).send();
}

res.send(course);
} catch (e) {
res.status(400).send(e);
}
};


// Delete a course
const deleteCourse = async (req, res) => {
// Logic to delete a course based on its ID
try {
await Course.findByIdAndDelete(req.params.id);
res.status(204).send();
const { courseCode } = req.params;
const deletedCourse = await Course.findOneAndDelete({ courseCode: courseCode });

if (!deletedCourse) {
return res.status(404).send('Course not found');
}

res.status(204).send('Success'); // No content to send back, but indicate success
} catch (error) {
res.status(500).send(error.message);
res.status(500).send(error.message);
}
};

Expand Down
88 changes: 86 additions & 2 deletions qlsv_be/controllers/admin/student.controller.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,95 @@
const Student = require('../../models/student.model');

// Get all students
exports.getAllStudents = async (req, res) => {
const getAllStudents = async (req, res) => {
try {
const students = await Student.find();
res.json(students);
} catch (error) {
res.json({ message: error });
}
};
};

// Add a new student
const addStudent = async (req, res) => {
try {
const newStudent = new Student({
name: req.body.name,
email: req.body.email,
password: req.body.password,
mssv: req.body.mssv,
private_info: req.body.private_info,
training_info: req.body.training_info
});
await newStudent.save();
res.status(201).json(newStudent);
} catch (error) {
res.status(400).send(error.message);
}
};

// Delete a student
const deleteStudent = async (req, res) => {
const { mssv } = req.params;

try {
const deletedStudent = await Student.findOneAndDelete({ mssv: mssv });
if (!deletedStudent) {
return res.status(404).json({ message: "Student not found." });
}

res.status(200).json({ message: "Student deleted successfully." });
} catch (error) {
res.status(500).json({ message: error.message });
}
};

// Update an existing student
const updateStudent = async (req, res) => {
try {
const studentUpdated = {
name: req.body.name,
email: req.body.email,
password: req.body.password,
mssv: req.body.mssv,
private_info: req.body.private_info,
training_info: req.body.training_info
}

const student = await Student.findOneAndUpdate({ mssv: req.params.mssv }, studentUpdated, { new: true });

if (!student) {
return res.status(404).send();
}

res.send(student);
} catch (e) {
res.status(400).send(e);
}
};

// Find a student by mssv
const findStudentByMssv = async (req, res) => {
const { mssv } = req.params;

try {
const student = await Student.findOne({ mssv: mssv });
if (!student) {
return res.status(404).json({ message: "Student not found." });
}

res.status(200).json(student);
} catch (error) {
res.status(500).json({ message: error.message });
}
};

module.exports = {
getAllStudents,
addStudent,
deleteStudent,
updateStudent,
findStudentByMssv
}


65 changes: 63 additions & 2 deletions qlsv_be/controllers/admin/teacher.controller.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,72 @@
const Teacher = require('../../models/teacher.model');

// Get all teachers
exports.getAllTeachers = async (req, res) => {
const getAllTeachers = async (req, res) => {
try {
const teachers = await Teacher.find();
res.json(teachers);
} catch (error) {
res.json({ message: error });
}
};
};

const addTeacher = async (req, res) => {
try {
const newTeacher = new Teacher({
name: req.body.name,
email: req.body.email,
password: req.body.password,
msgv: req.body.msgv,
private_info: req.body.private_info,
contact_info: req.body.contact_info
});
await newTeacher.save();
res.status(201).json(newTeacher);
} catch (error) {
res.status(400).send(error.message);
}
};

const deleteTeacher = async (req, res) => {
const { msgv } = req.params;

try {
const deletedTeacher = await Teacher.findOneAndDelete({ msgv: msgv });
if (!deletedTeacher) {
return res.status(404).json({ message: "Teacher not found." });
}
}
catch (error) {
res.status(500).json({ message: error.message });
}
};

const updateTeacher = async (req, res) => {
try {
const teacherUpdated = {
name: req.body.name,
email: req.body.email,
password: req.body.password,
msgv: req.body.msgv,
private_info: req.body.private_info,
contact_info: req.body.contact_info
}

const teacher = await Teacher.findOneAndUpdate({ msgv: req.params.msgv }, teacherUpdated, { new: true });

if (!teacher) {
return res.status(404).send();
}

res.json(teacher);
} catch (error) {
res.status(400).json({ message: error.message });
}
};

module.exports = {
getAllTeachers,
addTeacher,
deleteTeacher,
updateTeacher
}
9 changes: 9 additions & 0 deletions qlsv_be/controllers/users/bangdiem.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports.dashboard = (req, res) => {
try {
// Thực hiện các thao tác thành công ở đây
res.send("Xin chào! Đây là dòng tin nhắn thành công của bangdiem.");
} catch (error) {
// Xử lý lỗi khi có lỗi xảy ra
res.send("Xin lỗi! Đây là dòng tin nhắn thất bại của bangdiem.");
}
};
9 changes: 9 additions & 0 deletions qlsv_be/controllers/users/bangdieukhien.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports.dashboard = (req, res) => {
try {
// Thực hiện các thao tác thành công ở đây
res.send("Xin chào! Đây là dòng tin nhắn thành công của bangdieukhien.");
} catch (error) {
// Xử lý lỗi khi có lỗi xảy ra
res.send("Xin lỗi! Đây là dòng tin nhắn thất bại của bangdieukhien.");
}
};
29 changes: 29 additions & 0 deletions qlsv_be/controllers/users/lichthi.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const LichThi = require("../../models/course.model");

// Get all lich thi
const getAllLichThi = async (req, res) => {
try {
const lichThi = await LichThi.find();
res.json(lichThi);
} catch (error) {
res.json({ message: error });
}
};

//Get info of a lich thi
const getLichThi = async (req, res) => {
const { courseCode } = req.params;

try {
const lichThi = await LichThi.findOne({ courseCode: courseCode });
if (!lichThi) {
return res.status(404).json({ message: "Lich thi not found." });
}
res.json({ semester: lichThi.semester, courseCode: lichThi.courseCode, scheduleDay: lichThi.scheduleDay });
}
catch (error) {
res.status(500).json({ message: error.message });
}
}

module.exports = { getAllLichThi, getLichThi };
18 changes: 9 additions & 9 deletions qlsv_be/controllers/users/student.controller.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const { validationResult } = require('express-validator');
const studentModel = require('../../models/student.model');
const teacherModel = require('../../models/teacher.model');

exports.login = async (req, res) => {
const errors = validationResult(req);
Expand All @@ -11,15 +11,15 @@ exports.login = async (req, res) => {

const { email, password } = req.body;
try {
const student = await studentModel.findOne({ email: email });
if (!student) {
return res.status(404).json({ message: "No student record found" });
const teacher = await teacherModel.findOne({ email: email });
if (!teacher) {
return res.status(404).json({ message: "No teacher record found" });
}
const isMatch = await bcrypt.compare(password, student.password);
const isMatch = await bcrypt.compare(password, teacher.password);
if (!isMatch) {
return res.status(401).json({ message: "Incorrect password" });
}
const token = jwt.sign({ email: student.email, role: student.role }, process.env.JWT_SECRET, { expiresIn: '1d' });
const token = jwt.sign({ email: teacher.email, role: teacher.role }, process.env.JWT_SECRET, { expiresIn: '1d' });
res.json({ message: "Login successful", token: token });
} catch (err) {
res.status(500).json({ message: "Login error", error: err.message });
Expand All @@ -35,9 +35,9 @@ exports.register = async (req, res) => {
const { name, email, password } = req.body;
try {
const hash = await bcrypt.hash(password, 10);
const student = await studentModel.create({ name, email, password: hash });
res.status(201).json({ message: "student registered successfully", student: { id: student._id, name: student.name, email: student.email } });
const teacher = await teacherModel.create({ name, email, password: hash });
res.status(201).json({ message: "teacher registered successfully", teacher: { id: teacher._id, name: teacher.name, email: teacher.email } });
} catch (err) {
res.status(500).json({ message: "Error registering student", error: err.message });
res.status(500).json({ message: "Error registering teacher", error: err.message });
}
};
9 changes: 9 additions & 0 deletions qlsv_be/controllers/users/studentdashboard.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports.dashboard = (req, res) => {
try {
// Thực hiện các thao tác thành công ở đây
res.send("Xin chào! Đây là dòng tin nhắn thành công của tôi.");
} catch (error) {
// Xử lý lỗi khi có lỗi xảy ra
res.send("Xin lỗi! Đây là dòng tin nhắn thất bại của tôi.");
}
};
9 changes: 9 additions & 0 deletions qlsv_be/controllers/users/teacherdashboard.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports.dashboard = (req, res) => {
try {
// Thực hiện các thao tác thành công ở đây
res.send("Xin chào! Đây là dòng tin nhắn thành công của tôi.");
} catch (error) {
// Xử lý lỗi khi có lỗi xảy ra
res.send("Xin lỗi! Đây là dòng tin nhắn thất bại của tôi.");
}
};
16 changes: 8 additions & 8 deletions qlsv_be/controllers/users/thongtindt.controller.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module.exports.dashboard = (req, res) => {
try {
// Thực hiện các thao tác thành công ở đây
res.send("Xin chào! Đây là dòng tin nhắn thành công của tôi.");
} catch (error) {
// Xử lý lỗi khi có lỗi xảy ra
res.send("Xin lỗi! Đây là dòng tin nhắn thất bại của tôi.");
}
const thongDaoTao = require('../../models/teacher.model');


module.exports.dashboard = async (req, res) => {
const thongtindaotao = await thongDaoTao.find({
deleted: false
});
console.log( thongtindaotao);
};
12 changes: 12 additions & 0 deletions qlsv_be/controllers/users/thongtingv.controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const thongtinGiangVien = require('../../models/teacher.model');

module.exports.dashboard = async (req, res) => {
try {
const thongtingiangvien = await thongtinGiangVien.find();
console.log(thongtingiangvien);
res.json(thongtingiangvien); // send response to client
} catch (error) {
console.error(error);
res.status(500).send('Server error'); // send error response to client
}
};
Loading

0 comments on commit 0350296

Please sign in to comment.