// Registration form handling document.getElementById('registrationForm').addEventListener('submit', async (e) => { e.preventDefault(); const username = document.getElementById('username').value.toLowerCase(); // Convert to lowercase const email = document.getElementById('email').value; const password = document.getElementById('password').value; const confirmPassword = document.getElementById('confirmPassword').value; // Validate username (only allow alphanumeric and underscores) const usernameRegex = /^[a-z0-9_]+$/; if (!usernameRegex.test(username)) { alert('Username can only contain letters, numbers, and underscores'); return; } // Validate password match if (password !== confirmPassword) { alert('Passwords do not match!'); return; } // Validate email format const emailRegex = /^\d+@vistacollege\.nl$/; if (!emailRegex.test(email)) { alert('Email must be in the format: studentnumber@vistacollege.nl'); return; } try { const response = await fetch('/api/auth/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, email, password }) }); const data = await response.json(); if (response.ok) { // Store the token and user info localStorage.setItem('token', data.token); localStorage.setItem('userRole', data.role); localStorage.setItem('username', data.username.toLowerCase()); // Redirect to student dashboard window.location.href = '/student.html'; } else { alert(data.message || 'Registration failed'); } } catch (error) { console.error('Registration error:', error); alert('An error occurred during registration'); } });