aichildedu

aichildedu

A microservice-based AI education platform for children that integrates LLMs, image generation, and speech synthesis to provide personalized storybook creation, intelligent conversational learning, and multimedia content generation.

Stars: 162

Visit
 screenshot

README:

AICHILDEDU

Logo

A microservice-based AI education platform for children that integrates LLMs, image generation, and speech synthesis to provide personalized storybook creation, intelligent conversational learning, and multimedia content generation.

License Python React FastAPI Docker PostgreSQL MongoDB Redis Elasticsearch

Overview

AICHILDEDU is an innovative educational platform designed specifically for children, leveraging the power of AI to create engaging, personalized, and educational content. The platform uses a microservice architecture to deliver a variety of AI-powered educational experiences, allowing for flexible scaling and feature expansion.

Features

  • Personalized Story Generation: Create custom educational stories tailored to specific age groups, themes, and educational focuses
  • Educational Quiz Creation: Generate engaging quizzes and questions that reinforce learning objectives
  • Multimedia Integration: Combine text, images, voice, and video into comprehensive educational materials
  • Age-Appropriate Content: Content customization based on age groups and developmental stages
  • Multi-Language Support: Support for content generation in multiple languages
  • User Management: Comprehensive user system with parent, teacher, and admin roles
  • Parental Controls: Robust parental control features to ensure child-appropriate content
  • Asynchronous Processing: Non-blocking task execution for resource-intensive AI operations

System Architecture

AICHILDEDU follows a microservice architecture with the following key components:

                           ┌─────────────────┐
                           │   API Gateway   │
                           └───────┬─────────┘
                                   │
┌────────┬────────┬────────────────┼────────────────┬────────────────┐
│        │        │                │                │                │
▼        ▼        ▼                ▼                ▼                ▼
┌──────────┐ ┌─────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│   User   │ │ Content │ │ Learning     │ │Recommendation│ │  Analytics   │
│ Service  │ │ Service │ │ Service      │ │   Service    │ │   Service    │
└──────────┘ └─────────┘ └──────────────┘ └──────────────┘ └──────────────┘
                                 ┌──────────────────────────┐
                                 │       AI Services        │
                                 │                          │
                                 │ ┌─────────┐ ┌─────────┐  │
                                 │ │  Text   │ │ Image   │  │
                                 │ │Generator│ │Generator│  │
                                 │ └─────────┘ └─────────┘  │
                                 │ ┌─────────┐ ┌─────────┐  │
                                 │ │  Voice  │ │  Video  │  │
                                 │ │Generator│ │Generator│  │
                                 │ └─────────┘ └─────────┘  │
                                 └──────────────────────────┘

Technologies Used

  • Backend: Python, FastAPI, Uvicorn
  • Databases: PostgreSQL, MongoDB, Redis
  • AI & ML: LangChain, OpenAI GPT models, TensorFlow, PyTorch, Transformers
  • Storage: MinIO (Object Storage)
  • Search: Elasticsearch
  • Containerization: Docker, Docker Compose
  • Authentication: JWT-based authentication

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Python 3.10 or higher (for local development)
  • OpenAI API key

Installation

  1. Clone the repository:

    git clone https://github.com/CHILDEDUAI/aichildedu.git
    cd aichildedu
  2. Create an .env file in the root directory with the following variables:

    # Database
    POSTGRES_USER=postgres
    POSTGRES_PASSWORD=postgres
    MONGODB_URI=mongodb://mongodb:27017/
    MONGODB_DB=aiedu
    
    # Authentication
    SECRET_KEY=your_secret_key_change_in_production
    
    # OpenAI
    OPENAI_API_KEY=your_openai_api_key
    
  3. Start the services using Docker Compose:

    docker-compose up -d
  4. The API Gateway will be available at http://localhost:8000

Local Development Setup

  1. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the desired service:

    uvicorn aichildedu.user_service.main:app --reload --port 8001

Usage Examples

Generating a Story

import requests

api_url = "http://localhost:8000/api/v1/ai/text/story"

story_request = {
    "title": "The Curious Robot",
    "theme": "Technology and Friendship",
    "age_group": "6-8",
    "characters": [
        {
            "name": "Robo",
            "description": "A curious and friendly robot who wants to learn about the world"
        },
        {
            "name": "Mia",
            "description": "A smart girl who loves technology and building things"
        }
    ],
    "educational_focus": "Introduction to robotics and programming concepts",
    "length": "medium",
    "language": "en"
}

response = requests.post(api_url, json=story_request)
task = response.json()

print(f"Story generation task created: {task['task_id']}")
print(f"Check status at: {task['status_check_url']}")

Checking Task Status

import requests

task_id = "task_12345"
status_url = f"http://localhost:8000/api/v1/ai/text/tasks/{task_id}"

response = requests.get(status_url)
status = response.json()

print(f"Task status: {status['status']}")
print(f"Progress: {status['progress']}%")

Retrieving Generated Content

import requests

task_id = "task_12345"
result_url = f"http://localhost:8000/api/v1/ai/text/tasks/{task_id}/result"

response = requests.get(result_url)
story = response.json()

print(f"Story Title: {story['title']}")
print(f"Summary: {story['summary']}")
print("\nContent:")
print(story['content'])

API Documentation

The API documentation is available at:

  • API Gateway: http://localhost:8000/docs
  • User Service: http://localhost:8001/docs
  • Content Service: http://localhost:8002/docs
  • Learning Service: http://localhost:8003/docs
  • AI Text Generator: http://localhost:8010/docs
  • AI Image Generator: http://localhost:8011/docs
  • AI Voice Generator: http://localhost:8012/docs
  • AI Video Generator: http://localhost:8013/docs

Service Architecture

User Service

Handles user management, authentication, and authorization. Manages user profiles, child accounts, and parental controls.

Content Service

Manages educational content creation, storage, retrieval, and organization with the following features:

  • Content Types Management:

    • Stories: Interactive educational narratives with character development, themes, and moral lessons
    • Quizzes: Customizable question sets with answers, difficulty levels, and scoring mechanisms
    • Lessons: Structured learning materials with educational objectives and prerequisites
  • Content Organization:

    • Categories: Hierarchical organization of content with parent-child relationships
    • Tags: Flexible content labeling for improved discoverability and filtering
    • Collections: User-created or curated sets of content (custom, curriculum, featured)
  • Content Filtering and Search:

    • Age-appropriate filtering based on min/max age ranges
    • Difficulty level filtering (beginner, intermediate, advanced)
    • Content rating filtering (G, PG, educational)
    • Multi-language support
    • Full-text search capabilities
  • Content Metadata:

    • Educational value tracking
    • Subjects and themes classification
    • Reading time estimation
    • Word count metrics
  • User Interaction:

    • Content reactions (like, favorite, helpful)
    • Content sharing and permissions
    • User-specific content collections
  • Multimedia Asset Management:

    • Storage and retrieval of images, audio, and video assets
    • Asset association with educational content

Learning Service

Tracks learning progress, personalized learning paths, and educational achievements with the following features:

  • Learning Path Management:

    • Curriculum Design: Structured learning paths based on age groups and subjects
    • Prerequisites: Dependency management for learning materials
    • Progress Tracking: Real-time monitoring of learning milestones
    • Adaptive Learning: Dynamic adjustment of content difficulty based on performance
  • Assessment and Evaluation:

    • Progress Assessment: Regular evaluation of learning outcomes
    • Skill Level Analysis: Tracking of subject-specific competencies
    • Performance Metrics: Detailed analytics of learning activities
    • Achievement System: Gamified rewards and badges for accomplishments
  • Personalization Features:

    • Learning Style Detection: Identification of individual learning preferences
    • Content Recommendations: AI-powered suggestions for next learning steps
    • Pace Adjustment: Flexible learning speed based on individual progress
    • Interest-Based Learning: Content tailoring based on demonstrated interests
  • Progress Reporting:

    • Detailed Analytics: Comprehensive learning progress visualization
    • Parent/Teacher Dashboard: Monitoring tools for guardians and educators
    • Progress Reports: Regular automated assessment summaries
    • Learning Insights: AI-generated recommendations for improvement
  • Collaborative Learning:

    • Peer Learning: Facilitated group learning activities
    • Social Interaction: Safe, moderated peer communication
    • Group Projects: Collaborative educational tasks
    • Shared Achievements: Community learning milestones
  • Learning Support:

    • AI Tutoring: Intelligent assistance for difficult concepts
    • Homework Help: Guided problem-solving support
    • Review Sessions: Automated review of challenging materials
    • Learning Resources: Additional materials for deeper understanding

AI Services

Text Generator

Creates educational stories and quizzes with the following features:

  • Personalized story generation based on age, theme, and educational focus
  • Quiz generation with customizable difficulty levels
  • Asynchronous task processing for better resource management
  • Template-based content customization

Image Generator

Creates illustrations to accompany educational content:

  • Story illustration generation
  • Character visualization
  • Educational diagrams and charts

Voice Generator

Provides audio narration for educational content:

  • Story narration with different character voices
  • Multi-language support
  • Age-appropriate voice adaptation

Video Generator

Creates educational videos and animations:

  • Story animations
  • Educational concept visualizations
  • Interactive learning content

Development and Contribution

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Implement your changes
  4. Write tests for new features
  5. Submit a pull request

Code Style

This project follows PEP 8 style guidelines. Please ensure your code adheres to these standards before submitting PRs.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgments

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for aichildedu

Similar Open Source Tools

For similar tasks

No tools available

For similar jobs

No tools available