Skip to content

alansyahmi/il-migma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Il-Miġma’

Il-Miġma’ is an AI-assisted Maltese lexical platform that combines a dictionary, morphology engine, root explorer, and learning workspace into one research-grade interface.

Il-Miġma’ ("the collection") is built for people who need more than basic definitions: linguists, language learners, educators, lexicographers, and developers building Maltese language tools.

Who it is for

  • Learners who want dictionary entries with morphology, roots, IPA, and usage context.
  • Researchers and linguists who need searchable Semitic root structure and derivational patterns.
  • Teachers and course builders who need structured lexical data for drills and learning content.
  • Contributors and editors who need an admin workflow for curating entries, roots, and suggestions.
  • Developers who want to reuse lexical search and structured morphology through API endpoints.

Core features

  • Dictionary search with exact, full-text, gloss, and word-form dimensions.
  • Root explorer for Semitic consonantal roots, patterns (wiżen), and derived forms.
  • Conjugation engine that uses root class + vowel sets for generated verb paradigms.
  • Browse mode for discovery-based exploration beyond direct search.
  • Learning surfaces such as course/blog pages and scaffolded lexical navigation.
  • AI chatbot assistant for guided lexical lookup and user support.
  • Admin workspace for content curation, relationships, and database tooling.
  • Suggestion pipeline for community contribution and moderation.

Product surfaces at a glance

  • /search — dictionary lookup
  • /root-search and /root/:id — root and pattern exploration
  • /conjugator — morphology/conjugation exploration
  • /chatbot — AI assistant surface
  • /browse — exploratory lexical browsing
  • /admin — editorial + data maintenance workspace
  • /suggest — suggestion intake

Stack

  • Frontend: React 19 + TypeScript + Vite + React Router + Tailwind CSS.
  • Auth: Clerk.
  • Backend: Cloudflare Pages Functions (functions/api/*).
  • Database: Turso (libSQL / SQLite-compatible schema).
  • AI integration: Gemini via @google/generative-ai.
  • Storage: Cloudflare R2 integration support for audio and media workflows.

Data model highlights

The linguistic model separates abstract morphology from surface forms:

  • roots store consonantal skeletons (e.g. k-t-b) and class metadata.
  • patterns store CV/wiżen templates.
  • root_pattern_forms join roots + patterns into realizations.
  • entries store the actual dictionary headwords and lexical attributes.
  • definitions, phonetics, etymologies, dialect_variants layer meaning and evidence.

This makes Il-Miġma’ both searchable for end users and reusable as structured lexical infrastructure.

For contributor-level docs, see:

Screenshots / demo tour

Recommended: replace these with GIFs as workflows stabilize.

Surface Preview
Home public/screenshots/home.png
Search public/screenshots/search.png
Root Search public/screenshots/root-search.png
Conjugator public/screenshots/conjugator.png
Chatbot public/screenshots/chatbot.png
Browse public/screenshots/browse.png
Admin public/screenshots/admin.png
Suggest public/screenshots/suggest.png

Local setup

1) Install dependencies

npm install

2) Configure environment

Create .env in the project root:

VITE_TURSO_URL=libsql://<your-db>.turso.io
VITE_TURSO_AUTH_TOKEN=<token>
VITE_CLERK_PUBLISHABLE_KEY=<clerk_publishable_key>
GEMINI_API_KEY=<gemini_key_if_using_chat>

For wrangler pages dev (npm run dev:api), copy .dev.vars.example to .dev.vars and set Worker runtime vars:

TURSO_URL=libsql://<your-db>.turso.io
TURSO_AUTH_TOKEN=<token>
CLERK_SECRET_KEY=dummy

file:// database URLs are not supported by the Worker runtime. Use remote libsql:// or https:// when running the API locally with Wrangler.

3) Run the frontend

npm run dev

4) Run Cloudflare Pages Functions locally

npm run dev:api

5) Optional: import lexical data

npm run import:dry
npm run import:all

Docs index

About

An AI-assisted Maltese lexical platform that combines a dictionary, morphology engine, root explorer, and learning workspace into one research-grade interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors