Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update algo generation de liens profonds #706

Conversation

antoinebigard
Copy link
Contributor

@antoinebigard antoinebigard commented Oct 18, 2023

How to test POSTMAN

POST https://706.labonnealternance-preview.apprentissage.beta.gouv.fr/api/trainingLinks

[
	{
		"id": "id_unique", // obligatoire technique
		"mef":"",
	  "cfd":"32025014", // absent dans le fichier Affelnet
		"code_postal":"75016", // code postal de l'élève
		"uai_lieu_formation":"0751234A", 
                "uai_formateur":"0751234A", 
                "uai_formateur_responsable":"0751234A",
		"rncp":"RNCP36968", // absent dans le fichier Affelnet
		"cle_ministere_educatif":"088281P01313885594860007038855948600070-67118#L01"
	}
]

Algo

graph TD;
  A((CHERCHE de Formations))
  A1{ClefME définie?}
  A11[Cherche dans le catalogue des Formations sur la ClefME]
  A2{uai_lieu_formation définie?}
  A22[Cherche dans le catalogue des Formations sur l'uai_lieu_formation ET  RNCP OU MEF OU CFD]
A3{uai_formateur définie?}
A33[Cherche dans le catalogue des Formations sur l'uai_formateur ET RNCP OU MEF OU CFD]
A4{uai_formateur_responsable définie?}
A44[Cherche dans le catalogue des Formations sur l'uai_formateur_responsable ET RNCP OU MEF OU CFD]
END1((Formations))
END2((Formations))
END3((Formations))
END4((Formations))
  A --> A1
  A11-->|Aucunes Formations trouvées| A2
  A11 --o|Formations trouvées| END1
  A22 -->|Aucunes Formations trouvées| A3
  A22 --o|Formations trouvées| END2
  A33 -->|Aucunes Formations trouvées| A4
  A33 --o|Formations trouvées| END3
  A44 --o|Aucunes Formations trouvées| END4
  A44 --o|Formations trouvées| END4
  A1--Oui --> A11;
  A1--Non --> A2;
  A2--Oui --> A22;
  A2--Non --> A3;
  A3--Oui --> A33;
  A3--Non --> A4;
  A4--Non --o END4;
  A4--Oui --> A44;

style A fill:#000,color:#fff
style END1 fill:#000,color:#fff
style END2 fill:#000,color:#fff
style END3 fill:#000,color:#fff
style END4 fill:#000,color:#fff
Loading
graph TD

B((CREATION de liens))
B1{Formations trouvées?}
C1{Romes globaux trouvés?}
END0[Retourne /recherche-emploi code romes globaux avec utm]
END[Retourne /recherche-emploi avec utm]
B2{Une seule Formation?}
B21[Formation = Formations0]
D1{Coordonnees geo du jeune définies?}
B31[Formation = Trouve la formation la plus proche du code_insee ou code_postal du jeune]
B4{Coordonnees geo de la Formation définies?}
B41[coordonnées_geo = coordonnées geo de la Formation]
B43{Coordonnees geo du jeune définies?}
B42[coordonnées_geo = coordonnées geo du jeune]
B44[coordonnées_geo = coordonnées geo null]
B5{Codes romes de la Formation définis?}
END2[Retourne /recherche-emploi avec coordonnées_geo et code romes formation avec utm]
B6{Romes globaux trouvés?}
END3[Retourne /recherche-emploi avec coordonnées_geo et code romes globaux avec utm]
END4[Retourne /recherche-emploi avec utm]

B --> B1
B1--Non --> C1
C1--Oui --> END0
C1--Non --> END
B1--Oui --> B2
B2--Oui --> B21
B2--Plusieurs formations --> D1
D1--Oui --> B31
D1--Non --> B4
B21 --> B4
B31 --> B4
B4--Oui --> B41
B4--Non --> B43
B43--Oui --> B42
B43--Non --> B44
B44 --> B5
B41 --> B5
B42 --> B5
B5--Oui --> END2
B5--Non --> B6
B6--Oui --> END3
B6--Non --> END4

style B fill:#000,color:#fff
style END0 fill:#000,color:#fff
style END fill:#000,color:#fff
style END2 fill:#000,color:#fff
style END3 fill:#000,color:#fff
style END4 fill:#000,color:#fff
Loading
graph TD

C((RECHERCHE formation la plus proche))
C1[Cherche les coordonnées_geo_jeune depuis le code_insee ou le code_postal]
C2[Initialise distance_plus_petite à 99999]
C3{Boucle sur les Formations}
C4{Coordonnees geo de la Formation définies?}
C5[Calcule la distance entre coordonnées_geo et coordonnées_geo_jeune]
C6{distance_formation < distance_plus_petite?}
C7[Mise à jour de distance_plus_petite]
END[Retourne la formation à la distance la plus petite]

C --> C1
C1 --> C2
C2 --> C3
C3 --> C4
C4--Oui --> C5
C5 --> C6
C6--Oui --> C7
C6--Non --> C3
C4--Non --> C3
C7 --> C3
C3 -- Fin de la boucle --> END

style C fill:#000,color:#fff
style END fill:#000,color:#fff
Loading

@LeoRadisson
Copy link
Contributor

LeoRadisson commented Oct 18, 2023

Cas 1 censé donner du multi match avec des résultats autour Saint Etienne du rouvray Normandie ( jle jeune se situe aux Ulis).
"code_insee":"91692", // code insee de l'élève
"uai":"0756163S", // Organisme UAI
"rncp":"RNCP1120 ", //

Cas 2 censé donner du multi match avec des résultats autour de Nancy Metz
"code_insee":"67482", // code insee de l'élève
"uai":"0756163S", // Organisme UAI
"rncp":"RNCP1120 ", //

Cas 3 censé donner du multi match avec un résultat france entiere (pas de code commune insee du jeune)
"uai":"0756163S", // Organisme UAI
"rncp":"RNCP1120 ", //

Cas 4 censé donner du single match chocolatier confiseur à montpellier
"uai":"0313056D", // Organisme UAI
"code_insee":"34199", // code insee de l'élève
"cfd":"50022133", // absent dans le fichier Affelnet

Cas 5 censé donner un résultat France entière sur BTS - Maintenance des systèmes (option A : systèmes de production, option B : systèmes énergétiques et fluidiques, option C : systèmes éoliens, option D : systèmes ascenseurs et élévateurs) (couple UAI - RNCP inexistant dans catalogue)
"uai":"0931573E", // Organisme UAI
"rncp":"RNCP36968", //

Test parcoursup
Cas 6 censé donné match exact, Lyon, NRDC, RNCP34030
"uai_formateur":"0694061P", // Organisme formateur UAI
"uai_formateur_responsable"0694061P", //Organisme gestionnaire UAI
"cle_ministere_educatif":"100357P01214779081720006747790817200067-69387#L01", // Clé ME

Cas 7 censé donné match exact, Gestion de la PME mulhouse, Rome M1604, M1501, M1203
"uai_formateur":"", // Organisme formateur UAI
"uai_formateur_responsable"0682019A", //Organisme gestionnaire UAI
"rncp":"RNCP32360", //
"cfd":"32031409", // absent dans le fichier Affelnet
"mef":"3113140921",

Cas 8 censé donné multi match, Recherche France entière (car on a pas le code insee du jeune), mais les 2 formations sont à paris. ASSISTANT DE SERVICE SOCIAL, Rome K1201
"uai_formateur":"0754696X", // Organisme formateur UAI
"uai_formateur_responsable"", //Organisme gestionnaire UAI
"rncp":"", //
"cfd":"26033205", // absent dans le fichier Affelnet
"mef":"",

Piste d'amélioration quand les multi match sont dans un même rayon de moins de 30km, à traiter comme du single match

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 1 censé donné du multi match avec des résultats autour de l'IDF (Les Ulis)

Payload

[
    {
        "id": "unq",
        "code_insee": "91692",
        "uai_lieu_formation": "0756163S",
        "uai_formateur": "0756163S",
        "uai_formateur_responsable": "0756163S",
        "rncp": "RNCP1120"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=N1103%2CN1303&lat=49.372326&lon=1.091542&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 2 censé donner du multi match avec des résultats autour de Nancy Metz

Payload

[
    {
        "id": "unq",
        "code_insee": "67482",
        "uai_lieu_formation": "0756163S",
        "uai_formateur": "0756163S",
        "uai_formateur_responsable": "0756163S",
        "rncp": "RNCP1120"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=N1103%2CN1303&lat=48.667158&lon=6.204445&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 3 censé donner du multi match avec un résultat france entiere (pas de code commune insee du jeune)

Payload

[
    {
        "id": "unq",
        "uai_lieu_formation": "0756163S",
        "uai_formateur": "0756163S",
        "uai_formateur_responsable": "0756163S",
        "rncp": "RNCP1120"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=N1103%2CN1303&lat=49.19703&lon=-0.4030764&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 4 censé donner du single match chocolatier confiseur à montpellier

Payload

[
    {
        "id": "unq",
        "uai_lieu_formation": "0313056D",
        "uai_formateur": "0313056D",
        "uai_formateur_responsable": "0313056D",
        "code_insee":"34199",
        "cfd":"50022133"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=D1104&lat=42.7841413&lon=2.8971575&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 5 censé donner un résultat France entière sur BTS - Maintenance des systèmes (option A : systèmes de production, option B : systèmes énergétiques et fluidiques, option C : systèmes éoliens, option D : systèmes ascenseurs et élévateurs) (couple UAI - RNCP inexistant dans catalogue)

Payload

[
    {
        "id": "unq",
        "uai_lieu_formation": "0931573E",
        "uai_formateur": "0931573E",
        "uai_formateur_responsable": "0931573E",
        "rncp": "RNCP36968"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "/recherche-emploi?romes=I1302%2CI1309%2CI1304%2CI1310&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 6 censé donné match exact, Lyon, NRDC, RNCP34030 (test parcoursup)

Payload

[
    {
        "id": "unq",
        "uai_formateur": "0694061P",
        "uai_formateur_responsable": "0694061P",
        "cle_ministere_educatif": "100357P01214779081720006747790817200067-69387#L01"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "https://labonnealternance.apprentissage.beta.gouv.fr/espace-pro/form?referrer=lba&cleMinistereEducatif=100357P01214779081720006747790817200067-69387%23L01&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=D1401%2CM1704%2CD1406%2CD1501%2CM1703&lat=45.75293&lon=4.84779&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 7 censé donné match exact, Gestion de la PME mulhouse, Rome M1604, M1501, M1203 (test parcoursup)

Payload

[
    {
        "id": "unq",
        "uai_formateur_responsable": "0682019A",
        "rncp": "RNCP32360",
        "cfd": "32031409",
        "mef": "3113140921"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=M1604%2CM1501%2CM1203&lat=47.751678&lon=7.326517&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@antoinebigard
Copy link
Contributor Author

antoinebigard commented Oct 18, 2023

Cas 8 censé donné multi match, Recherche France entière (car on a pas le code insee du jeune), mais les 2 formations sont à paris. ASSISTANT DE SERVICE SOCIAL, Rome K1201

Payload

[
    {
        "id": "unq",
        "uai_formateur":"0754696X",
        "cfd": "26033205"
    }
]

Result

[
    {
        "id": "unq",
        "lien_prdv": "",
        "lien_lba": "https://labonnealternance.apprentissage.beta.gouv.fr/recherche-emploi?romes=K1201&lat=48.870788&lon=2.370275&radius=60&utm_source=lba&utm_medium=email&utm_campaign=promotion-emploi-jeunes-voeux"
    }
]

@github-actions
Copy link

@antoinebigard antoinebigard merged commit 3af5850 into main Oct 18, 2023
6 of 8 checks passed
@antoinebigard antoinebigard deleted the LBAC-1390-Enrichir-la-m-canique-de-g-n-ration-de-lien-profond-dans-notre-API-pour-BAL branch October 18, 2023 12:09
@github-actions
Copy link

🎉 This PR is included in version 1.123.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants