Still stuck? Send a help request. A tutor will reply with the first step — not just the answer — so you can finish it yourself.
Demo form: this page is a design demo. The form below does not send your request anywhere — there is no backend connected yet. Submitting shows you a preview of what your request would look like.
i Privacy: anything you enter here is only used to reply to your help request — nothing else.
This demo does not send anything yet. There is no backend connected, so your
request was not delivered to a real tutor. Below is a preview of what your request would look like.
Request preview
What happens next
1A tutor reviews your question and the work you have already tried.
2You get a reply by email that walks you through the first step — not just the answer — so you can finish the problem yourself.
3Response time is an estimate: usually within 1–2 days. It may take longer during busy periods.
(function(){
var form = document.getElementById('tutor-form');
var confirmBox = document.getElementById('confirm');
var summaryList = document.getElementById('summary-list');
function esc(s){
return String(s).replace(/[&<>"']/g, function(c){
return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];
});
}
function setValid(id, ok){
document.getElementById(id).closest('.ffield').classList.toggle('invalid', !ok);
return ok;
}
function val(id){ return document.getElementById(id).value.trim(); }
form.addEventListener('submit', function(e){
e.preventDefault();
var okName = setValid('name', val('name').length > 0);
var okStuck = setValid('stuck', val('stuck').length > 0);
var okTried = setValid('tried', val('tried').length > 0);
var email = val('email');
var emailOk = email === '' || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
setValid('email', emailOk);
if (!okName || !okStuck || !okTried || !emailOk) return;
var rows = [
['Name', val('name')],
['Email', email === '' ? '(none given)' : email],
['Topic', val('topic') === '' ? '(none chosen)' : val('topic')],
['Stuck on', val('stuck')],
['Tried so far', val('tried')]
];
summaryList.innerHTML = rows.map(function(r){
return '