Logo Lanfrica

panasheMuriro/HomweDatabase

Domain:

natural language processing

Record type:

software
Creator:
pan
Host:
πŸ‡ΏπŸ‡Ό HomweDB is a database query language that uses Shona language constructs. It provides an intuitive way to interact with databases using familiar Shona terms, making database operations more accessible to Shona speakers. # Homwe Database Language ## 🌍 Overview **Homwe** is a database query language that uses Shona language constructs. It provides an intuitive way to interact with databases using familiar Shona terms, making database operations more accessible to Shona speakers. ## TRY IT HERE: homwe-db.pages.dev ### ✨ Features - πŸ“ **Shona-based syntax** - Use natural Shona language constructs for database operations - 🎨 **Web-based editor** - Full-featured Monaco editor with syntax highlighting - πŸ” **Real-time execution** - See query results instantly - πŸ“Š **Table visualization** - Clean, formatted output for query results - πŸ› οΈ **CRUD operations** - Complete Create, Read, Update, Delete functionality - πŸ§ͺ **Comprehensive testing** - Full test suite using Vitest ## πŸš€ Quick Start ### Prerequisites - Node.js (v16 or higher) - npm or yarn ### Installation ```bash # Clone the repository git clone github.com cd homwe # Install dependencies npm install # Build the grammar npm run build # Run tests npm test # Start the web editor npm run dev ``` ## πŸ“– Language Guide ### Creating a Collection ```homwe mu homwe mune users ``` ### Defining Columns ```homwe // You can use any of these variants: users vane name, age, email users dzine employeeId, department ``` ### Inserting Data ```homwe isa ("John", 25, "john@email.com") mu users isa ("Jane", 30, "jane@email.com") mu users ``` ### Selecting Data ```homwe // Select all columns zvese kubva mu users // Select specific columns (name, age) kubva mu users // With WHERE clause zvese kubva mu users ane age = 25 zvese kubva mu users vane name = "John" // With LIMIT zvese kubva mu users 5 ``` ### Updating Data ```homwe chinja age kuita 26 ane name = "John" chinja email kuita "newemail@test.com" vane age = 30 ``` ### Deleting Data ```homwe bvisa users ane age = 25 bvisa users vane name = "John" ``` ## πŸ”§ Development ### Building the Grammar After modifying `Homwe.g4`: …