Exciting Features Coming Soon!
More Themes
A wider variety of aesthetically pleasing and customizable themes to perfectly match your unique personal or school branding.
All Subjects, All Levels
Expanding beyond English and Primary School to provide comprehensive support for all subjects and educational stages.
Teacher Collaboration Hub
An integrated chat platform for educators to connect, share valuable ideas, and collaborate on lesson plans in real-time.
Feature Showcase
Year 3, 4 and 5 PS Syllabus
Key Stage 1 - Year 3 Syllabus
Time Allocation
Subject | Hours per Week |
---|---|
English | 5h |
Math | 4h |
Science | 3h |
Exit Profile & Competences
Exit Profile | Competence |
---|---|
Global competence | Understand and use basic English in familiar contexts. |
Values | Respect, teamwork, openness to others. |
Domains & Competences
Domains | Target Competences | Resources |
---|---|---|
Oral Comprehension | Understand simple spoken English. | Songs, rhymes, videos. |
Written Production | Write simple words and sentences. | Worksheets, flashcards. |
Topics
Theme | Topics |
---|---|
Family | Family members, friends |
School | Classroom, subjects |
Learning Sequences
Sequence 1: Greetings
Seq | Sections | Domains | Objectives | Resources | Values |
---|---|---|---|---|---|
Seq 1 | Greetings, introductions | Oral Comprehension & Production | - Greet others - Introduce oneself |
Flashcards, songs | Respect |
Evaluation Grid
Skill | Criteria |
---|---|
Oral | Can greet, introduce, ask simple questions |
Written | Can copy and write simple words |
Planning Canvas
Week | Lesson Focus |
---|---|
Week 1 | Greetings & Introductions |
Week 2 | Family & Friends |
Key Stage 1 - Year 4 Syllabus
Exit Profile & Competences
Exit Profile | Competence |
---|---|
Global competence | Interact orally, comprehend and interpret oral and written messages related to the learner’s immediate environment, daily concerns and interests. Write words, simple sentences and short messages. |
Values |
|
Cross-curricular Competences |
|
Domains and Competences
Domains | Target Competences | Components of the Competence | Resources | Cross-Curricular Resources | Timing |
---|---|---|---|---|---|
Oral Comprehension | Interpret oral messages related to the learner’s immediate environment, daily concerns and interests. |
|
Teaching materials: Videos, songs, cartoons, posters, pictures, short stories, etc. |
|
10h |
Sequences (1-6)
Sequence 1: Family & Friends
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 1 | Family, friends | Oral comprehension & Oral production | - Introduce oneself and others - Greet and say goodbye |
Vocab: Family, friends. Grammar: Verb “to be” |
Pictures, flashcards | Respect, friendship |
Sequence 2: School
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 2 | School life | Written comprehension & Written production | - Talk about classroom objects - Ask and answer about subjects |
Vocab: School objects, subjects. Grammar: Plural nouns |
School timetable, maps | Discipline, teamwork |
Sequence 3: Hobbies
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 3 | Hobbies | Oral comprehension & Oral production | - Talk about hobbies - Ask and answer about free-time activities |
Vocab: Sports, games. Grammar: Present continuous |
Charts, posters | Respect, cooperation |
Sequence 4: Food & Drinks
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 4 | Food, drinks | Written comprehension & Oral production | - Order food and drinks - Express likes and dislikes |
Vocab: Meals, fruits, drinks. Grammar: Countable/uncountable nouns |
Menus, recipe books | Healthy habits |
Sequence 5: Places in Town
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 5 | Town | Oral comprehension & Written production | - Give and ask for directions - Describe places in town |
Vocab: Streets, shops. Grammar: Prepositions of place |
Town maps, signs | Respect rules, citizenship |
Sequence 6: Celebrations
Seq | Sections | Domains | Communicative objectives | Resources | Cross curricular resources | Values |
---|---|---|---|---|---|---|
Seq 6 | Celebrations | Oral comprehension & Oral production | - Talk about celebrations - Invite and reply to invitations |
Vocab: Holidays, festivals. Grammar: Future tense (will) |
Calendars, greeting cards | Sharing, cultural awareness |
Key Stage 1 - Year 5 Syllabus
Exit Profile & Competences
Global Competence | Interpret oral messages and interact orally, decode a short simple message to understand its meaning, and produce a very short written message. |
---|---|
Values |
|
Domains and Competences
Domain | Target Competence | Resources | Timing |
---|---|---|---|
Oral Comprehension | Interpret oral messages. | Videos, songs, cartoons, stories. | 17h |
Oral Production | Interact orally. | Vocab: Jobs, hobbies, directions. Grammar: Present simple, 'can'. | 20h |
Written Comprehension | Read short messages (˜40 words). | Phonics, vocabulary, grammar basics. | 9h |
Written Production | Write a short message (˜30 words). | Handwriting, spelling, punctuation. | 9h |
Download The Didactic Guide of Primary School
Feedback Corner
You must be logged in to comment. Sign up here.
${comment.username}
${date}${comment.commentText}
`; commentsContainer.appendChild(commentElement); }); }); }; // --- Listen for Authentication State Changes --- onAuthStateChanged(auth, async (user) => { if (user) { // --- USER IS LOGGED IN --- // 1. Hide the "Sign Up" navigation link if (signupNavLink) { signupNavLink.style.display = 'none'; } // --- Feedback Form Submission --- if (feedbackForm) { feedbackForm.addEventListener("submit", async (e) => { e.preventDefault(); const commentText = commentTextarea.value.trim(); if (!commentText) return; try { // Ensure user is logged in const user = auth.currentUser; if (!user) { alert("You must be logged in to comment."); return; } // Get username from Firestore or fallback to email const userDocRef = doc(db, "users", user.uid); const userDocSnap = await getDoc(userDocRef); let username = user.email; if (userDocSnap.exists()) { username = userDocSnap.data().username || user.email; } // Save comment to Firestore await addDoc(collection(db, "comments"), { username: username, commentText: commentText, timestamp: serverTimestamp(), }); // Clear textarea after submission commentTextarea.value = ""; console.log("Comment submitted successfully!"); } catch (err) { console.error("Error submitting comment:", err); alert("Failed to submit comment. Try again."); } }); } // 2. Update UI for logged-in state (enable feedback form) feedbackForm.style.display = 'block'; loginPrompt.classList.add('hidden'); commentTextarea.disabled = false; submitFeedbackBtn.disabled = false; // 3. Fetch user's username from Firestore const userDocRef = doc(db, "users", user.uid); const userDoc = await getDoc(userDocRef); const username = userDoc.exists() ? userDoc.data().username : user.email; // 4. Display personalized welcome in the main header headerTextContainer.innerHTML = `Welcome back, ${username}!
Welcome to the Lesson Plan Builder
Let's create something amazing today.
`; // 5. Display welcome message and logout button in Navbar userInfoDiv.innerHTML = ` Welcome, ${username}! `; // 6. Display functional logout button in Footer pageFooter.classList.remove('hidden'); pageFooter.innerHTML = ` `; document.getElementById("footer-logout-btn").addEventListener("click", () => signOut(auth)); // 7. Handle feedback form submission feedbackForm.addEventListener('submit', async (e) => { e.preventDefault(); const commentText = commentTextarea.value.trim(); if (commentText === '') return; try { await addDoc(collection(db, "comments"), { userId: user.uid, username: username, commentText: commentText, timestamp: serverTimestamp() }); feedbackForm.reset(); } catch (error) { console.error("Error adding document: ", error); alert("Sorry, there was an error submitting your feedback."); } }); } else { // --- USER IS LOGGED OUT --- // 1. Restore the original generic header headerTextContainer.innerHTML = `Welcome to the Lesson Plan Builder
Customize your lesson plan in a few easy steps
`; // 2. Show the "Sign Up" navigation link if (signupNavLink) { signupNavLink.style.display = 'block'; } // 3. Update UI for logged-out state userInfoDiv.innerHTML = `Login`; feedbackForm.style.display = 'none'; loginPrompt.classList.remove('hidden'); commentTextarea.disabled = true; submitFeedbackBtn.disabled = true; // 4. (FIXED) Always show footer, but with a disabled button pageFooter.classList.remove('hidden'); // Ensure footer is visible pageFooter.innerHTML = `You are not logged in.
`; } }); // Logout button logic const logoutBtn = document.getElementById("logout-btn"); if (logoutBtn) { logoutBtn.addEventListener("click", async () => { try { await signOut(auth); console.log("User signed out"); window.location.href = "index.html"; // optional redirect } catch (error) { console.error("Error signing out:", error); } }); } // --- Feedback Form Submission --- if (feedbackForm) { feedbackForm.addEventListener('submit', async (e) => { e.preventDefault(); const commentText = commentTextarea.value.trim(); if (!commentText) return; try { // Get logged-in user info const user = auth.currentUser; if (!user) { alert("You must be logged in to comment."); return; } // Fetch username from Firestore const userDocRef = doc(db, "users", user.uid); const userDocSnap = await getDoc(userDocRef); let username = user.email; // fallback if (userDocSnap.exists()) { username = userDocSnap.data().username || user.email; } // Save comment to Firestore await addDoc(collection(db, "comments"), { username: username, commentText: commentText, timestamp: serverTimestamp() }); // Clear the textarea commentTextarea.value = ""; console.log("Comment added successfully"); } catch (error) { console.error("Error adding comment:", error); alert("Failed to post comment. Try again."); } }); } // --- Initial call to display comments when the page loads --- displayComments();