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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions script.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,12 @@ document.addEventListener('DOMContentLoaded', () => {
//fetch Logged in user's full name
fetchFullName();
}
if (window.location.pathname === '/select-courses') {
fetchCourses();
}
});


function fetchCourseContent() {
// Get course ID from URL parameter (assuming course ID is passed in the URL)
const urlParams = new URLSearchParams(window.location.search);
Expand Down
57 changes: 44 additions & 13 deletions server.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// server.js
const express = require('express');
const session = require('express-session');
const bcrypt = require('bcryptjs');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const { check, validationResult } = require('express-validator');

const app = express();

// Configure session middleware
Expand Down Expand Up @@ -45,8 +45,6 @@ app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});



// Define a User representation for clarity
const User = {
tableName: 'users',
Expand Down Expand Up @@ -102,12 +100,12 @@ app.post('/register', [
// Insert user into MySQL
User.createUser(newUser, (error, results, fields) => {
if (error) {
console.error('Error inserting user: ' + error.message);
return res.status(500).json({ error: error.message });
console.error('Error inserting user: ' + error.message);
return res.status(500).json({ error: error.message });
}
console.log('Inserted a new user with id ' + results.insertId);
res.status(201).json(newUser);
});
});
});

// Login route
Expand Down Expand Up @@ -141,7 +139,7 @@ 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;
Expand All @@ -153,13 +151,46 @@ app.get('/course/:id', (req, res) => {
const courseId = req.params.id;
const sql = 'SELECT * FROM courses WHERE id = ?';
db.query(sql, [courseId], (err, result) => {
if (err) {
throw err;
}
// Send course content as JSON response
res.json(result);
if (err) {
throw err;
}
// Send course content as JSON response
res.json(result);
});
});

// Route to select a course
app.post('/select-course', (req, res) => {
const userId = req.session.user.id;
const courseId = req.body.courseId;
const sql = 'INSERT INTO user_course_selection (user_id, course_id) VALUES (?, ?)';

connection.query(sql, [userId, courseId], (err, result) => {
if (err) {
console.error('Error selecting course: ' + err.message);
return res.status(500).json({ error: err.message });
}
res.status(200).json({ message: 'Course selected successfully' });
});
});
});

// Route to get selected courses for the logged-in user
app.get('/selected-courses', (req, res) => {
const userId = req.session.user.id;
const sql = `
SELECT courses.id, courses.name
FROM user_course_selection
JOIN courses ON user_course_selection.course_id = courses.id
WHERE user_course_selection.user_id = ?`;

connection.query(sql, [userId], (err, results) => {
if (err) {
console.error('Error fetching selected courses: ' + err.message);
return res.status(500).json({ error: err.message });
}
res.json(results);
});
});

// Start server
const PORT = process.env.PORT || 3000;
Expand Down