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
+
+ <% courses.forEach(course => { %>
+ - <%= course.name %>
+ <% }); %>
+
+
+ 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;