- ๐ฏ Overview
- โจ Features
- ๐ ๏ธ Tech Stack
- ๐๏ธ Architecture
- ๐ Project Structure
- ๐ Quick Start
- โ๏ธ Configuration
- ๐ API Documentation
- ๐งช Testing
- ๐ณ Docker Support
- ๐ Monitoring
- ๐ค Contributing
- ๐ License
- ๐ฅ Team
- ๐ Support
An AI-powered platform for learning, exploring, and celebrating the traditional Indian art of Kolam (also known as muggu, rangoli, and rangavalli). This innovative platform seamlessly blends cultural heritage with cutting-edge technology to provide immersive, interactive learning experiences.
๐ Mission: To preserve and promote traditional Indian art forms through modern AI technology while making cultural learning accessible, engaging, and globally available.
๐จ What is Kolam?
Kolam is a traditional South Indian art form where intricate patterns are drawn using rice flour, chalk, or colored powders. These beautiful geometric designs are typically created at the entrance of homes and temples, symbolizing prosperity, protection, and welcome to visitors.
๐ง AI-Powered | ๐ Interactive Learning | ๐ Community | ๐ง Technical |
---|---|---|---|
Pattern Detection | Gamified Quizzes | Pattern Sharing | Real-time Processing |
AI Generation | Progress Tracking | Collaborative Learning | Offline Capability |
Smart Recognition | Cultural Context | Community Gallery | Cross-platform |
LLM Integration | Adaptive Difficulty | Cultural Exchange | Scalable Architecture |
๐ Advanced Pattern Recognition
- Smart Detection: Upload images and get instant AI-powered analysis of Kolam patterns
- Cultural Classification: Identify traditional patterns and their regional variations
- Accuracy Scoring: Get detailed feedback on pattern accuracy and completeness
- Pattern Similarity: Find similar patterns in the database with confidence scores
๐จ Intelligent Generation
- Mathematical Algorithms: Create new Kolam designs using geometric principles
- AI-Assisted Design: Generate patterns based on user preferences and skill level
- Style Transfer: Apply traditional styles to modern interpretations
- Custom Variations: Create personalized versions of classical patterns
๐ค AI-Powered Learning Assistant
- Interactive Hints: Get contextual help when stuck on patterns
- Cultural Insights: Learn about symbolism and meaning through AI explanations
- Personalized Feedback: Receive tailored suggestions for improvement
- Local LLM Integration: Powered by Ollama for privacy-focused AI interactions
๐ฎ Gamified Education
- Duolingo-style Progression: Step-by-step learning with clear milestones
- Achievement System: Unlock badges and rewards for completing challenges
- Streak Tracking: Maintain daily practice streaks for consistent learning
- Leaderboards: Compete with friends and community members
๐ Adaptive Learning Path
- Skill Assessment: Initial evaluation to determine starting level
- Dynamic Difficulty: Automatic adjustment based on performance
- Personalized Curriculum: Tailored learning path for each user
- Progress Analytics: Detailed insights into learning patterns and improvements
๐ค Social Learning
- Pattern Gallery: Showcase and discover community creations
- Collaborative Projects: Work together on complex multi-part designs
- Mentorship Program: Connect beginners with experienced practitioners
- Cultural Ambassadors: Learn from traditional artists and experts
โก Performance & Reliability
- Sub-second Analysis: Lightning-fast pattern recognition and feedback
- 99.9% Uptime: Robust infrastructure with automatic failover
- Offline Mode: Continue learning without internet connectivity
- Cross-platform: Seamless experience across web, mobile, and desktop
๐ Detailed Technology Breakdown
Category | Technology | Version | Purpose |
---|---|---|---|
Web Framework | FastAPI | 0.104+ | High-performance async API framework |
Frontend Framework | React | 19.1+ | Modern UI library with hooks |
Build Tool | Vite | 7.1+ | Fast development and build tool |
Database ORM | SQLAlchemy | 2.0+ | Python SQL toolkit and ORM |
Migration Tool | Alembic | 1.12+ | Database migration management |
AI Framework | TensorFlow | 2.15+ | Deep learning and pattern recognition |
Computer Vision | OpenCV | 4.8+ | Image processing and analysis |
LLM Integration | Ollama | 0.1+ | Local language model inference |
Search Engine | OpenSearch | 2.11+ | Vector search and full-text search |
Monitoring | Prometheus + Grafana | Latest | Metrics collection and visualization |
Authentication | JWT + OAuth2 | - | Secure user authentication |
Validation | Pydantic | 2.5+ | Data validation and serialization |
graph TB
subgraph "Frontend Layer"
UI[React Frontend]
Mobile[Mobile App]
end
subgraph "API Gateway"
FastAPI[FastAPI Server]
Auth[Authentication]
Rate[Rate Limiting]
end
subgraph "Core Services"
Kolam[Kolam Service]
Learning[Learning Service]
User[User Service]
AI[AI Service]
end
subgraph "AI/ML Pipeline"
Detection[Pattern Detection]
Generation[Pattern Generation]
Ollama[LLM Service]
CV[Computer Vision]
end
subgraph "Data Layer"
Postgres[(PostgreSQL)]
Search[(OpenSearch)]
Files[(File Storage)]
Cache[(Redis Cache)]
end
subgraph "Infrastructure"
Docker[Docker Containers]
Monitor[Monitoring]
Logs[Logging]
end
UI --> FastAPI
Mobile --> FastAPI
FastAPI --> Auth
FastAPI --> Rate
FastAPI --> Kolam
FastAPI --> Learning
FastAPI --> User
Kolam --> AI
Learning --> AI
AI --> Detection
AI --> Generation
AI --> Ollama
AI --> CV
Kolam --> Postgres
Learning --> Postgres
User --> Postgres
AI --> Search
AI --> Files
FastAPI --> Cache
FastAPI --> Monitor
FastAPI --> Logs
๐ธ Image Processing Workflow
User Upload โ Image Validation โ AI Detection โ Pattern Analysis โ
Cultural Classification โ Feedback Generation โ Results Display
- Image Input: User uploads Kolam image
- Preprocessing: Image normalization and enhancement
- AI Detection: EfficientNet-B4 model analyzes patterns
- Pattern Matching: Compare against traditional pattern database
- Cultural Context: LLM provides cultural insights and explanations
- Results: Comprehensive feedback with suggestions
๐ Learning Path Engine
Skill Assessment โ Personalized Curriculum โ Progressive Challenges โ
Performance Analytics โ Adaptive Difficulty โ Mastery Tracking
- Initial Assessment: Evaluate user's current skill level
- Path Generation: Create personalized learning trajectory
- Content Delivery: Serve appropriate challenges and tutorials
- Progress Monitoring: Track completion rates and accuracy
- Dynamic Adjustment: Modify difficulty based on performance
- Achievement Unlocking: Reward progress with badges and certificates
๐ Core Data Models
-- Users and Authentication
users (id, email, username, created_at, profile_data)
user_sessions (id, user_id, token, expires_at)
-- Kolam Patterns and Analysis
kolam_patterns (id, name, region, difficulty, cultural_significance)
user_uploads (id, user_id, image_path, analysis_results, created_at)
pattern_detections (id, upload_id, pattern_id, confidence_score)
-- Learning and Progress
learning_paths (id, user_id, current_level, progress_percentage)
quiz_attempts (id, user_id, quiz_id, score, completed_at)
achievements (id, user_id, badge_type, earned_at)
-- Community and Social
shared_patterns (id, user_id, pattern_id, public, likes_count)
comments (id, pattern_id, user_id, content, created_at)
- 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/macOS
That'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 dev
Once 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
๐จ kolam-learning-platform/
โโโ ๐ src/ # ๐ Backend Source Code
โ โโโ ๐ api/ # ๐ FastAPI Routes & Endpoints
โ โ โโโ ๐ auth.py # Authentication & Authorization
โ โ โโโ ๐จ kolam.py # Kolam Detection & Analysis
โ โ โโโ ๐ learning.py # Learning Platform Features
โ โ โโโ ๐ค users.py # User Management
โ โโโ ๐ core/ # โ๏ธ Core Configuration
โ โ โโโ ๐ง config.py # App Settings & Environment
โ โ โโโ ๐๏ธ database.py # Database Configuration
โ โ โโโ ๐ logging.py # Structured Logging Setup
โ โ โโโ ๐ security.py # Security Utilities
โ โโโ ๐ services/ # ๏ฟฝ๐ ๏ธ Business Logic Layer
โ โ โโโ ๐ ai/ # ๐ค AI/ML Services
โ โ โ โโโ ๐ detection_service.py # Pattern Recognition
โ โ โ โโโ ๐จ 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
โ โโโ ๐ search/ # ๐ Search Integration
โ โ โโโ ๐ client.py # OpenSearch Client
โ โโโ ๐ main.py # Application Entry Point
โโโ ๐ frontend/ # โ๏ธ React Frontend
โ โโโ ๐ SIH-F-main/ # ๐จ Main Frontend App
โ โโโ ๐ src/
โ โ โโโ ๐ components/ # ๐งฉ React Components
โ โ โ โโโ ๐ home.jsx # Landing Page
โ โ โ โโโ ๐ recognize.jsx # Pattern Recognition
โ โ โ โโโ ๐จ AiRecreate.jsx # AI Generation
โ โ โ โโโ ๐ knowledge.jsx # Learning Hub
โ โ โ โโโ ๐ฏ quiz.jsx # Interactive Quizzes
โ โ โ โโโ ๐ analysis.jsx # Analytics Dashboard
โ โ โโโ ๐ services/ # ๐ API Integration
โ โ โโโ ๐ data/ # ๐ Static Data
โ โโโ ๐ฆ package.json # Dependencies & Scripts
โ โโโ โก vite.config.js # Build Configuration
โโโ ๐ Finetuning/ # ๐ง ML Model Training
โ โโโ ๐ฌ finetune.py # Model Fine-tuning Script
โ โโโ ๐ graph.py # Training Visualization
โ โโโ ๐ค kolam_efficientnet_b4.pth # Trained Model Weights
โโโ ๐ tests/ # ๐งช Test Suite
โ โโโ ๐ test_api_endpoints.py # API Integration Tests
โ โโโ ๐ test_kolam_detection.py # AI Detection Tests
โ โโโ ๐จ test_kolam_generation.py # Generation Tests
โโโ ๐ monitoring/ # ๐ Observability Stack
โ โโโ ๐ prometheus.yml # Metrics Configuration
โ โโโ ๐ grafana/ # Dashboard Definitions
โโโ ๐ scripts/ # ๐ ๏ธ Utility Scripts
โ โโโ ๐ inference.py # Model Inference Script
โ โโโ ๐๏ธ init-db.sql # Database Initialization
โ โโโ ๐ง KNOWLEDGE.py # Knowledge Base Setup
โโโ ๐ alembic/ # ๐ Database Migrations
โ โโโ โ๏ธ env.py # Migration Environment
โ โโโ ๐ versions/ # Migration Files
โโโ ๐ณ docker-compose.yml # Multi-Service Orchestration
โโโ ๐ณ Dockerfile # Container Definition
โโโ ๐ pyproject.toml # Python Project Configuration
โโโ ๐ฆ requirements.txt # Python Dependencies
โโโ โ๏ธ alembic.ini # Migration Configuration
โโโ ๐ง Makefile # Development Commands
โโโ ๐ฅ๏ธ dev.bat # Windows Development Script
โโโ ๐ README.md # Project Documentation
๐ Directory Descriptions
Directory | Purpose | Key Files |
---|---|---|
src/api/ |
REST API endpoints and routing | auth.py , kolam.py , learning.py |
src/services/ |
Business logic and service layer | *_service.py files |
src/services/ai/ |
AI/ML processing services | detection_service.py , ollama_service.py |
frontend/SIH-F-main/ |
React frontend application | App.jsx , component files |
Finetuning/ |
Machine learning model training | finetune.py , model weights |
tests/ |
Automated test suite | Test files for all components |
monitoring/ |
Observability and monitoring | Prometheus, Grafana configs |
alembic/ |
Database schema migrations | Version-controlled DB changes |
scripts/ |
Development and deployment utilities | Setup and utility scripts |
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 hooks
kolam-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:
/health
endpoint - 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 from developers, designers, cultural experts, and art enthusiasts! ๐จ
๐ Development Workflow
- ๐ด Fork the repository
- ๐ฟ Create a feature branch:
git checkout -b feature/amazing-feature
- ๐ป Develop your changes with tests
- ๐งช Test your code:
.\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
๐ฏ Contribution Areas
Area | Skills Needed | Impact |
---|---|---|
๐ค AI/ML | TensorFlow, PyTorch, CV | High |
๐ Backend | FastAPI, Python, SQL | High |
โ๏ธ Frontend | React, JavaScript, CSS | High |
๐จ UI/UX | Design, Figma, User Research | Medium |
๐ Documentation | Writing, Markdown | Medium |
๐งช Testing | Pytest, Testing Strategies | Medium |
๐ Cultural Content | Kolam Knowledge, Art History | High |
๐ง DevOps | Docker, CI/CD, Monitoring | Medium |
- Code Quality: Follow PEP 8 for Python, ESLint for JavaScript
- Testing: Write tests for new features and bug fixes
- Documentation: Update docs for any API or feature changes
- Cultural Sensitivity: Respect traditional art forms and cultural significance
- Commit Messages: Use conventional commits format
We especially welcome contributions from:
- Traditional Artists - Share authentic patterns and cultural knowledge
- Art Historians - Provide historical context and regional variations
- Cultural Experts - Ensure accuracy and respectful representation
- Regional Specialists - Add patterns from different Indian states
This project is licensed under the MIT License - see the LICENSE file for details.
- โ Commercial use - Use in commercial projects
- โ Modification - Modify and adapt the code
- โ Distribution - Share and distribute freely
- โ Private use - Use for personal projects
โ ๏ธ Attribution required - Include original license
Name | Role | GitHub | Specialization |
---|---|---|---|
Janhvi Bisht | ๐จ Frontend Lead | @janhvi | React, UI/UX Design |
Kartikeya Trivedi | ๐ง AI/ML Engineer | @Kartikeya-trivedi | Deep Learning, Computer Vision |
Krishna Gupta | ๐ Backend Lead | @krishna | FastAPI, Database Design |
Kushagra Chaudhary | ๐ง DevOps Engineer | @kushagra | Docker, CI/CD, Infrastructure |
Nakshatra Vidyarthi | ๐ฑ Full-stack Developer | @nakshatra | React, Python, API Integration |
Rounak Gope | ๐งช QA Engineer | @rounak | Testing, Quality Assurance |
Channel | Contact | Response Time |
---|---|---|
๐ง Email | [email protected] | 24-48 hours |
๐ Bug Reports | GitHub Issues | 24 hours |
๐ก Feature Requests | GitHub Discussions | 48 hours |
๐ Documentation | Project Wiki | Always Available |
๐จ How accurate is the pattern recognition?
Our EfficientNet-B4 model achieves 95%+ accuracy on traditional Kolam patterns. Accuracy may vary for modern interpretations or incomplete patterns.
๐ Can I use this offline?
Yes! The platform supports offline mode for basic pattern recognition and learning modules. AI-powered features require internet connectivity.
๐ฑ Is there a mobile app?
Currently, we offer a responsive web application. A dedicated mobile app is in our roadmap for 2024.
๐ Is this suitable for children?
Absolutely! The platform is designed to be family-friendly and educational, suitable for ages 8 and up with parental guidance.
๐ 2024 Q1 - Q2
- ๐ฑ Mobile App (React Native)
- ๐ง Advanced AI pattern recognition
- ๐ Multi-language support (Tamil, Telugu, Hindi)
- ๐จ 3D Kolam visualization
- ๐ค Social features and community forums
๐ 2024 Q3 - Q4
- ๐ฅฝ AR/VR integration for immersive learning
- ๐ Educational curriculum for schools
- ๐ฎ Gamification enhancements
- ๐ Global expansion to other traditional arts
- ๐ค AI tutor for personalized guidance
๐ 2025 and Beyond
- ๐งฌ Blockchain for pattern authenticity
- ๐ช Virtual exhibitions and galleries
- ๐ฉโ๐ซ Master craftsperson video tutorials
- ๐ Real-time collaboration on patterns
- ๐ Certification program for traditional arts
- ๐จ Traditional Artists - For preserving and sharing this beautiful art form
- ๐๏ธ Cultural Institutions - For historical patterns and cultural context
- ๐ Open Source Community - For the amazing tools and libraries
- ๐ฅ Beta Testers - For valuable feedback and testing
- ๐ซ Educational Partners - For curriculum guidance and testing
- ๐ป Technology Partners - For infrastructure and AI model support
If you find this project helpful, please consider giving it a โญ
Made with โค๏ธ by the TechTitans team
๐จ Preserving cultural heritage through technology ๐