Skip to content

Programme pour une entreprise. Objectif, gérer un token associé à un email avec une ligne de commande et de même pour donner un text justifié / token. Limite de caractère/ligne et limite de mot/jour

Notifications You must be signed in to change notification settings

AzraKaynAxel/API_TicTacTrip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Justification de Texte - TicTacTrip

API REST développée avec Express.js et TypeScript pour la justification de texte avec authentification par token.

📋 Description

Cette API permet de :

  • Générer un token d'authentification unique par email
  • Justifier un texte selon des règles spécifiques (80 caractères par ligne)

🚀 Installation

Prérequis

  • Node.js (version 14 ou supérieure)
  • npm ou yarn

Étapes d'installation

  1. Cloner le projet (ou naviguer vers le répertoire)
cd TicTacTrip_test
  1. Installer les dépendances
npm install
  1. Dépendances TypeScript
npm init -y

npm i express

npm i -D typescript ts-node-dev @types/express @types/node

npx tsc --init

🔧 Configuration

Le projet utilise TypeScript. La configuration se trouve dans tsconfig.json.

💻 Utilisation

Démarrer le serveur en mode développement

npm run dev

Le serveur démarre sur http://localhost:3000

📡 Endpoints

1. GET /

Route de base pour vérifier que l'API fonctionne.

Réponse :

Hello from API 👋

2. POST /api/token

Génère et retourne un token d'authentification unique.

Body requis :

{
  "email": "user@example.com"
}

Commande pour génrer un token :

Invoke-RestMethod -Method Post -Uri http://localhost:3000/api/token -ContentType "application/json" -Body '{"email":"user@example.com"}'

Réponse en cas de succès (200) :

{
  "token": "token"
}

Ou token est une chaîne de caractère

Réponse en cas d'erreur (400) :

{
  "error": "email is required"
}

3. POST /api/justify

Justifie un texte avec une largeur maximale de 80 caractères par ligne.

Headers requis :

Authorization: Bearer <votre_token>
Content-Type: text/plain

Body : Texte brut à justifier

Réponse en cas de succès (200) : Texte justifié avec des lignes de 80 caractères maximum

Réponse en cas d'erreur (401) :

{
  "error": "Unauthorized"
}

Réponse en cas de dépassement de limite (402) :

{
  "error": "Payment Required - Word limit exceeded"
}

� Gestion des Tokens

Le système implémente les fonctionnalités suivantes pour la gestion des tokens :

  • Génération de token : Création d'un token unique hexadécimal pour chaque email
  • Validation de token : Vérification de l'existence d'un token
  • Rate Limiting : Limite de 80,000 mots par token par jour
  • Comptage de mots : Suivi du nombre de mots traités par token

📝 Justification de Texte

Le système de justification implémente :

  • Comptage de mots : Fonction pour compter le nombre de mots dans un texte
  • Justification : Formatage du texte avec :
    • Maximum de 80 caractères par ligne
    • Découpage intelligent des mots
    • Préservation de l'intégrité des mots
    • Gestion des espaces entre les mots

�🛠️ Technologies utilisées

  • Express.js : Framework web pour Node.js
  • TypeScript : Sur-ensemble de JavaScript typé
  • tsx : Outil pour exécuter TypeScript directement
  • ts-node-dev : Outil de développement pour TypeScript
  • node:crypto : Module pour la génération de tokens sécurisés

👤 Auteur

AzraKayn/Axel

About

Programme pour une entreprise. Objectif, gérer un token associé à un email avec une ligne de commande et de même pour donner un text justifié / token. Limite de caractère/ligne et limite de mot/jour

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published