HomeLearnAI π
An intelligent homeschool learning management system that adapts to each child's unique learning journey. Built with modern web technologies and educational best practices.
β¨ Features
π§ Multi-Child Management
- Grade-based profiles (PreK through 12th grade)
- Independence levels for age-appropriate interfaces
- Kids Mode with PIN-protected parent controls
- Individual progress tracking per child
π Comprehensive Curriculum Planning
- Hierarchical structure: Subjects β Units β Topics β Sessions
- Flexible scheduling with time blocks and commitment types
- Age-appropriate recommendations and quality heuristics
- ICS calendar import for external activities
π§ Smart Learning System
- Spaced repetition reviews with automatic scheduling
- Performance-based interval adjustments
- Catch-up sessions for missed content
- Multiple flashcard types (basic, multiple choice, cloze, true/false)
π― Advanced Features
- Bulk flashcard import (Anki, Quizlet, CSV formats)
- Multi-language support (i18n ready)
- Real-time updates with HTMX
- Mobile-responsive design
- Comprehensive caching for performance
π Quick Start
Prerequisites
- PHP 8.2 or higher
- PostgreSQL 15+
- Node.js 18+
- Composer 2.x
Installation
-
Clone the repository
git clone https://github.com/buger/homelearnai.git cd homelearnai -
Install dependencies
composer install npm install -
Environment setup
cp .env.example .env php artisan key:generate -
Configure database Edit
.envwith your PostgreSQL credentials:DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=homelearnai DB_USERNAME=your_username DB_PASSWORD=your_password -
Run migrations
php artisan migrate php artisan db:seed # Optional: Add sample data -
Build assets
npm run build -
Start the development server
php artisan serve npm run dev # In another terminal for hot-reload
Visit http://localhost:8000 to access the application.
π§ͺ Testing
The project includes comprehensive test coverage (100% pass rate):
# Run all tests
php artisan test
# Run with coverage
php artisan test --coverage
# Run E2E tests
npm run test:e2e
# Run specific test suites
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit
π Documentation
Project Structure
homelearnai/
βββ app/
β βββ Http/Controllers/ # Request handlers
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic
β βββ Http/Middleware/ # Request middleware
βββ resources/
β βββ views/ # Blade templates
β βββ js/ # JavaScript files
β βββ css/ # Stylesheets
βββ database/
β βββ migrations/ # Database migrations
β βββ factories/ # Model factories
βββ tests/
β βββ Feature/ # Feature tests
β βββ Unit/ # Unit tests
β βββ e2e/ # End-to-end tests
βββ routes/
βββ web.php # Web routes
Key Technologies
- Backend: Laravel 11 with PHP 8.2+
- Database: PostgreSQL with Eloquent ORM
- Frontend: HTMX for dynamic interactions, Alpine.js for reactivity
- Styling: Tailwind CSS for modern, responsive design
- Testing: PHPUnit for backend, Playwright for E2E
- Development: Vite for asset bundling, Laravel Pint for code formatting
Core Concepts
1. Learning Hierarchy
Subject (e.g., Mathematics)
βββ Unit (e.g., Algebra Basics)
βββ Topic (e.g., Linear Equations)
βββ Session (e.g., Practice Problems)
βββ Flashcards (Study materials)
2. Review System
- Spaced Repetition: Automatically schedules reviews based on performance
- Intervals: 1 day β 3 days β 7 days β 14 days β 30 days
- Performance Tracking: Adjusts intervals based on student success
3. Kids Mode
- Simplified interface for younger learners
- PIN-protected exit to parent dashboard
- Age-appropriate content and interactions
- Progress celebration and rewards
π οΈ Development
Running Locally
# Start all services
make s # Custom makefile command
# Or run individually
php artisan serve # Laravel server
npm run dev # Vite dev server
php artisan queue:work # Queue worker
Code Quality
# PHP formatting
./vendor/bin/pint
# JavaScript linting
npm run lint
npm run lint:fix
# Type checking
npm run type-check
# Run all quality checks
npm run test:all
Database Management
# Create new migration
php artisan make:migration create_example_table
# Run migrations
php artisan migrate
# Rollback migrations
php artisan migrate:rollback
# Refresh database (WARNING: Deletes all data)
php artisan migrate:fresh --seed
π€ Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Coding Standards
- Follow PSR-12 for PHP code
- Use Laravel best practices
- Write tests for new features
- Update documentation as needed
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Built with Laravel - The PHP Framework for Web Artisans
- Interactive UI powered by HTMX
- Styled with Tailwind CSS
- Icons from Heroicons
π Support
For issues, questions, or suggestions:
- Open an issue
- Documentation: Wiki
- Visit us at: homelearnai.com
π¦ Project Status
Made with β€οΈ for homeschool families everywhere