Skip to content

Commit 26f7634

Browse files
fix login and register errors
1 parent 4f123f2 commit 26f7634

17 files changed

Lines changed: 900 additions & 1674 deletions

assets/index-BPo_kLNK.js

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-CVHq5QZg.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-Cfp3cIOr.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-Czhn4Nqu.js

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-E7qhzcCH.js

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-aSgP3hIs.js

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-jmE9FyYB.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/database/schema.sql

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
CREATE TABLE IF NOT EXISTS users (
44
id INTEGER PRIMARY KEY AUTOINCREMENT,
55
email VARCHAR(255) UNIQUE NOT NULL,
6+
username VARCHAR(100) UNIQUE,
67
password_hash VARCHAR(255) NOT NULL,
78
user_type VARCHAR(50) NOT NULL, -- 'high_school', 'university', 'professional'
89
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
910
last_login DATETIME
1011
);
1112
CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);
13+
CREATE INDEX IF NOT EXISTS idx_users_username ON users(username);
1214

1315
CREATE TABLE IF NOT EXISTS profiles (
1416
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -99,32 +101,4 @@ CREATE TABLE IF NOT EXISTS analytics (
99101
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
100102
FOREIGN KEY (user_id) REFERENCES users(id)
101103
);
102-
CREATE INDEX IF NOT EXISTS idx_analytics_event ON analytics(event_type, created_at);
103-
104-
CREATE TABLE IF NOT EXISTS careers (
105-
id INTEGER PRIMARY KEY AUTOINCREMENT,
106-
name VARCHAR(255) NOT NULL,
107-
category VARCHAR(100),
108-
required_skills TEXT, -- JSON array
109-
salary_range VARCHAR(100),
110-
job_outlook VARCHAR(50),
111-
description TEXT,
112-
question_count INTEGER DEFAULT 0, -- Số lần được hỏi về nghề này
113-
answer_count INTEGER DEFAULT 0, -- Số lần xuất hiện trong câu trả lời
114-
mention_frequency REAL DEFAULT 0.0, -- Tần suất nhắc đến (normalized)
115-
weighted_score REAL DEFAULT 0.0 -- Điểm trọng số tích lũy
116-
);
117-
CREATE UNIQUE INDEX IF NOT EXISTS idx_careers_name ON careers(name);
118-
CREATE INDEX IF NOT EXISTS idx_careers_category ON careers(category);
119-
CREATE INDEX IF NOT EXISTS idx_careers_frequency ON careers(mention_frequency);
120-
121-
CREATE TABLE IF NOT EXISTS learning_paths (
122-
id INTEGER PRIMARY KEY AUTOINCREMENT,
123-
career_id INTEGER NOT NULL,
124-
step_order INTEGER NOT NULL,
125-
title VARCHAR(255) NOT NULL,
126-
description TEXT,
127-
duration_months INTEGER,
128-
resources TEXT, -- JSON array of links
129-
FOREIGN KEY (career_id) REFERENCES careers(id)
130-
);
104+
CREATE INDEX IF NOT EXISTS idx_analytics_user ON analytics(user_id);

backend/database/seed.sql

Lines changed: 19 additions & 359 deletions
Large diffs are not rendered by default.
Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,60 @@
1-
#!/usr/bin/env node
21
/**
3-
* Migration script to add username column to users table
4-
* This fixes the issue where accounts couldn't be reused on login
2+
* Migration Script: Add username column to users table
3+
* Run this script to update existing databases
54
*/
65

7-
const path = require('path');
8-
const fs = require('fs');
9-
const sqlite3 = require('sqlite3').verbose();
10-
11-
// Database path
12-
const dbFolder = path.join(__dirname, '..', 'database');
13-
const DB_PATH = path.join(dbFolder, 'career_advisor.db');
6+
const db = require('../database/connection');
147

158
async function migrate() {
16-
console.log('🔧 Starting migration: Add username column to users table');
9+
console.log('Starting migration: Add username column to users table...');
1710

18-
const db = new sqlite3.Database(DB_PATH, async (err) => {
19-
if (err) {
20-
console.error('❌ Failed to connect to database:', err.message);
21-
process.exit(1);
22-
}
23-
24-
try {
25-
// Check if username column already exists
26-
db.get("SELECT sql FROM sqlite_master WHERE type='table' AND name='users'", (err, row) => {
11+
return new Promise((resolve, reject) => {
12+
// Check if username column exists
13+
db.get("SELECT sql FROM sqlite_master WHERE type='table' AND name='users'", (err, row) => {
14+
if (err) {
15+
console.error('Error checking users table:', err.message);
16+
return reject(err);
17+
}
18+
19+
console.log('Current users table schema:', row?.sql);
20+
21+
if (row?.sql?.includes('username')) {
22+
console.log('Username column already exists. Skipping migration.');
23+
return resolve(true);
24+
}
25+
26+
// Add username column
27+
const alterQuery = `ALTER TABLE users ADD COLUMN username VARCHAR(100)`;
28+
db.run(alterQuery, (err) => {
2729
if (err) {
28-
console.error('Error checking schema:', err.message);
29-
process.exit(1);
30+
console.error('Error adding username column:', err.message);
31+
return reject(err);
3032
}
3133

32-
const hasUsername = row && row.sql && row.sql.includes('username');
33-
34-
if (hasUsername) {
35-
console.log('✅ Username column already exists');
36-
process.exit(0);
37-
}
34+
console.log('Username column added successfully.');
3835

39-
// Add username column
40-
console.log('📝 Adding username column...');
41-
db.run('ALTER TABLE users ADD COLUMN username VARCHAR(255)', (err) => {
36+
// Create index for username
37+
const createIndex = `CREATE INDEX IF NOT EXISTS idx_users_username ON users(username)`;
38+
db.run(createIndex, (err) => {
4239
if (err) {
43-
console.error('❌ Failed to add username column:', err.message);
44-
process.exit(1);
40+
console.error('Error creating username index:', err.message);
41+
// Continue anyway, the column was added
4542
}
46-
47-
console.log('✅ Username column added successfully');
48-
49-
// Create index on username
50-
db.run('CREATE INDEX IF NOT EXISTS idx_users_username ON users(username)', (err) => {
51-
if (err) {
52-
console.error('⚠️ Warning: Failed to create username index:', err.message);
53-
}
54-
55-
console.log('✅ Migration complete!');
56-
process.exit(0);
57-
});
43+
console.log('Username index created.');
44+
resolve(true);
5845
});
5946
});
60-
} catch (e) {
61-
console.error('❌ Migration error:', e.message);
62-
process.exit(1);
63-
}
47+
});
6448
});
6549
}
6650

67-
migrate();
51+
// Run migration
52+
migrate()
53+
.then(() => {
54+
console.log('Migration completed successfully.');
55+
process.exit(0);
56+
})
57+
.catch((err) => {
58+
console.error('Migration failed:', err.message);
59+
process.exit(1);
60+
});

0 commit comments

Comments
 (0)