diff --git a/courses.ejs b/courses.ejs new file mode 100644 index 00000000..01e087ee --- /dev/null +++ b/courses.ejs @@ -0,0 +1,20 @@ + + + + Courses - Learning Management System + + +

Select Your Courses

+
+ +
+ +
+
+ View My Courses + + diff --git a/my-courses.ejs b/my-courses.ejs new file mode 100644 index 00000000..16f416fe --- /dev/null +++ b/my-courses.ejs @@ -0,0 +1,16 @@ + + + + My Courses - Learning Management System + + +

My Courses

+ +
+ Select More Courses + + diff --git a/server.js b/server.js index 2b854861..99a9f49e 100644 --- a/server.js +++ b/server.js @@ -1,4 +1,3 @@ -// server.js const express = require('express'); const session = require('express-session'); const bcrypt = require('bcryptjs'); @@ -18,7 +17,7 @@ app.use(session({ const connection = mysql.createConnection({ host: 'localhost', user: 'root', - password: '', + password: '', // Update with your MySQL password if needed database: 'learning_management' }); @@ -45,8 +44,6 @@ app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); - - // Define a User representation for clarity const User = { tableName: 'users', @@ -141,25 +138,69 @@ app.post('/logout', (req, res) => { res.send('Logout successful'); }); -//Dashboard route +// Dashboard route app.get('/dashboard', (req, res) => { - // Assuming you have middleware to handle user authentication and store user information in req.user - const userFullName = req.user.full_name; - res.render('dashboard', { fullName: userFullName }); + if (!req.session.user) { + return res.status(401).send('You need to log in to access this page'); + } + res.sendFile(__dirname + '/dashboard.html'); }); // Route to retrieve course content app.get('/course/:id', (req, res) => { const courseId = req.params.id; const sql = 'SELECT * FROM courses WHERE id = ?'; - db.query(sql, [courseId], (err, result) => { + connection.query(sql, [courseId], (err, result) => { if (err) { throw err; } // Send course content as JSON response res.json(result); }); - }); +}); + +// Route to select courses +app.post('/select-courses', (req, res) => { + if (!req.session.user) { + return res.status(401).send('You need to log in to select courses'); + } + + const userId = req.session.user.id; + const courseIds = req.body.courseIds; // Assume courseIds is an array of selected course IDs + + // Insert selected courses into user_courses table + const values = courseIds.map(courseId => [userId, courseId]); + const sql = 'INSERT INTO user_courses (user_id, course_id) VALUES ?'; + + connection.query(sql, [values], (err, result) => { + if (err) { + return res.status(500).send('Error selecting courses'); + } + res.send('Courses selected successfully'); + }); +}); + +// Route to get selected courses for logged-in user +app.get('/my-courses', (req, res) => { + if (!req.session.user) { + return res.status(401).send('You need to log in to view your courses'); + } + + const userId = req.session.user.id; + const sql = ` + SELECT courses.id, courses.name + FROM courses + JOIN user_courses ON courses.id = user_courses.course_id + WHERE user_courses.user_id = ? + `; + + connection.query(sql, [userId], (err, results) => { + if (err) { + return res.status(500).send('Error retrieving courses'); + } + res.json(results); + }); +}); // Start server const PORT = process.env.PORT || 3000;