Logo Lanfrica

kdarwish00/speak-arabi

Domaine:

natural language processing

Type de record:

software
Créateur:
kda
Hôte:
# Speak Arabi - Egyptian Arabic Vocabulary Learning App A simple web application for learning Egyptian Arabic vocabulary with flashcards and spaced repetition. ## Features - **Word Bank**: Create, edit, and delete words with Arabic script, transliteration, and English meanings - **Categories**: Organize words into custom categories - **Audio Pronunciation**: Upload and play audio pronunciations for words - **Flashcard Learning**: Practice words with interactive flashcards - **Spaced Repetition Review**: Anki-style review system with SM-2 algorithm ## Tech Stack - **Framework**: Next.js 16 (App Router) - **Language**: TypeScript - **Database**: Supabase (PostgreSQL) - **Media Storage**: Cloudinary (for audio) - **Styling**: Tailwind CSS + shadcn/ui - **Validation**: Zod + React Hook Form ## Prerequisites - Node.js 18+ and npm - Supabase account and project - Cloudinary account (for audio uploads) ## Setup Instructions ### 1. Install Dependencies ```bash npm install ``` ### 2. Environment Variables Create a `.env.local` file in the root directory: ```env # Supabase Configuration NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # Cloudinary Configuration (optional, for audio uploads) CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret ``` ### 3. Database Setup 1. Create a new Supabase project 2. Run the migration files in order: - `supabase/migrations/001_initial_schema.sql` - Creates base tables - `supabase/migrations/003_simplify_remove_auth.sql` - Removes user authentication The migration creates the following tables: - `categories` - Word categories - `words` - Vocabulary words - `word_categories` - Many-to-many relationship between words and categories - `review_sessions` - Spaced repetition data ### 4. Run Development Server ```bash npm run dev ``` Open localhost in your browser. ## Projec …