An AI-powered platform for learning, exploring, and celebrating the traditional Indian art of Kolam (also known as muggu, rangoli, and rangavalli). This platform blends cultural heritage with modern technology to provide interactive learning experiences.
- Kolam Detection: Upload images and get AI-powered analysis of Kolam patterns
 - Pattern Generation: Create new Kolam designs using mathematical principles and AI
 - Smart Recognition: Identify traditional patterns and their cultural significance
 - AI-Powered Insights: Get explanations and hints using local LLMs
 
- Duolingo-style Quizzes: Progressive learning with gamified elements
 - Progress Tracking: Monitor your learning journey and achievements
 - Cultural Context: Learn about the history and meaning behind patterns
 - Difficulty Levels: From beginner to advanced patterns
 
- Pattern Sharing: Share your creations with the community
 - Learning from Others: Discover patterns created by fellow learners
 - Collaborative Learning: Work together on complex designs
 - Cultural Exchange: Connect with people passionate about traditional art
 
- Real-time Processing: Fast image analysis and generation
 - Offline Capability: Works without internet using local AI models
 - Cross-platform: Web, mobile, and desktop support
 - Scalable Architecture: Built for growth and performance
 
- Python 3.11 or higher
 - uv package manager
 - Git
 
No database setup required! The application works out of the box with SQLite.
# Clone the repository
git clone https://github.com/your-org/kolam-learning-platform.git
cd kolam-learning-platform
# Install dependencies
uv sync
# Start the development server
.\dev.bat dev  # Windows
# or
make dev       # Linux/macOSThat's it! π Your server will be running at http://localhost:8000
For production or advanced features:
# Start all services with Docker
.\dev.bat docker-up  # Windows
# or
docker-compose up -d  # Linux/macOS
# Run database migrations
.\dev.bat migrate-up
# Start the development server
.\dev.bat devOnce the server is running, access the interactive API documentation:
- Swagger UI: http://localhost:8000/docs
 - ReDoc: http://localhost:8000/redoc
 - Health Check: http://localhost:8000/health
 
| Command | Description | 
|---|---|
.\dev.bat dev | 
Start development server with hot reload | 
.\dev.bat test | 
Run all tests | 
.\dev.bat format | 
Format code with ruff | 
.\dev.bat lint | 
Lint code with ruff | 
.\dev.bat docker-up | 
Start all Docker services | 
.\dev.bat docker-down | 
Stop all Docker services | 
.\dev.bat migrate-up | 
Run database migrations | 
.\dev.bat migrate-down | 
Rollback database migrations | 
.\dev.bat setup | 
Run initial setup | 
# Development
make dev              # Start development server
make test             # Run tests
make format           # Format code
make lint             # Lint code
make docker-up        # Start Docker services
make docker-down      # Stop Docker services
# Code Quality
ruff check src/       # Lint code
ruff format src/      # Format code
mypy src/            # Type checking
pytest               # Run tests
pre-commit run --all-files  # Run pre-commit hookskolam-learning-platform/
βββ π src/
β   βββ π api/              # FastAPI routers and endpoints
β   β   βββ auth.py          # Authentication endpoints
β   β   βββ kolam.py         # Kolam-related endpoints
β   β   βββ learning.py      # Learning platform endpoints
β   β   βββ users.py         # User management endpoints
β   βββ π core/             # Core configuration and utilities
β   β   βββ config.py        # Application settings
β   β   βββ database.py      # Database configuration
β   β   βββ logging.py       # Logging setup
β   β   βββ security.py      # Security utilities
β   βββ π db/               # Database models and migrations
β   β   βββ models/          # SQLAlchemy models
β   βββ π services/         # Business logic services
β   β   βββ π ai/           # AI/ML services
β   β   β   βββ detection_service.py    # Kolam detection
β   β   β   βββ generation_service.py   # Pattern generation
β   β   β   βββ ollama_service.py       # LLM integration
β   β   βββ auth_service.py  # Authentication logic
β   β   βββ kolam_service.py # Kolam business logic
β   β   βββ learning_service.py # Learning platform logic
β   β   βββ user_service.py  # User management logic
β   βββ π schemas/          # Pydantic models for API
β   βββ π search/           # OpenSearch integration
β   βββ main.py              # Application entry point
βββ π tests/                # Test files
βββ π monitoring/           # Monitoring and observability
β   βββ π grafana/          # Grafana dashboards
β   βββ prometheus.yml       # Prometheus configuration
βββ π scripts/              # Utility scripts
βββ π uploads/              # File uploads directory
βββ π generated_images/     # AI-generated images
βββ π logs/                 # Application logs
βββ docker-compose.yml       # Docker services configuration
βββ Dockerfile              # Container configuration
βββ pyproject.toml          # Python project configuration
βββ requirements.txt        # Python dependencies
βββ alembic.ini            # Database migration configuration
βββ README.md              # This file
# Run all tests
.\dev.bat test  # Windows
make test       # Linux/macOS
# Run specific test categories
pytest tests/test_api_endpoints.py
pytest tests/test_kolam_detection.py
pytest tests/test_kolam_generation.py
# Run with coverage
pytest --cov=src tests/The platform includes comprehensive Docker support for all services:
# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop all services
docker-compose down
# Rebuild and start
docker-compose up --build -d- PostgreSQL: Primary database
 - OpenSearch: Search and vector operations
 - Ollama: Local LLM for AI features
 - Redis: Caching and session storage
 - Prometheus: Metrics collection
 - Grafana: Monitoring dashboards
 
Create a .env file in the project root:
# Database Configuration
DATABASE_URL=sqlite:///./kolam.db  # For development
# DATABASE_URL=postgresql://user:pass@localhost:5432/kolam_db  # For production
# AI/ML Configuration
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama2
# Security
SECRET_KEY=your-secret-key-here
ACCESS_TOKEN_EXIRE_MINUTES=30
# Application Settings
DEBUG=true
LOG_LEVEL=INFO- 
SQLite (Default - No setup required)
- Perfect for development
 - No external dependencies
 - File-based database
 
 - 
PostgreSQL (Production recommended)
- Better performance
 - Advanced features
 - Requires Docker or local installation
 
 
The platform includes comprehensive monitoring:
- Health Checks: 
/healthendpoint - Metrics: Prometheus integration
 - Logging: Structured logging with context
 - Tracing: OpenTelemetry support
 - Dashboards: Grafana visualizations
 
Access monitoring at:
- Grafana: http://localhost:3000 (admin/admin)
 - Prometheus: http://localhost:9090
 
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
 - Create a feature branch: 
git checkout -b feature/amazing-feature - Make your changes
 - Run tests: 
.\dev.bat test - Format code: 
.\dev.bat format - Commit changes: 
git commit -m 'Add amazing feature' - Push to branch: 
git push origin feature/amazing-feature - Open a Pull Request
 
This project is licensed under the MIT License - see the LICENSE file for details.
- Contributors: Thank you to all contributors who help make this project better
 - Open Source: Built on amazing open-source technologies
 - Community: Inspired by the vibrant Kolam art community
 - Cultural Heritage: Honoring the rich tradition of Indian art
 
- Janhvi Bisht
 - Kartikeya Trivedi
 - Krishna Gupta
 - Kushagra Chaudhary
 - Nakshatra Vidyarthi
 - Rounak Gope
 
- Documentation: Wiki
 - Issues: GitHub Issues
 - Discussions: GitHub Discussions
 - Email: [email protected]
 
- Mobile app (React Native)
 - Advanced AI pattern recognition
 - 3D Kolam visualization
 - AR/VR integration
 - Multi-language support
 - Offline mode
 - Social features
 - Educational curriculum integration
 
Made with β€οΈ by the TechTitans team
Preserving cultural heritage through technology