Welcome to the Lesson Plan Builder

Customize your lesson plan in a few easy steps

Features Coming Soon

See what new and exciting tools are on the horizon.

Feature Showcase

Explore the powerful features of our planner.

Year 3, 4, 5 PS Syllabus

Detailed syllabus for Primary School Years 3, 4, and 5.

Download Didactic Guides

Get the official didactic guides for each level.

Feedback

Leave your comments and suggestions.

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

Instantly Ready Templates
Fully Printable Plans
Multi-Theme Options
Easy Customization
Ready to Print and Download

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

SeqSectionsDomains ObjectivesResourcesValues
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
  • National Identity: The learner is proud of being Algerian, Muslim, Arab and Amazigh.
  • National Conscience: S/he respects her/his nation’s constant fundamental tenets.
  • Citizenship: S/he demonstrates respect towards others.
  • Openness to the World: S/he exchanges and communicates with friends from English-speaking countries to widen her/his friendship.
Cross-curricular Competences
  • Intellectual Competence: Discover usage of words, expressions and sentences in oral interaction; demonstrate understanding of reading basics and writing features.
  • Methodological Competence: Exploit linguistic repertoire and paralinguistic features to interact orally; employ reading basics to understand; implement writing appropriately.
  • Communicative Competence: Select appropriate words to interact orally; communicate reading basics to peers; achieve readability in writing.
  • Personal and Social Competence: Consider context and paralinguistic features when interacting orally; respect writings of others.

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.
  • Identify simple words, expressions and sentences in familiar context.
  • Use context and paralinguistic features to understand oral messages.
  • Be an attentive listener.
Teaching materials: Videos, songs, cartoons, posters, pictures, short stories, etc.
  • Intellectual: Discover the relationship between context, paralinguistic features and meaning.
  • Methodological: Make use of context & paralinguistic features to identify meaning.
  • Communicative: React to verbal and non-verbal messages to show understanding.
  • Personal and Social: Respond to oral messages.
10h

Sequences (1-6)

Sequence 1: Family & Friends

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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

SeqSectionsDomains Communicative objectivesResources Cross curricular resourcesValues
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
  • National Identity: Proud of being Algerian, Muslim, Arab and Amazigh.
  • Citizenship: Demonstrates respect towards others.

Domains and Competences

DomainTarget CompetenceResourcesTiming
Oral ComprehensionInterpret oral messages.Videos, songs, cartoons, stories.17h
Oral ProductionInteract orally.Vocab: Jobs, hobbies, directions. Grammar: Present simple, 'can'.20h
Written ComprehensionRead short messages (˜40 words).Phonics, vocabulary, grammar basics.9h
Written ProductionWrite a short message (˜30 words).Handwriting, spelling, punctuation.9h

Download The Didactic Guide of Primary School

Feedback Corner

// Get references to HTML elements const userInfoDiv = document.getElementById("user-info"); const feedbackForm = document.getElementById('feedback-form'); const commentTextarea = document.getElementById('comment-text'); const submitFeedbackBtn = document.getElementById('submit-feedback-btn'); const loginPrompt = document.getElementById('login-prompt'); const commentsContainer = document.getElementById('comments-container'); const signupNavLink = document.getElementById('signup-nav-link'); const headerTextContainer = document.getElementById('header-text-container'); const pageFooter = document.getElementById('page-footer'); // Get the footer // --- Function to fetch and display comments in real-time --- const displayComments = () => { const commentsRef = collection(db, 'comments'); const q = query(commentsRef, orderBy('timestamp', 'desc')); // Order by newest first onSnapshot(q, (snapshot) => { commentsContainer.innerHTML = ''; // Clear existing comments to prevent duplication snapshot.forEach((doc) => { const comment = doc.data(); const commentElement = document.createElement('div'); commentElement.className = 'p-6 rounded-xl bg-gray-100 dark:bg-gray-700/50 shadow-inner animate-fade-in-up'; const date = comment.timestamp ? comment.timestamp.toDate().toLocaleString() : 'Just now'; commentElement.innerHTML = `

${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();