milestone: adding style template for the whole document

This commit is contained in:
Freezlex 2024-07-17 23:08:37 +02:00
parent 5284cf2e51
commit 9d1fa3d9d0
11 changed files with 333 additions and 29 deletions

35
bibliographie.yml Normal file
View File

@ -0,0 +1,35 @@
bienvenue-groupe-uem:
type: book
title: Bienvenue dans le groupe UEM
date: 2022-02
organization: Groupe UEM
affiliated:
- role: compiler
names: Phixso Communication
note: Livret d'accueil des apprentis, intérimaires et stagiaires
decouvrir-groupe-uem:
type: web
title: Découvrir le Groupe UEM
date: 2023
organization: Groupe UEM
url: https://www.uem-metz.fr/nous-decouvrir/
organigramme-groupe-uem:
type: report
title: Organigramme du Groupe UEM
date: 2022
organization: Groupe UEM
clients-efluid:
type: web
title: Nos clients
date: 2023
organization: Efluid SAS
url: https://www.efluid.com/corporate/nos-clients/
chiffres-efluid:
type: report
title: L'essentiel des chiffres Efluid 2020
date: 2020
organization: Groupe UEM

BIN
chapters/contexte.pdf Normal file

Binary file not shown.

View File

@ -18,7 +18,7 @@ Après l'obtention de mon baccalauréat scientifique, j'ai intégré l'UHA 4.0 p
Après l'obtention de ma Licence, j'ai décidé de poursuivre en master à l'UHA 4.0 pour compléter mes acquis et acquérir de nouvelles compétences. Cette formation en alternance privilégie le temps en entreprise, passant de 6 à 9 mois.
Durant ma première année en DU 4.0.4, j'ai eu l'opportunité d'aborder des sujet complexes d'algorithmie, d'intelligence artificielle, de fouille de données et quelques notions de sécurité informatique.
Pour mettre en pratique nos acquis lors des topos nous réalisons, en groupe de 3 élèves, un fil-rouge regroupant les connaissances acquises dans un sujet concret. Durant cette première année, nous avons pu mettre en place un système de suivi et d'alerte de l'état d'une plante par analyse d'images, relevé de données environnementales, algorithmes de prédiction, ...
Pour mettre en pratique nos acquis lors des topos nous réalisons, en groupe de 3 élèves, un fil-rouge regroupant les connaissances acquises dans un sujet concret. Durant cette première année, nous avons pu mettre en place un système de suivi et d'alerte de l'état d'une plante par analyse d'./images, relevé de données environnementales, algorithmes de prédiction, ...
== L'entreprise

Binary file not shown.

View File

@ -1,3 +1,4 @@
#pagebreak(weak: true)
= Etat de l'art
== PostgreSQL, un système open source
@ -36,8 +37,8 @@ PostgreSQL est un SGBDR@SGBDR_def très populaire pour plusieurs raisons:
- Le système au complet est très flexible, grâce à son architecture modulaire et à son support des extensions. Il peut s'adapter à de nombreux types d'applications et de besoins, notement pour des applications géographiques avec des besoins plus complets.
- De pars sa nature open source, il est compatible avec de nombreux langages de programmation, tels que Python, Java, C++, Ruby, PHP, etc.
Il est également important de noter que PostgreSQL tient sa popularité, au delà de ses performances et fonctionnalités déjà complètes, de par sa capacité à gérer des types de données bien plus complexes. PostgreSQL propose la gestion de modèles de données complexes tel que des données géographiques et des données attributaires, mais permet surtout de gérer les relations entre ces données.
Cette gestions de données complexe permet une ouverture sur d'autre système, notement QGIS, un système d'informations géographiques et ainsi d'étendre les fonctionnalités proposées par ce système.
Il est également important de noter que PostgreSQL tient sa popularité, au delà de ses performances et fonctionnalités déjà complètes, de par sa capacité à gérer des types de données bien plus complexes. Il propose la gestion de modèles de données complexes tel que des données géographiques et des données attributaires, mais permet surtout de gérer les relations entre ces données.
Cette gestions de données complexe permet une ouverture sur d'autre système, notamment QGIS, un système d'informations géographiques, et ainsi d'étendre les fonctionnalités proposées par ce système.
En type de fichiers volumineux, on peut par exemple citer les fichiers MAJICS, RPG, référetiels vecteurs, ...
=== Les inconvénients de PostgreSQL
@ -56,3 +57,5 @@ PostgreSQL présente également quelques inconvénients qu'il faut prendre en co
=== Conclusion
PostgreSQL est un SGBDR@SGBDR_def open source très populaire, grâce à sa fiabilité, sa robustesse, sa richesse fonctionnelle et sa flexibilité. Il est utilisé dans de nombreux domaines, tels que la finance, la santé, l'éducation, le gouvernement, etc. Il est également compatible avec de nombreux langages de programmation et de nombreux systèmes d'exploitation. Cependant, il peut être plus complexe à installer et à configurer que d'autres SGBDR@SGBDR_def et nécessiter plus de ressources matérielles. Malgré ces inconvénients, PostgreSQL reste un choix idéal pour de nombreuses applications critiques et environnements complexes.
== Des outils de migration

View File

@ -1,11 +0,0 @@
= Introduction
Après avoir réalisé mon parcours de license professionnelle "Développeur nformatique" au sein de l'UHA
et obtenu mon diplôme, j'ai souhaité approfondir mes connaissance en rejoignant le cursus master proposé
par l'UHA 4.0 qui fait suite à la license.
Mon parcours de master à été réalisé au sein de l'entreprise Unit Solutions basée à Allschwil en Suisse, qui s'était déjà proposée de me suivre dans mon cursus universitaires pour les deux années précédentes. Mes contributions principales se sont orientées sur le projet InfSuite et l'environnement l'entourant. L'application pour laquelle j'ai pu apporter ma contribution à comme objectif premier de gérer le suivi et la maintenance d'état d'ouvrages d'art.
Dans ce mémoire je vous présenterais les détails du projet InfSuite et de ma ccontribution au projet. J'ai principalement eu pour objectif de planifier et de réaliser une migration de base de données. En effet, la base de données étant un point clef de l'application, une maintenance de cette dernière est nécessaire pour assurer une certaine pérennité de l'application. Cette étape de migraton s'inscrit dans un projet de maintenir les technologies de l'application à jour et de permettre de palier à d'autres problèmes.
Dans ce document je commencerais par présenter ce qui m'a amené à rejoindre le cursus master et les compétence acquises durant ma formation, j'aborderais par la suite les enjeux et le plan d'action de la migrationet, puis j'expliquerais la réalisation et les problèmes rencontrer et enfin je pourrais conclure ce document.

View File

@ -1,12 +0,0 @@
= Remerciements
Jaimerais remercier monsieur le directeur dUnit Solutions M. Thierry MOEBEL pour mavoir donné lopportunité de rejoindre lentreprise et deffectuer ma première année de master en alternance. Je le remercie également d'avoir pris en compte mes intérêts en me confiant un projet captivant, correspondant parfaitement aux attentes de mon année. De plus, je suis reconnaissant qu'il ait prolongé mon contrat pour l'année prochaine, me permettant ainsi de me lancer dans le monde du travail et de poursuivre mon évolution au sein de l'entreprise.
Je souhaite exprimer ma gratitude envers M. Cédric MARTIN, mon tuteur en entreprise, pour son accompagnement tout au long de l'année sur le projet. Sa transmission de connaissances techniques et ses explications sur l'architecture et le fonctionnement du projet ont été d'une grande aide pour moi.
Je remercie chaleureusement tous mes collègues chez Unit Solutions pour leur partage de connaissances, leur bonne humeur et leur soutien.
Je tiens à exprimer ma reconnaissance envers toute l'équipe pédagogique de l'UHA 4.0, notamment M. Mounir ELBAZ, M. Pierre-Alain MULLER, M. Florent BOURGEOIS, M. Daniel DA FONSECA, M. Pierre SCHULLER et Mme. Audrey, ainsi que les étudiants de l'UHA 4.0. Leur soutien, leur partage de connaissances, leur accompagnement et leurs conseils au long de l'année m'ont permis de mener à bien mon projet professionnel.
Enfin, je souhaite exprimer ma gratitude envers les relecteurs de ce rapport pour
leurs précieux conseils, qui m'ont permis de mener à bien lécriture de ce
rapport.

BIN
main.pdf

Binary file not shown.

View File

@ -1,6 +1,46 @@
#include "chapters/remerciements.typ"
#import "template.typ": *
#include "chapters/introduction.typ"
#show: rapport.with(
title: "Migration de bases de données",
color: rgb(10, 19, 89),
company: (
name: "Unit Solutions AG",
logo: "images/premiere-page/logo-efluid.png",
tutor: "M. Cédric Martin"
),
degree: "Master informatique et mobilité",
promotion: (title: "UHA 4.0.5", year: 2024),
acronyms: (
"sample": ("sample")
),
glossary: (
"sample": ("sample")
),
hayagriva-bibliography: "bibliographie.yml",
thanks: [
J'aimerais remercier monsieur le directeur d'Unit Solutions M. Thierry MOEBEL pour m'avoir donné l'opportunité de rejoindre l'entreprise et d'effectuer ma première année de master en alternance. Je le remercie également d'avoir pris en compte mes intérêts en me confiant un projet captivant, correspondant parfaitement aux attentes de mon année. De plus, je suis reconnaissant qu'il ait prolongé mon contrat pour l'année prochaine, me permettant ainsi de me lancer dans le monde du travail et de poursuivre mon évolution au sein de l'entreprise.
Je souhaite exprimer ma gratitude envers M. Cédric MARTIN, mon tuteur en entreprise, pour son accompagnement tout au long de l'année sur le projet. Sa transmission de connaissances techniques et ses explications sur l'architecture et le fonctionnement du projet ont été d'une grande aide pour moi.
Je remercie chaleureusement tous mes collègues chez Unit Solutions pour leur partage de connaissances, leur bonne humeur et leur soutien.
Je tiens à exprimer ma reconnaissance envers toute l'équipe pédagogique de l'UHA 4.0, notamment M. Mounir ELBAZ, M. Pierre-Alain MULLER, M. Florent BOURGEOIS, M. Daniel DA FONSECA, M. Pierre SCHULLER et Mme. Audrey, ainsi que les étudiants de l'UHA 4.0. Leur soutien, leur partage de connaissances, leur accompagnement et leurs conseils au long de l'année m'ont permis de mener à bien mon projet professionnel.
Enfin, je souhaite exprimer ma gratitude envers les relecteurs de ce rapport pour leurs précieux conseils, qui m'ont permis de mener à bien l'écriture de ce rapport.
],
introduction: [
Après avoir réalisé mon parcours de license professionnelle "Développeur nformatique" au sein de l'UHA et obtenu mon diplôme, j'ai souhaité approfondir mes connaissance rejoignant le cursus master proposé par l'UHA 4.0 qui fait suite à la license.
Mon parcours de master à été réalisé au sein de l'entreprise Unit Solutions basée à Allschwil en Suisse, qui s'était déjà proposée de me suivre dans mon cursus universitaires pour les deux années précédentes. Mes contributions principales se sont orientées sur le projet InfSuite et l'environnement l'entourant. L'application pour laquelle j'ai pu apporter ma contribution à comme objectif premier de gérer le suivi et la maintenance d'état d'ouvrages d'art.
Dans ce mémoire je vous présenterais les détails du projet InfSuite et de ma ccontribution au projet. J'ai principalement eu pour objectif de planifier et de réaliser une migration de base de données. En effet, la base de données étant un point clef de l'application, une maintenance de cette dernière est nécessaire pour assurer une certaine pérennité de l'application. Cette étape de migraton s'inscrit dans un projet de maintenir les technologies de l'application à jour et de permettre de palier à d'autres problèmes.
Dans ce document je commencerais par présenter ce qui m'a amené à rejoindre le cursus master et les compétence acquises durant ma formation, j'aborderais par la suite les enjeux, une analyse et le plan d'action de la migrationet, puis j'expliquerais la réalisation et les problèmes rencontrer et enfin je pourrais conclure ce document.
],
conclusion: [Conclusion],
abstract: [Abstract],
keywords: ("", "")
)
#include "chapters/contexte.typ"

BIN
template.pdf Normal file

Binary file not shown.

249
template.typ Normal file
View File

@ -0,0 +1,249 @@
#import "@preview/acrostiche:0.2.0": *
#let appendixes = state("appendixes", ())
#let section = state("section", none)
#let glossary-terms = state("glossary", ( : ))
#let rapport(
title: "",
author: "Julien Ivars",
color: red,
company: (),
degree: "",
promotion: (),
acronyms: (),
glossary: ( : ),
hayagriva-bibliography: none,
thanks: lorem(150),
introduction: lorem(350),
conclusion: lorem(350),
abstract: lorem(100),
keywords: ("Min 7", "Max 15"),
body,
) = {
// Global settings.
set document(author: author, title: title)
set page(
background: [
#place(top, rect(fill: color, width: 100%, height: 5mm))
#place(bottom, rect(fill: color, width: 100%, height: 10mm))
]
)
set text(hyphenate: false, lang: "fr", weight: "regular")
set heading(outlined: false)
show heading: h => {
set text(color, font: "Open Sans", weight: "medium", style: "italic")
set text(21pt) if h.level == 1
set text(17pt) if (h.level == 2)
set pad(left: 1cm) if h.level > 1
set pad(bottom: 5mm)
set pad(bottom: 3mm) if h.level == 3
pad(h)
}
// Title page.
{
set page(margin: (left: 15mm, right: 15mm, top: 15mm, bottom: 25mm))
set text(15pt, font: "Open Sans")
block(
height: 75pt,
grid(
columns: 3,
column-gutter: 45pt,
rows: auto,
align(horizon, image("images/premiere-page/logo-uha.png")),
align(horizon, image("images/premiere-page/logo-uha40.png")),
align(horizon, image("images/premiere-page/logo-serfa.jpg"))
)
)
v(3fr)
[
#text(30pt, color)[Mémoire de fin d'études] \
#text(40pt, weight: "bold", smallcaps(title))
]
v(3fr)
[
#text(18pt, weight: "bold", author) \
\
#degree \
#promotion.title - Promotion #promotion.year / #(promotion.year + 1) \
\
#text(black)[Alternance réalisée chez] #upper[*#company.name*]
]
v(2fr)
let stageActor(designation: "", tutor) = block[
#text(rgb(111, 111, 111), designation) \
#tutor
]
grid(
columns: 2,
[
#stageActor(designation: "Tuteur professionnel", company.tutor)
#stageActor(designation: "Tuteur pédagogique")[M. Mounir ELBAZ]
],
align(horizon + right, image(company.logo, width: 65%))
)
}
pagebreak()
// Used to get custom page header.
let pageheader(content: "") = {
set text(10pt)
grid(
columns: 2,
gutter: 1fr,
title,
content
)
v(3mm)
place(bottom, rect(fill: color, width: 100%, height: 0.05mm))
}
// Document-body settings.
show par: set block(spacing: 1.45em)
set page(
header: pageheader(),
footer: author,
margin: (left: 30mm, right: 30mm, top: 30mm, bottom: 30mm)
)
set text(font: "Times New Roman", size: 12pt)
set par(justify: true)
init-acronyms(acronyms)
counter(page).update(1)
// Defining, how marked glossary entries in the document appear
show figure.where(kind: "jkrb_glossary"): it => [#link(<Glossaire>)[#it.body]]
// Thanks page.
[
= Remerciements
#thanks
]
pagebreak()
// Summary.
outline(title: "Sommaire", depth: 2, indent: auto)
pagebreak()
{
set heading(outlined: true)
set page(footer: grid(
columns: 2,
gutter: 1fr,
author,
counter(page).display()
)
)
// Introduction page.
[
= Introduction
#introduction
]
pagebreak()
// Content.
{
set heading(numbering: "1.1.")
set page(header: locate(loc => {
let sectiontitle = section.at(loc)
if (sectiontitle == none) {
sectiontitle = query(
heading.where(level: 1, outlined: true).after(loc),
loc
).first().body
}
pageheader(content: sectiontitle)
}))
show pagebreak: pb => {
section.update(none)
pb
}
show heading.where(level: 1): h => {
h
section.update(h.body)
}
body
}
pagebreak()
// Conclusion.
[
= Conclusion
#conclusion
]
pagebreak()
// Glossary.
[
#set page(header: pageheader(content: "Glossaire"))
= Glossaire
#for term in glossary.keys().sorted() {
locate(loc => glossary-terms.update(it => {
it.insert(term, loc)
return it
}))
[ - *#term* : #glossary.at(term) \ ]
}
]
pagebreak()
// Acronyms page.
[
= Liste des abréviations
#acros.display(acronyms => {
for acr in acronyms.keys().sorted() [
- *#acr* : #acronyms.at(acr) \
]
})
]
pagebreak()
// Bibliography.
bibliography(hayagriva-bibliography, title: "Bibliographie et webographie", style: "chicago-notes")
pagebreak()
// Table of contents.
outline(indent: auto)
pagebreak()
// Appendixes page.
[
#set page(header: pageheader(content: "Annexes"))
= Annexes
#counter(heading).update(0)
#set heading(numbering: "I.", outlined: false, supplement: "Annexe")
#locate(loc => {
for body in appendixes.final(loc) {
body
}
})
]
}
// Last page.
[
= Résumé
#abstract
= Mots-clés
#for word in keywords.sorted() [
- #word
]
]
}
#let appendix(body) = appendixes.update(it => it + (body,))
#let ref-glossary(term: "", body) = locate(loc => link(glossary-terms.final(loc).at(term), body))