Reflect is a digital tool for structured reflective practice based on Terry Borton's reflective framework and experiential learning theory.
Reflect helps users transform experiences into learning through a three-step process:
- What? - Document your experience
- So What? - Reflect and analyze (identify patterns, assumptions, insights)
- Now What? - Create actionable strategies for next time
Features:
- Personal reflection journal
- Structured analysis framework
- AI-Powered Vector Search - Find similar past reflections using semantic embeddings
- Community learning (share reflections with peers)
- AI-powered insights
- Track growth over time
composer install
npm installcp .env.example .env
php artisan key:generateAdd your Google API key to .env:
GOOGLE_API_KEY=your_google_api_key_here
FASTAPI_URL=http://localhost:8001touch database/database.sqlite
php artisan migrate --seed# Terminal 1: Laravel
php artisan serve
# Terminal 2: Vite
npm run dev
# Terminal 3: FastAPI (for AI features & embeddings)
cd fastapi && uvicorn main:app --reload --port 8001- App: http://localhost:8000
- Test User:
[email protected]/password123
Reflect uses Google Gemini embeddings via FastAPI to find semantically similar reflections.
- When you create a reflection, it's sent to FastAPI
- FastAPI generates a 768-dimensional embedding using Google Gemini
- The embedding is stored in SQLite alongside your reflection
- When viewing a reflection, we calculate cosine similarity with all your other reflections
- The most similar reflections are displayed to help you find patterns
php artisan vector:reindex # Reindex all reflections (requires FastAPI running)- Embeddings: Generated via FastAPI + Google Gemini (
text-embedding-004) - Storage: JSON column in SQLite
- Search: PHP cosine similarity calculation
- Simple & Self-Contained: No Typesense, no separate vector DB
php artisan migrate:refresh --seed- Email:
[email protected] - Password:
password123
Based on:
- Terry Borton's Reflective Practice Model (1970)
- David Kolb's Experiential Learning Cycle
- Donald Schön's Reflection-in-Action / Reflection-on-Action