Project

General

Profile

Actions

Feature #11

open
KJ KJ

Wisdom Logger (Web UI)

Feature #11: Wisdom Logger (Web UI)

Added by Khun Josh about 2 months ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Assignee:
Start date:
01/01/2026
Due date:
% Done:

0%

Estimated time:

Description

Task: Build the "Wisdom Logger" - Student Progress Journal System

Mission Alignment

Students from underserved communities need to track their learning journey, reflect on challenges, and build metacognitive skills. This tool demonstrates TeachingCode.org's contemplative approach to coding education.


The Build

What You're Creating

A Symfony-based journal system where students log:

  • Daily coding sessions (what they built, time spent, challenges faced)
  • Reflections (what they learned, how they felt, what clicked)
  • Wisdom moments (breakthroughs, realizations, questions)
  • Progress markers (skills acquired, projects completed)

Why This Task is Perfect For You

  • Symfony fundamentals without overwhelming complexity
  • Real educational value from day one
  • Foundation piece for MiddleSeek AI integration later
  • Clear scope with natural expansion paths

Technical Specifications

Phase 1: Core Symfony Entity & CRUD (Start Here)

symfony new wisdom-logger --webapp
cd wisdom-logger

Entity Structure:

// src/Entity/JournalEntry.php
- id (int)
- studentId (int) // future User relation
- sessionDate (datetime)
- codeActivity (text) // what they built
- timeSpent (int) // minutes
- challengesFaced (text)
- reflection (text)
- wisdomMoment (text, nullable)
- moodRating (int, 1-5, nullable)
- skillsTags (array) // json array
- createdAt (datetime)
- updatedAt (datetime)

Your Task List:

  1. Create the Entity

    php bin/console make:entity JournalEntry
    
  2. Generate CRUD Controller

    php bin/console make:crud JournalEntry
    
  3. Customize the Form (src/Form/JournalEntryType.php)

    • Make it student-friendly (helpful labels, placeholders)
    • Add CSS classes for purple/grey branding
    • Make wisdomMoment a textarea with prompt: "What clicked for you today?"
  4. Style the Templates (templates/journal_entry/)

    • Apply grey/purple brand palette
    • Mobile-first responsive design
    • Accessibility: proper labels, ARIA attributes
    • Contemplative aesthetic (calm, spacious, focused)
  5. Add a Dashboard View

    • Route: /journal/dashboard
    • Shows last 7 entries in timeline
    • Quick stats: total sessions, total hours, mood trend
    • "Start Today's Entry" prominent button

Success Criteria

You're done when:

  • ✅ Students can create/edit/delete journal entries
  • ✅ Forms are intuitive and encouraging
  • ✅ Dashboard shows learning progress visually
  • ✅ Brand colors (grey/purple) applied consistently
  • ✅ Mobile-responsive and accessible
  • ✅ Code is clean, commented, AGPLv3 header on custom files

Future Expansion Hooks (Don't Build Yet)

Once this works, you'll add:

  • MiddleSeek AI integration: AI analyzes entries, suggests resources
  • Skill graph: Visualize skill acquisition over time
  • Peer support: Share wisdom moments (anonymized)
  • Mentor feedback: Teachers can leave encouraging notes

AGPLv3 License Header

Add to your custom PHP files:

/**
 * This file is part of TeachingCode.org
 * 
 * Copyright (c) 2025 Kusala Studio (501c3)
 * Licensed under AGPLv3
 * 
 * Mission: Serve underserved communities through open-source education
 * https://teachingcode.org
 */

Why This Matters

Educational Research Shows:

  • Journaling increases retention by 20-30%
  • Reflection builds problem-solving skills
  • Progress tracking boosts motivation in underserved students

Your code directly serves the mission: helping students from underserved communities become confident developers through contemplative practice.


Questions Before You Start?

  • Database choice? (SQLite for dev, MySQL/PostgreSQL for prod?)
  • Need help with Symfony environment setup?
  • Want specific guidance on form customization or styling?
  • Should I provide a purple/grey CSS starter?

Get building, and ping me when you hit your first technical question or when Phase 1 is done! 🟣

Actions

Also available in: PDF Atom