# Darija AI
A comprehensive annotation platform for Arabic language processing, specializing in Moroccan Darija dialect translation and speech-to-text transcription.
## Overview
Darija AI is designed to facilitate the collection and validation of high-quality training data for Arabic language models, with a special focus on Moroccan Darija (Moroccan Arabic dialect). The platform enables collaborative annotation workflows with role-based access control.
## Architecture
This is a full-stack application with:
- **Backend**: Express.js API server (`/server`)
- **Frontend**: React web application (`/web`)
## Features
### 🎯 Annotation Types
- **Speech-to-Text**: Convert Arabic/Darija audio to text
- **English to Arabic**: Translate English text to Modern Standard Arabic
- **Arabic to Darija**: Translate Modern Standard Arabic to Moroccan Darija
### 👥 User Roles
- **Annotator**: Create and submit annotations
- **Supervisor**: Review, approve, or reject annotations
- **Admin**: Full system access and user management
### 🔄 Workflow Management
- **Pending**: Newly created annotations awaiting review
- **Annotated**: Completed by annotators, pending supervision
- **Confirmed**: Approved by supervisors
- **Rejected**: Rejected by supervisors for quality issues
### 🔐 Authentication & Security
- JWT-based authentication
- Role-based access control
- Secure password hashing
- Session management
## Technology Stack
### Backend
- **Runtime**: Node.js with TypeScript
- **Framework**: Express.js
- **Database**: PostgreSQL with Prisma ORM
- **Authentication**: JSON Web Tokens (JWT)
- **Password Security**: bcryptjs
### Frontend
- **Framework**: React 19 with TypeScript
- **Routing**: TanStack Router
- **Styling**: Tailwind CSS v4
- **UI Components**: Radix UI primitives
- **State Management**: React hooks
- **Build Tool**: Vite
## Quick Start
### Prerequisites
- Node.js 18+
- PostgreSQL database
- npm or yarn
### Project Structure
```
darija-ai/
├── server/ …