Students projects
If you are interested in doing a BA or MA thesis in the field of Software Engineering, do not hesitate to contact us.
General information
Bachelor thesis can be written in English, French or German. The report should use the template at your disposal.
Selection of recently finished projects
Master thesis
-
T-DOC : Un écosystème pour la génération de pages Web pour enseignants de mathématiques et informatique — 2024
Caroline Blank
Le but du projet est de faciliter la réutilisation de documents existants pour les mettre à disposition des élèves sur le Web. L’enseignant enrichit ses documents en LaTeX par du code Python, des vidéos et des fenêtres Geogebra.
Le coeur du projet est constitué d’un moteur de rendu qui transforme le document rédigé en LaTeX, complété par des balises personnalisées, en une page HTML. Pour le cours de mathématiques, l’élève pourra visionner dans un navigateur une page qui contient des parties de texte et de contenu mathématique, par exemple, de la théorie, des exercices ou des solutions, une illustration géométrique en utilisant une fenêtre Geogebra, ainsi que des compléments de théorie ou des exemples détaillés en format vidéo. Dans le cadre du cours d’informatique, les pages pourront, en plus, afficher du code surligné afin de faciliter la compréhension et exécuter du code directement dans le navigateur. Cela donne une séquence d’enseignement en autonomie pour la découverte d’une nouvelle notion, la possibilité de revoir une notion pas bien comprise ou tout simplement de réviser pour un examen. -
AKTS Universal shelf Life Monitoring System : Application web pour surveiller la température et la dégradation de substance en temps réel — 2024 (Confidentiel)
Nicolas Constantin
Ce projet est proposé par l’entreprise AKTS SA et est réalisé dans le contexte d’un travail de master à l’Université de Fribourg. Il a été réalisé par l’étudiant dans l’entreprise mandante et en collaboration avec celle-ci.
AKTS SA a développé un logiciel pour calculer des formules de dégradation chimique et désire proposer un nouveau produit pour calculer la dégradation de matériaux en temps réel en associant ses formules avec des data loggers.
L’étudiant doit développer une application web pour afficher et gérer des data loggers ainsi que pour afficher leurs données et calculer la dégradation de matériaux à partir de celles-ci. Des alarmes peuvent également être définies pour prévenir qu’un seuil alarmant ou critique a été atteint.
Le backend doit être développé en Delphi et se compose de plusieurs programmes pour gérer la base de données ainsi que le système de déclenchement d’alarmes. Un web service est également développé pour l’envoi des alarmes.Confidentiel : Document non disponible
-
Sauvez Julie ! Développement d'un environnement d'apprentissage polymorphe de programmation visuelle et littérale — 2023
Laurent Bardy
L'enseignement de l'algorithmique et de la programmation à des débutants pose nécessairement la question du moyen d'apprentissage. Celle-ci focalise souvent sur le choix du langage de programmation de haut niveau le plus approprié. La réponse à cette question est cependant plus complexe qu'il n'y paraît, dépendant notamment du stade de développement cognitif de l'apprenant. La théorie de l'apprentissage du psychologue Jean Piaget fournit des éléments d'analyse afin de formuler une réponse à cette question. Selon Piaget, l'enfant apprend et construit – en traversant différents stades d'apprentissage à travers les âges – son savoir par la pratique, en manipulant des objets physiques et abstraits de son environnement. Le choix du moyen d'apprentissage approprié dépend donc de l'âge de l'enfant, déterminant le stade auquel celui-ci se trouve. L'émergence récente des langages visuels ajoute une nouvelle couche d'abstraction se superposant à celles des langages littéraux de programmation de haut niveau, rendant l'apprentissage de la programmation accessible à un stade plus précoce, mais pouvant également faciliter, dans un premier temps, cet apprentissage chez une personne se trouvant déjà à un stade plus avancé. La littérature montre qu'un usage trop important et tous azimuts du numérique à l'école tend à prétériter les apprentissages fondamentaux, ce qui laisse à penser qu'un apprentissage de la programmation aux premiers stades de développement cognitif peut se révéler contre-productif. Si l'âge de l'enfant est un facteur déterminant pour le choix d'un moyen d'apprentissage adéquat, il est est également déterminant quant à l'objet d'apprentissage que permet de manipuler l'outil retenu, à l'instar d'une tortue dessinant sur un écran, d'un robot ou d'une page web par exemple. Plus l'objet manipulé est de nature complexe, plus la prise en main du moyen d'apprentissage nécessite un stade de développement cognitif élevé. Si les langages de programmation visuels offrent la possibilité de découvrir la programmation au stade d'apprentissage plus précoce des opérations concrètes, l'apprentissage d'un langage littéral sera plus adéquat au stade supérieur des opérations abstraites. Néanmoins, si les moyens d'apprentissage de la programmation sont aujourd'hui nombreux, peu d'entre-eux sont de nature polymorphe, offrant la possibilité, pour un même objet d'apprentissage, d'écrire le code d'un programme dans un langage visuel tout comme dans un langage littéral, encore moins dans plusieurs langages de haut niveau différents, ce qui facilite la transition d'un stade d'apprentissage à un autre tout en permettant une généralisation des notions fondamentales de programmation, existant dans tout langage de programmation de haut niveau, qu'il soit visuel ou littéral.
Sauvez Julie est une application web expérimentale offrant un moyen d'apprentissage polymorphe portant sur la manipulation d'un objet d'apprentissage simple, à savoir une figurine sur un plateau de jeu quadrillé, représentant la surface d'un glacier sur lequel se déplace un guide de haute montagne devant aller secourir une touriste égarée. L'application repose sur différentes technologies (HTML, CSS, Javascript) et autant de bibliothèques et framework (Processing et p5js, Blockly, JQuery, Ace Editor), ses principales composants étant un éditeur de code visuel, un éditeur de code littéral, des convertisseurs de code visuel en code littéral, un moteur d'animation séquencé, un éditeur d'exercices et des tutoriaux pouvant être ajoutés aux exercices. Au joueur d'écrire le code visuel ou littéral d'un programme générant un itinéraire que le guide va suivre en toute sécurité pour sauver la touriste. Le code visuel du programme peut être converti automatiquement en différents langages littéraux de haut niveau mais le joueur a également la possibilité d'écrire par lui-même le code littéral en javascript. L'expérimentation de cette application avec un enfant faisant la transition du langage visuel au langage littéral montre une stratégie d'apprentissage par la pratique à laquelle ne fait le plus souvent pas appel un enseignement conventionnel, alors même que les informaticiens expérimentés procèdent également régulièrement par analogie et adaptation de code afin de passer d'un langage de programmation à un autre. Ces observations posent la question de la pertinence de l'approche déductive théorique par rapport à une approche inductive pratique, d'un apprentissage basé sur l'écriture ex-nihilo de code sources par contraste avec celui plus pragmatique se fondant sur l'observation, la compréhension et l'adaptation de codes existant. Sauvez Julie est un prototype expérimental de moyen d'apprentissage de la programmation disponible en opensource et dont le développement peut se poursuivre par toute personne intéressée.
-
Graph Databases vs. Relational Databases for Social Web Applications : A Systematic Evaluation — 2023
Christian Fries
Since the advent of Web 2.0, the internet is no longer just a place to consume information. It has become a place to actively participate, to interact with other people. Large social media platforms have emerged with up to 2.3 billion users. The spread of such platforms has changed the requirements for the technologies. It has been realised that it is not only the discrete information that is valuable, but that the relationships between the information are even more valuable. From this realisation, the graph databases as we know them today have gained popularity.
In this thesis, a systematic evaluation of a graph database and a relational database is conducted. Both databases are evaluated based on well-known use cases in the context of social web applications. The two databases are opposed and compared based on a defined set of criteria.
-
Web services: Présentation de leurs principaux types d’architecture et d’API et analyse comparée de leurs performances respectives par le prototype Stock&Co — 2023
Kesigan Thavarajasingam
Cette thèse de master étudie les architectures web, les workflows et les API pour déterminer
ceux qui facilitent l’évolution d’une entreprise. Trois architectures web ont été
comparées: monolithique, SOA et en microservices. La comparaison montre que l’architecture
monolithique ne convient pas aux entreprises en expansion. L’architecture SOA
est de moins en moins utilisée et l’architecture en microservices devient la norme. Pour
faciliter la communication entre les différents services, deux workflows peuvent être mis en
place: les workflows en orchestration et les workflows chorégraphiques. Le premier permet
de visualiser la progression des tâches. Le deuxième fonctionne sur un système d’événements.
La mise en place d’un workflow peut être complexe si de nombreux services sont
impliqués. La spécification AsyncAPI peut faciliter cette tâche grâce à sa documentation
et à sa capacité à générer du code. Trois technologies permettant le développement des
API ont également été étudiées: REST, GraphQL et gPRC. La comparaison des trois
à travers la littérature a montré que GraphQL convient pour de grandes quantités de
données, gRPC est plus adapté pour les données lègères et les transmissions rapides, et
enfin REST est recommandé pour la plupart des situations. Dans la dernière partie de ce
travail, un prototype utilisant l’architecture en microservices, le workflow en orchestration
et l’API GraphQL a été développé pour mettre en application les différentes notions
apprises. L’application a été adaptée pour supporter une API REST, ce qui a permis
d’effectuer des tests de performance pour comparer REST et GraphQL. Trois types de
test ont été mis en place: test séquentiel, test de charge et test concurrent. Les résultats
ne montrent pas de différence notable. GraphQL excelle pour de grandes quantités de
données et les données imbriquées. Dans ce domaine, la différence est de 6% en faveur
de GraphQL. Finalement, ces tests ont confirmé que REST convient dans la plupart des
situations. -
Mood Classification : Classification of Songs into Moods Using Convolutional Neural Network — 2022
Philippe Bucheli
The motive of this dissertation was to analyze the performance and features of the most common mood classifier of songs. Different datasets and moods were tested. Furthermore, the two different approaches of single and multi-label classification were compared. In the end, the listening data was taken as an input for the constructed spectrogram-based convolutional neural network (CNN). Moreover, the four moods happy, sad, calm and energetic were taken.
In addition, a web application was implemented which provides the service of retrieving the Spotify tracks of a user’s favorite anime (Japanese TV shows) titles in a playlist. This was achieved by connecting anime TV shows to their songs with the help of the API of MyAnimeList and Spotify. The frontend was implemented in HTML and JavaScript, while the backend was written in Python. Hence, the micro web framework Flask was utilized to host it later with Firebase and Google Cloud Run. Continuous Deployment was also implemented to simplify the update and deployment process as soon as changes were made on GitHub.
In order to create the Spotify playlists of the favorite anime titles, the Spotify OAuth login was implemented. This resulting playlist could then be categorized by moods and accessed via a new playlist saved in the user’s Spotify account.
Another neural network using KerasClassifier was taken as a comparison and evaluation of this prototype by using the same dataset split into a training and a validation set. However, for one model the audio features were given as input whereas the other model only received the frequency in Hertz. Thus, the accuracy of this model using KerasClassifier, namely 72.75 %, can be compared to some extent to the results of the self-implemented model which has a slightly higher accuracy of 78.57 %. Hence, a hybrid solution using both systems was used for the prototype to solve the nuances between few moods.
The second evaluation was done by taking some existing Spotify playlists labeled with a mood as the input of the model and filtering it by the same mood. Thus, the number of titles added to the new playlist categorized by this mood indicated the success rate. The mood energetic provided the best predictive results with a rate of 82.14 %. Generally, it was observed that anime songs are mostly predicted as energetic. -
Decentralized LoRa infrastructure using blockchain — 2021
Andrea Rar
This master thesis presents a proof-of-work architecture and implementation to bring decentralization into the existing LoRa infrastructure. This is achieved thanks to the development of a new protocol, that we call LoRa-MAC, which replaces the existing LoRaWAN protocol. The decentralization aspect of LoRa-MAC is made possible thanks to the deployment of a smart contract on the Ethereum blockchain and thanks to the use of asymmetric cryptography which permits to provide non-repudation. Furthermore, an extension of the project has been developed to demonstrate the new decentralized use-cases that are now allowed. This extension consists in the exchange of micropayments between the components of the LoRa-MAC architecture in a totally decentralized way in order to allow remuneration in crowd-sourced networks.
-
Decentralized trust models for the Internet of Things — 2020
Flurin Trübner
This work introduces a new approach for authorization in the Internet of Things (IoT). An assessment of this approach is done by a proof of concept that builds on top of the Authentication and Authorization for Constrained Environments framework (ACE- OAuth). This approach is extended by a decentralized trust model securing and monitoring the exchange of messages and authorization between participating nodes of the ACE-OAuth ecosystem.
-
Continuous Integration of Embedded Security Software — 2020
Marco von Raumer
This report focuses on the protocols Object Security for Constrained RESTful Environ- ments (OSCORE) and Ephemeral Diffie-Hellman Over COSE (EDHOC), which enable a new method for secure communication designed for embedded devices. New libraries, implementing said protocols, are written and tested with help of a Continuous Integra- tion (CI) pipeline. Some performance metrics are gathered and example applications can successfully be run on a standard PC as well as a selected embedded device.
-
Lightweight Application Layer Protection for Embedded Devices with a Safe Programming Language — 2020
Martin Andreas Disch
Securing communication in IoT devices is very important, but also difficult due to constraints in connectivity, processing power, memory size and energy usage. Several lightweight protocols have been developed for this context, among them the EDHOC key exchange and OSCORE, which provides application-layer protection of the commonly used CoAP protocol. These protocols are relatively new and few implementations exist. We implemented an open source library for OSCORE using EDHOC, targeted at embedded devices and written in Rust. This programming language is known for its memory safety, a useful guarantee in security-critical environments. The implementation was demonstrated in a test setup using real hardware, consisting of an embedded resource server, embedded client and a CoAP proxy in between. With this approach we have demonstrated the viability for embedded devices of both the proposed protocols, as well as the Rust programming language, and contributed the first Rust implementations of EDHOC and OSCORE.
-
A client interface for interacting with a privacy-preserving IoT middleware — 2018
Marcel Grosjean
In the context of research in the IoT, the Softeng group is developing a privacy-preserving IoT middleware using Trusted Execution Environment, namely Intel Software Guard Extensions (SGX). This middleware is capable of interacting with smart devices and clients while all the sensitive data are hidden from the platform hypervisor, enabling trusted computing in untrusted environment [1]. In this work we have studied the different existing technologies in order to design a web application for middleware management. The interface was called RIOT (Responsive Internet of Things) and offers all the features to manage a middleware and offers in addition a completely secure communication. RIOT implements the ECA (event, condition and action) programming paradigm.
-
Universal Explorer for the Web of Things — 2018
Linus Schwab
The Web of Things (WoT) Interest Group (IG) is collecting concepts and technologies to enable discovery and interoperability of Internet of Things (IoT) services on a worldwide basis. Among other, the WoT building blocks include WoT Thing Description (TD) and discovery mechanisms. The WoT Thing Description (TD) provides the semantic metadata of a Thing as well as a functional description of its WoT Interface. The student will create a web application to: (1) discover things using a TD repository, (2) visualize Things and their capabilities and (3) enable HTTP interaction with things from a web interface.
-
Authentication and Authorization for Constrained Environments — 2018
Urs Gerber
Authentication and Authorization for Constrained Environments (ACE) is a draft framework for authentication and authorization of embedded devices. It builds on existing OAuth2.0 framework and add a profile to reduce resource usage when authenticating. As it is a draft specification, there is no available code yet but it should be possible to adapt an existing library in a conceivable time frame. The goal of the project is (1) to adapt an existing OAuth2.0 library to support ACE profile and (2) demonstrate it using a real device.
-
Automated Sentiment Analysis of the Swiss Media Landscape — 2018
Pascal Giehl
In this paper, an application is introduced to support transparency of newspapers in Switzerland. In a first step, it constantly monitors news feeds from the most prominent newspapers and downloads the content of new articles by modern web scraping mechanisms. Second, this data is analysed to extract information like sentiment or polarity to finally offer them by an API to the public. Finally a web platform was created to retrieve and display the results in an comprehensive way. It is available on the web: newsmonitor.ch. At the end of this paper, more than 40’000 articles were gathered and analysed. A quantity of data that allows to answer a potential hypothesis with a high significance.
-
Building an extensible framework for automatic employee time logging using physical markers — 2018
Aleksei Kosozhikhin
Tracking of employee hours historically has been a cornerstone metric for determining the hired force's pay. In the modern times it is becoming increasingly important to pro- vide precision and automation to this process. The current state of technology includes several methods of location and proximity detection, allowing us to use physical markers for automatic employee time tracking. In this thesis we construct a concept of an abstract extensible framework for manual and automatic employee hours tracking by covering the whole time tracking workow. We also build an implementation of the proposed concept suited for all participants of the employee hours tracking process and using multiple tracking technologies.
-
RESTful services and automation for comfort-oriented smart devices — 2017
David Wettstein
With the ever growing market of physical objects communicating over various interfaces comes the need of discovering, monitoring, control and interacting with the device; often over the internet. We can leverage modern web standards for Internet of Things (IoT) scenarios, enabling new types of interactive applications to be built and make sure that devices can be integrated with modern web applications and services with minimal effort. This idea is the root of the “Web of Things”. In this context and in partnership with another research group, we are working on bringing real-world smart devices to the web.
Bachelor thesis
-
PawAtlas : Application web progressive pour la gestion d'animaux de compagnie — 2024
Paul Ricci
Ce travail résume les étapes nécessaires à la création d’un prototype d’application web progressive avec le framework Angular et la plateforme de développement Firebase. Ce dernier permettra aux utilisateurs de se créer un profil personnalisé, puis de le faire pour leurs compagnons. Une carte interactive leur permettra d’ajouter et de consulter des lieux d’intérêts, comme des vétérinaires ou des centres animaliers, mais aussi des dangers tels que des zones toxiques ou interdites aux animaux.
Les cas d’utilisation liés à la carte interactive ont été implémentés. De plus, un système d’authentification a été mis en place tout comme une base de données de type NoSQL. L’implémentation a été facilitée grâce à Angular et ses automatisations, mais ce travail écrit propose une analyse des apports du framework, notamment ceux concernant la transformation d’une application web en une « Progressive web app PWA ».
Afin de gérer efficacement les opérations asynchrones liées au développement web, le code présenté propose une approche qui repose sur des concepts de programmation réactive à travers l’utilisation d’une librairie dédiée. -
Avianity : Une application web full stack MERN pour la documentation et l'étiquetage collaboratif d'images d'oiseaux en Suisse — 2024
Sara Faggella
Avianity est une plateforme sur laquelle les utilisateurs peuvent collaborer entre eux pour la création et la gestion d’une banque d’images d’oiseaux de Suisse. L’objectif derrière ce projet est de pouvoir construire, à terme, un dataset fiable de photos d’oiseaux de Suisse.
Il s'agit d'une application web full-stack MERN (MongoDB, Express, React, Node.js).
-
ParTI : An ecosystem (database, server and user interface) to get information on bars and restaurants of Canton Ticino that are application's partners — 2024
Sebastian Käslin
This bachelor thesis presents the process of developing a software that allows users to get information on bars and restaurants of Canton Ticino. The thesis treats in detail the main idea, its modelization, the final result and the technologies (MongoDB, Node.js, Express.js, Vue.js, GeoJSON and Vue-Leaflet) used for the implementation.
One of the main achieved goal was to create an application's ecosystem, which provides the expected functionalities and which is developed in a manner that facilitates future improvements. -
ChestVision : Ecosystem for medical image analysis and disease prediction on thoracic x-rays — 2024
Yannick Künzli
A specialised Flask web application, named “ChestVision”, was developed and implemented using Python. The application is designed to facilitate the analysis of thoracic x-rays and predict potential diseases. Its primary function allows users to store and manage images, patient data, and their corresponding diseases. The application leverages the National Institutes of Health (NIH) Chest X-ray Dataset and a deep learning model that implements a pretrained MobileNet layer to predict between 13 diseases, providing a comprehensive tool for medical image analysis. Secondary functions, such as accessing patient records, displaying the state of disease prediction were added during development.
-
ConsEAU : Application mobile pour calculer l'utilisation journalière d'eau par individu — 2024
Zélia Décaillet
Ce travail présente les différentes technologies utilisées pour l’élaboration de l’application ConsEAU, ainsi que ses diverses fonctionnalités. Il peut avoir le rôle de guide pour les utilisateurs finaux et d’un point de vue développeur d’avoir un aperçu des frameworks.
D’un point de vue utilisateur final, l’application offre un aperçu en temps réel de sa consommation d’eau en seulement quelques clics, sans nécessiter l’installation de compteurs. L’utilisateur a accès à des graphiques qui lui permettent de mettre en évidence dans quelles catégories sa consommation est la plus élevée et de surveiller sa progression par rapport aux objectifs fixés. En intégrant plusieurs fonctionnalités, cet outil permettra de gérer efficacement l’utilisation d’eau depuis une seule plateforme.
D’un point de vue développeur, ConsEAU implémente deux différents frameworks. Flutter est utilisé pour la programmation de la partie frontend et Firebase pour le backend. Un seul code source permet de générer le code pour les applications Android et iOS.
-
OnlyQuest : Application de création et gestion de contenu pour un jeu de quêtes — 2024
Victor Lambert
L’application que j’ai développée intègre une interface de programmation d’application (API) de type REST construite avec Spring Boot. Cette API permet de créer, stocker et gérer automatiquement divers éléments du jeu dans une base de données MySQL. En utilisant Angular comme cadre de travail (framework) côté client, les utilisateurs administrateurs peuvent créer des catégories de personnages, des compétences et des quêtes. D’un autre côté, les utilisateurs de type joueurs ont la possibilité de créer de nouveaux personnages et, dans une version ultérieure, de lancer des quêtes pour faire évoluer leur personnage. En résumé, l’application offre une plateforme conviviale pour le développement et la gestion des éléments du jeu, favorisant ainsi une expérience immersive pour les administrateurs et les joueurs.
Mot-clé : Spring Boot, API REST, Angular, MySQL, jeu vidéo, gestion des personnages,
compétences, quêtes, utilisateur, héros, framework, endpoint, frontend, backend.. -
MED CUT : Management- and Utility tool for Medical coding (Implemented at the Hopital Cantonal de Fribourg) — 2024
Fabian Falamischia
A specialised Oracle Apex web application was developed and implemented at the Hôpital Cantonal de Fribourg. The application "MED-CUT" implemented several features for facilitating the work of the medical coding team. Its primary function allows users to manage and distribute cases for medical coding. Secondary functions, such as accessing coding lists, displaying the state of medical documentation and a dialysis calculation page were added during development.
-
UniAufgaben : Eine Webapplikation zur Verwaltung der eigenen Aufgaben im Studium — 2024
Kilian Maendly
Diese Arbeit befasst sich mit dem Ziel, eine Webapplikation zu erstellen, mit welcher Personen ihre Aufgaben im Studium auf einfache Weise organisieren können. Für die Erstellung der Applikation wurde der MEAN-Stapel verwendet, welches sich aus den Technologien MongoDB, Express.js, Angular und Node.js zusammensetzt. Das Resultat der Arbeit ist, dass es möglich war, die Applikation zu entwickeln, so dass die Ziele erreicht werden konnten. Als Verbesserungsmöglichkeiten wurde festgehalten, dass die
Applikation mit einem Administratorkonto und einem System zum Zurücksetzten von Passwörtern, sowie einer Ansicht für Mobilgeräte erweitert werden könnte. Der Bericht besteht aus einer Einführung, Problembeschreibung, Demonstration und Implementationdes Programms, sowie einer Schlussfolgerung. -
Réalisation d'un écosystème marketing comme support au travail de conseiller financier avec l'outil System.io — 2023
Matthieu Pralong
Les avancées informatiques de ces dernières années ont entraîné des changements significatifs dans le monde économique, obligeant les conseillers financiers à s'adapter rapidement pour répondre aux besoins des clients. Dans cet environnement en constante évolution, la nécessité de mettre en place des stratégies marketing efficaces s'avère cruciale pour attirer, convertir et
fidéliser les prospects.
De plus, l'automatisation des processus marketing offre un potentiel immense pour les prestataires de services. Les outils de marketing numérique permettent de cibler des publics spécifiques, de créer des campagnes personnalisées, et d'automatiser une grande partie du processus de conversion des prospects en clients. Cela libère du temps et des ressources qui peuvent être investis dans d’autres aspects essentiels à plus haute valeur ajoutée.
Enfin, la concurrence dans le secteur financier est très forte, et les conseillers sont de plus en plus nombreux. Il est dès lors important de trouver des moyens de se démarquer, notamment grâce à l’utilisation d’un marketing numérique adapté.
Ce travail a pour but d'explorer comment un écosystème informatique basé sur System.io peut aider à rechercher de nouveaux clients, à automatiser les processus marketing et à gagner un avantage concurrentiel dans un environnement financier complexe. -
Exploration des concepts et possibilités des SGBD de type graphes (Neo4j) en comparaison avec les SGBD relationnels — 2023
Cyril Hunziker
Ce travail de bachelor explore les concepts et les possibilités des systèmes de gestion de base de données de type graphe, en utilisant Neo4j comme exemple, en comparaison avec les SGBD relationnels. Les différences fondamentales entre les deux types de systèmes, les avantages et les inconvénients de chaque système, et les scénarios dans lesquels l'utilisation d'un SGBD de type graphe peut être plus avantageuse qu'un SGBD relationnel sont analysés.
-
Architecture REST et architecture orientée événements (EDA) : Simulation d'un bureau de travail connecté, communicant avec un serveur utilisant l'architecture REST et orientée événements — 2023
Lazar Randjelovic
L’architecture Representational state transfer (REST) est la structure de base pour la conception de services sur internet. La compréhension et la maîtrise de ce type d’architecture s’impose comme un concept indispensable pour tous les programmeurs s’intéressant à la programmation web. Toutefois, de nos jours, la conception des services a beaucoup évolué. De plus en plus de services ou de processus se déclenchent lorsqu’un événement ou une action spécifique a été effectué. Les services fonctionnant de cette manière utilisent l’architecture orientée événements. Ce type d’architecture devient de plus en plus populaire et inonde peu à peu notre quotidien, notamment par le biais des objets connectés ou des maisons connectés qui s’installent progressivement dans nos modes de vie. Comprendre ces deux types d’architectures était pour moi essentiel et sont des concepts clés de la programmation web. Avec ce travail je voulais étudier ces différentes architectures et essayer d’intégrer ces deux modèles au sein d’un même projet.
L’objectif de ce travail est donc de concevoir une serveur web pouvant à la fois répondre aux différentes requêtes que l’on fait habituellement sur un serveur REST, ainsi qu’un serveur qui soit capable de réagir à différents événements en direct et d’effectuer les
actions appropriées pour chaque événement. En somme, concevoir un serveur web qui répond aussi bien à l’architecture orientées événements, qu’à l’architecture REST. -
Application web : recherche de recettes de cuisine en fonction de leurs ingrédients — 2023
Oliver Richani
L’objectif central de ce travail de bachelor est la création d’une application web permettant aux utilisateurs de trouver des idées de plats à cuisiner, en fonction des ingrédients qu’ils possèdent déjà et qu’ils n’avaient pas délibérément prévu d’utiliser ensemble. Ceci s’inscrit dans une idée de réduction de la consommation inutile et du gaspillage, en proposant des possibilités inopinées à partir d’ingrédients déjà en possession des utilisateurs.
L'implémentation (en Node.js) comprend la création d’un front-end sous forme de site web facilement
utilisable par n’importe quel utilisateur, d’une base de donnée (mongoDB) pour les recettes
et d’un back-end permettant de trouver les différentes recettes possibles à partir d’ingrédients
donnés par l’utilisateur. -
Mescourses : un gestionnaire de listes de courses — 2022
Octave Plancherel
Mescourses est une application web de gestion de listes de courses. L'implémentation, après une analyse détaillée des produits existants et des besoins, a été réalisée avec le stack MEAN.
-
Création d'une FAQ pour les besoins de l'association Solid'Ark — 2022
Werner Schmid
L’association Solid’Ark souhaiterais développer un forum pour permettre à ses utilisateurs d’interagir sur leur platforme. Le but de ce travail de bachelor est de définir correctement les besoins des utilisateurs et de créer un prototype pour la partie serveur REST en utilisant le framework Symfony.
-
Pelops : Une application d'organisation d'activités sportives entre particuliers — 2022
Antoine Demont
Pelops est une application permettant d'organiser des activités sportives entre particuliers. L'application présente une API REST générée avec Swagger et le client mobile est programmé avec React Native.
-
Gestionnaire de budget - 2022
Lucas Rar
Un éco-système pour la gestion de budget : le serveur REST est programmé en Python; l'interface exposée avec Swagger; et la base de données est MongoDB. Le client est programmé avec JavaScript et les libraires React, Axios et Chart.js pour les graphiques.
-
Application client-serveur servant à la gestion de cours extra-scolaires intercantonaux — 2021
Sophie Crrevoiserat
L’offre de cours extra-scolaires est vaste. L’organisation de ceux-ci peut énormément varier suivant les prestataires et cela se fait parfois de façon très informelle et déstructurée. Il est d’autant plus compliqué de s’organiser lorsqu’un cours est donné à grande échelle, comme par exemple à un niveau intercantonal. Harmoniser le tout permet donc un gain d’efficacité et de temps, puisque toute l’information nécessaire est regroupée au même endroit. En ce sens, un service permettant de gérer l’organisation de ce type de cours est utile et permet de garder un cadre bien ordonné. Ce travail va donc montrer la mise en oeuvre d’une application client-serveur de gestion de cours extra-scolaires communs à plusieurs cantons suisses.
-
Système de tracking COVID-19 pour les cours à l’UniFR — 2021
Bastian Stadelmann
Création d’une architecture qui permet de saisir et de stocker les données des professeurs et des étudiants, ainsi que les informations relatant leurs présences aux cours de l’Université.
-
Transfert de données sécurisé avec WebRTC — 2021
David Baschung
Ce projet vise à créer une application web gratuite, accessible rapidement par tout le monde et qui ne nécessite pas d'installation, d'appartenance à une organisation, ni d'hébergement des fichiers sur des serveurs appartenant à des tiers. Ainsi, des documents peuvent être transférés rapidement entre deux personnes avec un chiffrement de bout en bout, sans être lues ou manipulées par un intermédiaire sur le réseau.
-
Secure P2P data transfer using WebRTC — 2021
Guillaume Bonvin
The goal of this project is to create a simple command-line application which allows for two users to safely exchange files of any kind or size. The final program is launched from any operating system through its command-line interface. Unlike classical file exchange services like Dropbox or Google Drive, this application uses no relay server to get the files to the recipient. All files are exchanged over a direct channel between the users, going through no third-party in-between, taking down the risk of a man-in-the-middle attack. The critical part here is the mutual authentication between sender and receiver needed to initialise the connection. -
L'application Crazy Wolf : Application smartphone pour la gestion des horaires et des services du personnel du restaurant Crazy Wolf — 2021
Daniel Sanz
Ce travail de bachelor présente une application disponible pour Android OS, nommée Crazy Wolf, qui permet de gérer les horaires et les échanges de services du personnel d'un petit restaurant.
L’application a été développée selon les principes REST en utilisant le framework Flutter et "son" langage associé Dart.
-
Appartex Un écosystème logiciel d’une régie pour propriétaires indépendants et leurs locataires — 2021
Kesigan Thavarajasingam
Ce travail de bachelor présente une application client-serveur, nommée Appartex, qui se veut comme une alternative viable à une régie. Appartex permet aux propriétaires de gérer leurs appartements ainsi que de communiquer avec leurs locataires via une messagerie.
L’application a été développée selon les principes REST en utilisant les langages ReactJS, Node.js, Koa et MongoDB.
-
Connecting constrained devices to the cloud using Zephyr — 2021
Alex Nyffenegger
This work gives an insight on state of the art tools and their applications in the field of IoT and a prototype is implemented with the goal to minimize bandwidth. The lightweight IoT protocol CoAP and the serialization standard CBOR are used to reduce bandwidth. The prototype is built with the IoT framework nRF Connect SDK built on top of the Real Time Operating System (RTOS) Zephyr.
-
RESTful API mit Java Spring — 2020
Marc Raemy
In dieser Arbeit wurde ein Application Programming Interface (API) unter Berücksichtigung von REST-Prinzipien mit dem Java Spring Framework und Spring Boot unter Anwendung von objektrelationalem Mapping mit der Java Persistence API (JPA) und Hibernate für den konkreten Anwendungsfall des Managements von Daten einer Hobby-Eishockeymannschaft programmiert. Die Arbeit beschreibt den Anwendungsfall, die Technologien und Konzepte sowie die Implementation der API.
-
Analyse des outils d'automatisation de Salesforce — 2020
Francis Ruckstuhl
Ce travail de Bachelor vise à explorer les divers outils proposés par Salesforce, une plateforme américaine spécialisée dans les logiciels de relations client, pour développer une application web hébergée sur le Cloud. Pour se faire, un prototype de gestionnaire des contrats d’agences immobilières y a été développé de toutes pièces. Il s’agissait au départ d’un projet de start-up dont le but était d’offrir aux PME immobilières des solutions autonomes moins coûteuses que les grands logiciels actuellement présents sur le marché. Cependant, pour des raisons expliquées plus en avant, cela s’est avéré sans réel intérêt en Suisse. Aussi, afin de ne pas mettre un terme à tout le projet, il a été reconverti et adapté pour satisfaire aux exigences d’un travail de Bachelor.
-
FYZZ: An ecosystem to subscribe to a free drink and discounts per day — 2019
Ryan Siow
This bachelor’s work aims to develop an application using a modern technology stack. The business model is based on subscriptions, a model that is becoming more and more widespread. Part of the project is mainly focused on the realization of the ecosystem, which is why after a chapter on the design of the application from the user’s point of view, different technological aspects such as the choice of frameworks and security are studied.
-
Building a mobile application for a recycling startup: Oust! — 2019
Sylvain Losey
Recycling is a vital tool to prevent climate change and use the planet’s resources efficiently. Unfortunately, it can be inconvenient or inaccessible to some people. In this report, we will present Oust!, a Swiss startup that aims to simplify recycling. To help in this task, we will build a mobile application with Flutter, allowing us to create an Android and iOS version from a single codebase.
-
APGjs: Une application pour la gestion d’une société de jeunesse — 2019
Arnaud Salvadori
La gestion d'une société de jeunesse est quelque chose de complexe. On présente, ci-joint à ce travail écrit, une application appelée "APGjs" qui a pour but de faciliter la gestion d'une société de jeunesse. Elle offre des fonctionnalités telles que la consultation des cotisations, l'ajout et la modification de membres, ou encore l'envoi de mails de rappel. L'application regroupe une base de données MongoDB, une RESTful API et un client développé avec VueJS.
-
Appappa: Une application web pour les colocataires — 2019
Zeno Bardelli
Les personnes qui vivent en colocation ont des besoins particuliers. On présente une application web appelée "Appappa" qui permet de satisfaire certaines nécessités telles qu’échanger des messages, régler les dépenses en commun, gérer une liste des courses commune et planifier les travaux ménagers. L’application a été entièrement realisée avec la stack MEAN. Cela signifique que l’application se compose d’une base des données en MongoDB, d’une RESTful API développée avec Node.js et Express et d’un client développée avec Angular.
-
Internet des Objets: Proxy pour Caméra IP — 2018
Loïc Rosset
Ce travail de Bachelor s’insère dans l’air de l’Internet of Things et du Web of Things, révolutionnant continuellement le monde actuel. En effet, de nombreuses entreprises se sont créées autour de ces deux notions, en produisant ou en distribuant sur le marché des objets connectés de toute sorte. En collaboration avec une entreprise de développement, une solution liant Web of Things et cameras IP est réalisé, dans lequel une solution permettant d'accéder de manière sécurisée à un flux video depuis un navigateur est implémentée. Pour cela, un boitier installé chez les clients et communique avec un serveur distant les informations sur les caméras branchées sur le boitier, et permet d'y accéder sur demande du serveur.
-
Objets connectés: stratégies et technologies pour une interaction réussie — 2018
Julien Clément
Dans un monde où la technologie évolue sans cesse, de nouveaux acteurs ont fait leur apparition et se démocratisent depuis peu : les objets connectés. L’Internet of Things et le Web of Things deviennent dès lors des notions centrales que la plupart des acteurs du marché souhaitent développer. Dans cette quête, les fabricants produisent des standards logiciels presque tous différents les uns des autres. A l’heure actuelle, combiner plusieurs appareils ne se fait pas sans mal et requiert un travail en amont. Après une introduction aux technologies permettant aux objets connectés de communiquer, plusieurs implémentations possibles se servant de matériel différent seront étudiées afin de cibler les points positifs et négatifs de chacune. Cette mise en pratique permettra de définir la meilleure solution du point de vue d’un développeur. Finalement, ces recherches seront mises à profit dans un cas concret. Un service web mêlant plusieurs objets connectés et le service de streaming musical Spotify sera implémenté.
-
Plateforme immobilière et systèmes de recommandation — 2018
Louis Chaubert
Partant de l’idée d’un groupe d’étudiants de différents horizons, MyFlat est une plateforme immobilière souhaitant combler les déficiences des plateformes actuellement sur le marché. Le rapport détaille son utilisation d’un point de vue utilisateur autant de la perspective d’un visiteur que d’un annonceur. La suite de la lecture conduit vers l’aspect technique du développement de la plateforme. Celle-ci a été développée grâce aux technologies MeteorJS pour le serveur, ReactJS du côté client et MongoDB pour la base de données. L’utilisation de ces technologies est détaillée pour une implémentation générale et accompagnée d’exemples tirés du projet MyFlat. La plateforme devant proposer des offres immobilières aux visiteurs, celle-ci se doit d’intégrer un système de recommandation le plus pertinent possible. C’est donc le sujet de la troisième partie de ce rapport, une étude sur les différents systèmes de recommandation existant avec leurs cas d’utilisation, avantages et inconvénients. MyFlat intègre actuellement un système de recommandation très basique devant évoluer en un système hybride. Le futur du projet est de peaufiner les fonctionnalités existantes, intégrer celles manquante
-
DEFO DM2017 - Developing a Deformation Monitoring System with the Microservices Pattern — 2018
Martin Andreas Disch
In the construction business it is often necessary to keep an eye on structures or parts of the environment which may move inadvertently. This is done by continuously measuring the positions of several points in the area of interest. The author was given the opportu- nity to work at GEOINFO Vermessungen AG in Gossau, which provides this service to clients. The company used to collect this data, analyze it manually and upload it to a website where customers can look at it. The goal of this thesis was to develop a web-based system that would analyze the measurements for critical deviations, alert staff if neces- sary, and automatically transfer it to the existing customer website. Besides automating this workflow, the system should also be easy to extend, reuse, and integrate into other applications. To accomplish this, the microservices architectural style was chosen for the implementation.
-
Synchronisation par le réseau d'un monde virtuel sur Unity — 2018
Anthony Boscardin
Comment synchroniser par le réseau et en temps réel un monde virtuel composé d'une centaine d'objets indépendants ? Au travers de cette étude, il s'agira de préciser quelles sont les techniques de synchronisa- tion qui existent et de proposer une implémentation concrète de deux versions ; l'interpolation de snapshots et la synchronisation des états. Durant ce travail, on mettra en valeur les enjeux et contraintes apportés par chacune d'entre elles mais également, on analysera leurs résultats, leurs performances et leurs améliorations possibles.
-
Intelligent Human Presence Assessment — 2018
Yi Thang
Nowadays the Internet of Thing (IoT) has entered people’s real life, thanks to the advent of multiple new technologies. More and more smart devices and sensors are connected to the Internet for collecting, transmitting, analyzing and monitoring data for different purpose. Web services enable seamless connectivity between millions of different devices and web servers. Nowadays RESTful-APIs are among the most popular interfaces due to their intuitive form and compactness. Thanks to machine learning, the IoT can provide even more intelligent and more useful information. This project provides the detailed implementation, with an explanation, of a presence-detection system, which consists of a Thingy 52/gateway, a Restful web-service based on Python/Flask and machine learning.
-
Relator: A RESTful application to manage relations between persons and data based on dynamic schemas — 2017
Christian Fries
Relator is a web application allowing users to manage persons and relations between persons, group persons and attach dynamic data to them in user separated workspaces. The available types of relations and dynamic data schemas can be defined by the user. The application consists of two parts, the RESTful API called Relator API and a web client consuming the API called Relator GUI. Implementing a stable and flexible API is the main focus of this project. The GUI is a prototype acting as proof of concept.
-
Entwicklung einer Applikation zur Lizenzprüfung — 2017
Cyril Michel
Damit der Judo- und Jiu-Jitsu-Verband bei Kursen eine Lizenzprüfung durchführen kann, wird eine technische Lösung benötigt. In dieser Arbeit wird diese Lösung erarbeitet und umgesetzt. Dabei steht eine Client-Server- Architektur mit einer REST-Schnittstelle im Vordergrund. Im Rahmen dieses Kleinprojekts werden in einem ersten Schritt die Kundenanforderungen erhoben und analysiert und im weiteren Verlauf technisch umgesetzt. Dazu wird für die Kommunikation zwischen Backend und Frontend eine REST-Schnittstelle verwendet. Zur Datenspeicherung wird eine NoSQL-Datenbank verwendet, welche in einem kleinen theoretischen Abschnitt thematisiert wird.
-
GestAuto, un site de gestion d'autoécoles — 2016
Alexande Monterroso
Dans une entreprise moderne, un système d’informations apparaît comme une nécessité incontournable. Ainsi, ce travail décrit comment une autoécole qui gère actuellement toute sa logistique, sa facturation et la gestion de l’entreprise manuellement et sur papier, peut améliorer son efficacité en utilisant un système d’information regroupant ses besoins actuels. GestAuto se propose de résoudre les problèmes courants de l’entreprise afin de lui faire économiser un temps considérable et par la même occasion, gagner en efficacité. Le travail commence en décrivant l’entreprise, puis en étudiant les besoins d’une telle entreprise. Pour terminer, un prototype de programme a été réalisé, GestAuto, qui permet à l’entreprise de réduire sa charge opérationnelle.PDF