Students studying together at UniSkilled
✓ University verified 🎓 Peer tutoring 💼 Freelance jobs
"Real students.
Real skills.
Real opportunities."
✓ University verified 🎓 Peer tutoring 💼 Freelance jobs
Welcome back

Sign in to
UniSkilled

Don't have an account? Create one free →

🔐 Sign in with your university email to access verified features, tutoring, and AI job matching.
⚠️ Incorrect email or password. Please try again.
✉️
Please enter a valid email address.
Forgot password?
👁️
Password must be at least 6 characters.
// ── REAL AUTH (UniSkilled Backend) ── // Overrides the placeholder login when uniskilled-api.js is loaded document.addEventListener('DOMContentLoaded', function() { var form = document.querySelector('form') || document.getElementById('signinForm'); var emailInput = document.querySelector('input[type="email"]') || document.querySelector('input[name="email"]'); var passInput = document.querySelector('input[type="password"]') || document.querySelector('input[name="password"]'); var submitBtn = document.querySelector('button[type="submit"]') || document.querySelector('.btn-signin') || document.querySelector('.btn-blue'); if (!submitBtn) return; submitBtn.addEventListener('click', async function(e) { e.preventDefault(); if (typeof UniSkilled === 'undefined') return; var email = emailInput ? emailInput.value.trim() : ''; var pass = passInput ? passInput.value : ''; if (!email || !pass) return; submitBtn.textContent = 'Signing in...'; submitBtn.disabled = true; var result = await UniSkilled.Auth.login(email, pass); if (result.access_token) { var roles = result.user?.user_metadata?.roles || ['student']; var redirect = new URLSearchParams(window.location.search).get('redirect'); if (redirect) { window.location.href = redirect; return; } if (roles.includes('admin')) window.location.href = 'admin-dashboard.html'; else if (roles.includes('business')) window.location.href = 'business-dashboard.html'; else if (roles.includes('tutor')) window.location.href = 'tutor-dashboard.html'; else window.location.href = 'student-dashboard.html'; } else { submitBtn.textContent = 'Sign in'; submitBtn.disabled = false; var errMsg = result.error_description || result.msg || 'Invalid email or password'; var errEl = document.querySelector('.error-msg') || document.createElement('div'); errEl.className = 'error-msg'; errEl.style.cssText = 'color:#dc2626;font-size:.85rem;margin-top:.5rem;font-family:sans-serif'; errEl.textContent = errMsg; if (passInput) passInput.parentNode.appendChild(errEl); } }); });