RESTful API for NoukatTN β a Full Stack project for the Tunisian jokes' culture.
# Tunisian Jokes API (Noukat.tn)
> **Academic Project** - REST API for managing and serving Tunisian jokes in Tunisian dialect (Darija) with AI-powered translation and semantic search capabilities.
## π Table of Contents
- Overview
- Features
- Tech Stack
- Prerequisites
- Quick Start
- Running Guide
- API Endpoints
- AI Features
- Project Structure
- Environment Variables
- Database Schema
- Testing
- Troubleshooting
- Documentation
## π― Overview
Noukat.tn is a comprehensive REST API designed to preserve and share Tunisian humor in the Tunisian dialect (Darija). The platform features modern AI capabilities for intelligent search and culturally-aware translation, making Tunisian jokes accessible to a global audience while maintaining their cultural context and humor.
**Course**: API Development
**Technology Focus**: RESTful APIs, JWT Authentication, AI Integration, Microservices Architecture
## β¨ Features
### Core Features
- π **JWT Authentication** - Secure user registration and login
- π **Joke Management** - Submit, approve, and moderate jokes
- β **Rating System** - Like/dislike functionality with engagement tracking
- π― **Daily Joke** - Automatic joke rotation for featured content
- π **Advanced Filtering** - Search by category, length, and popularity
- π¨βπΌ **Admin Panel** - Complete content moderation dashboard
- π **Auto-generated OpenAPI** - Interactive Swagger UI documentation
### AI-Powered Features
- π€ **Semantic Search** - Natural language search in English, French, Arabic, or Tunisian dialect
- π **Smart Translation** - AI translates jokes with cultural context and humor explanations
- π° **Cost-Efficient Design** - Only queries are sent to LLM, not the entire database
- π **Cultural Preservation** - Maintains humor context across languages
## π οΈ Tech Stack
| Component | Technology |
|-----------|------------|
| **Backend** | Python 3.11+, Flask 3.0, Flask-SMOREST |
| **Database** | PostgreSQL 15 / SQLite (dev) |
| **ORM** | SQLAlchemy with Fl β¦