# somali-to-somali-dictionary
A full-stack Somali language platfrom that provides structured Somali-to-Somali lexical defintions, built from raw dicionary data through custom parsing and normalization pipeline. It's live at qaamuuska soomaliga.
## Overview
This project is a part of a broader initiative to build high-quality language infrastructure for Somali language.s
It transforms unstructed, old noisy dictionary sources (PDFs/text/) into queryable, structured API, powering a responsive frontend with real-time suggestions.
## Features
- Word lookup with structured definitions.
- Real-time suggestions (autocomplete).
- Custom parsing pipeline for messy linguistic data.
- Relational schema for entries, senses, synonyms, and examples.
- Frontend + API integration.
- API Key-protected backend
- proxy servers in the frontend to get around CORS issues.
## Architecture
```
Raw Dictionary (PDF / Text / manually entered examples)
ㅤㅤㅤㅤㅤㅤ↓
Parsing & Cleaning Scripts
ㅤㅤㅤㅤㅤㅤ↓
Structured JSON / Data Models
ㅤㅤㅤㅤㅤㅤ↓
SQLite Database
ㅤㅤㅤㅤㅤㅤ↓
FastAPI Backend
ㅤㅤㅤㅤㅤㅤ↓
Next.js Frontend (Proxy Layer)
```
This will be the chain of processing, once a request is made by the user.
`Frontend → API → Database → Data Pipeline`
The UI sends the user input to the proxy layer. The proxy layer sends the query and API key to the backend routes. the backend route veryfies the API key and goes into data layer and retrieves the data. Thre process is reversed until the user receives the data in the UI.
## Components
- #### Parsing Layer
- Extracts, merges, and cleans data
- Handles mutliple sense entries, examples, and linguistic markers
- #### Database Layer
- SQLite with relational schema with `entries`, `senses`, `examples`, and `cross_refs` tables.
- #### Backend (FastAPI)
- Query endpoints for lookup and suggestions
- API key authentication
- Structured JSON Response defined with `Pydantic` ensuring response confirms to expected format.
- #### Frontend (Next.js)
- Debounc …