An intelligent homeschool learning management system that adapts to each child's unique learning journey. Built with modern web technologies and educational best practices.
- 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
- 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
- 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)
- Bulk flashcard import (Anki, Quizlet, CSV formats)
- Multi-language support (i18n ready)
- Real-time updates with HTMX
- Mobile-responsive design
- Comprehensive caching for performance
- PHP 8.2 or higher
- PostgreSQL 15+
- Node.js 18+
- Composer 2.x
- 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-reloadVisit http://localhost:8000 to access the application.
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=Unithomelearnai/
βββ 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
- 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
Subject (e.g., Mathematics)
βββ Unit (e.g., Algebra Basics)
βββ Topic (e.g., Linear Equations)
βββ Session (e.g., Practice Problems)
βββ Flashcards (Study materials)
- 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
- Simplified interface for younger learners
- PIN-protected exit to parent dashboard
- Age-appropriate content and interactions
- Progress celebration and rewards
# 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# 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# 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 --seedWe 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
- Follow PSR-12 for PHP code
- Use Laravel best practices
- Write tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Laravel - The PHP Framework for Web Artisans
- Interactive UI powered by HTMX
- Styled with Tailwind CSS
- Icons from Heroicons
For issues, questions, or suggestions:
- Open an issue
- Documentation: Wiki
- Visit us at: homelearnai.com
Made with β€οΈ for homeschool families everywhere