API SIMEON - Documentation
Simeon est une application conçue pour simplifier l'organisation et le suivi de voyages, qu'ils soient en solo ou en groupe. Grâce à une interface intuitive, l'application offre :
- Gestion des itinéraires (création, modification, visualisation).
- Suivi des dépenses avec catégorisation et analyse en temps réel.
- Collaboration entre utilisateurs (voyages partagés, invitations, rôles et permissions).
- Gestion des messages et notifications.
- Et bien plus encore.
Lien vers le dépôt Github : https://github.com/Mousedlf/simeon-backend
Remarque :
Lorsque 🔒 Auth requis est indiqué, vous devez inclure un Bearer Token dans
l'en-tête Authorization de votre requête.
Authentification
POST
/register
Créer un compte
Enregistrer un nouveau utilisateur dans le système
{
"username": "test",
"email": "test@mail.com",
"password": "test"
}
POST
/api/login_check
Obtenir un token
Se connecter et récupérer un JWT pour les requêtes authentifiées
{
"username": "test",
"password": "test"
}
Utilisateurs
GET
/api/user/profile
🔒 Auth requis
Profil utilisateur
Récupérer les informations du profil de l'utilisateur connecté
GET
/api/user/{id}/edit/visibility
🔒 Auth requis
Modifier la visibilité
Changer la visibilité du profil utilisateur
POST
/api/user/{id}/edit/username
🔒 Auth requis
Modifier le nom d'utilisateur
Changer le nom d'utilisateur du compte
{
"username": "nouveau_nom"
}
GET
/api/user/all/public
Utilisateurs publics
Récupérer la liste de tous les utilisateurs publics
Participants
POST
/api/trip/{id}/add-people
🔒 Auth requis
Inviter des personnes
Inviter des personnes à rejoindre un voyage
{
"message": "coucou",
"people": [
{
"userId": 7,
"statusId": 2
},
{
"userId": 3,
"statusId": 1
},
]}
POST
/api/trip/{id}/remove-people
🔒 Auth requis
Retirer des personnes
Retirer des personnes d'un voyage
{
"peopleIds": [6, 5]
}
GET
/api/invite/all/user/{id}
🔒 Auth requis
Voir les invitations
Récupérer toutes les invitations d'un utilisateur
GET
/api/invite/{id}/accept
🔒 Auth requis
Accepter invitation
Accepter une invitation à un voyage
GET
/api/invite/{id}/decline
🔒 Auth requis
Refuser invitation
Refuser une invitation à un voyage
POST
/api/trip/{id}/change-permissions
🔒 Auth requis
Changer permissions
Modifier les permissions des participants d'un voyage
{
"participants": [
{
"userId": 1,
"statusId": 3
}
]}
GET
/api/invite/{id}/retract
🔒 Auth requis
Annuler invitation
Annuler une invitation envoyée
Dépenses
GET
/api/expense/all/trip/{id}
🔒 Auth requis
Toutes les dépenses
Récupérer toutes les dépenses d'un voyage
POST
/api/expense/new/trip/{id}
🔒 Auth requis
Ajouter une dépense
Créer une nouvelle dépense pour un voyage
{
"dayOfTrip": null,
"amountLocalCurrency": 1.25,
"currency": 1,
"divide": false,
"name": "thé",
"paidBy": 4,
"divideBetween": [7, 4],
"paymentMethod": null,
"personal": true,
"category": 2
}
GET
/api/expense/all/trip/{id}/day/{day}
🔒 Auth requis
Dépenses d'un jour
Récupérer toutes les dépenses communes d'un jour spécifique
GET
/api/expense/all/trip/{id}/personal
🔒 Auth requis
Dépenses personnelles
Récupérer toutes les dépenses personnelles d'un voyage
GET
/api/expense/all/trip/{id}/day/{day}/with-personal
🔒 Auth requis
Dépenses jour + personnelles
Récupérer toutes les dépenses (communes et personnelles) d'un jour
DELETE
/api/expense/{id}/delete
🔒 Auth requis
Supprimer dépense
Supprimer une dépense existante
PUT
/api/expense/{id}/edit
🔒 Auth requis
Modifier dépense
Modifier une dépense existante
{
"dayOfTrip": null,
"amountLocalCurrency": 1.25,
"currency": 1,
"divide": false,
"name": "thé",
"paidBy": 4,
"divideBetween": [7, 4],
"paymentMethod": null,
"personal": true,
"category": 2
}
PUT
/api/expense/trip/{id}/budget
🔒 Auth requis
Définir budget
Définir le budget personnel pour un voyage
{
"budget": 465
}
Voyages
GET
/api/trip/all/{userId}
🔒 Auth requis
Tous les voyages
Récupérer tous les voyages d'un utilisateur
GET
/api/trip/{id}
🔒 Auth requis
Un voyage
Récupérer les détails d'un voyage spécifique
POST
/api/trip/{id}/image
🔒 Auth requis
Ajouter image
Ajouter une image à un voyage (multipart/form-data)
POST
/api/trip/new
🔒 Auth requis
Créer voyage
Créer un nouveau voyage
{
"name": "Mallorca 2.0",
"description": "repos, plage et allemands",
"startDate": "2025-06-01",
"endDate": "2025-06-02",
"public": false
}
DELETE
/api/trip/{id}/delete
🔒 Auth requis
Supprimer voyage
Supprimer un voyage existant
PUT
/api/trip/{id}/edit
🔒 Auth requis
Modifier voyage
Modifier les informations textuelles d'un voyage
{
"name": "Francfort",
"description": "Séjour à la maison"
}
DELETE
/api/trip/delete
🔒 Auth requis
Supprimer plusieurs voyages
Supprimer plusieurs voyages en une fois
{
"tripIds": [3, 4]
}
PUT
/api/trip/{id}/edit-dates
🔒 Auth requis
Modifier dates
Modifier les dates de début et de fin d'un voyage
{
"startDate": "2025-09-10",
"endDate": "2025-09-20"
}
GET
/api/trip/{id}/invitable-people
🔒 Auth requis
Personnes invitables
Récupérer la liste des personnes pouvant être invitées à un voyage
Conversations
GET
/api/conversation/{id}
🔒 Auth requis
Une conversation
Afficher une conversation spécifique
GET
/api/conversation/all
🔒 Auth requis
Toutes les conversations
Récupérer toutes les conversations d'un utilisateur
POST
/api/conversation/{id}/message/new
🔒 Auth requis
Nouveau message
Envoyer un nouveau message dans une conversation
{
"content": "le contenu du message"
}
PUT
/api/conversation/{id}/message/{messageId}/edit
🔒 Auth requis
Modifier message
Modifier un message existant dans une conversation
{
"content": "contenu modifié"
}
Activités
GET
/api/trip/{tripId}/day/{day}
🔒 Auth requis
Activités d'un jour
Récupérer les activités d'une journée spécifique
POST
/api/activity/new/trip/{tripId}/day/{day}
🔒 Auth requis
Ajouter activité
Ajouter une nouvelle activité à une journée
{
"name": "Tour eiffel",
"address": "Av. Gustave Eiffel, 75007 Paris",
"category": 20,
"longitude": 2.2945006,
"latitude": 48.8582599,
"note": "classique"
}
PUT
/api/activity/edit/{id}/trip/{tripId}/day/{day}
🔒 Auth requis
Modifier activité
Modifier une activité existante
{
"name": "Bourse du Commerce",
"address": "2 Rue de Viarmes, 75001 Paris",
"category": 17,
"longitude": 2.3428364,
"latitude": 48.8628174,
"note": "bols in the water"
}
DELETE
/api/activity/{id}/trip/{tripId}/delete
🔒 Auth requis
Supprimer activité
Supprimer une activité d'un voyage
POST
/api/activity/trip/{tripId}/day/{day}/reorder
🔒 Auth requis
Réorganiser activités
Réorganiser l'ordre des activités d'une journée
{
"order": [2, 1]
}
Devises
GET
/api/currency/all
🔒 Auth requis
Toutes les devises
Récupérer la liste de toutes les devises disponibles
Catégories
GET
/api/category/all/expense
🔒 Auth requis
Catégories de dépenses
Récupérer toutes les catégories disponibles pour les dépenses