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.

Thesis templates


Open projects

Master thesis

Bachelor thesis

  • Secure P2P Data Transfer using WebRTC

    Build an application to transfer data over WebRTC with end-to-end encryption. The goal is to create a simple application similar to magic-wormhole or croc that let people securly exchange files between browsers and/or the command line. If you want to learn Go and are interested in security and web protocols, this project is for you!

    If you are interested, please contact Arnaud Durand.

Selection of recently finished projects

Master thesis

  • 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.

    PDF wot framework

  • 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.

    PDF ace library (Python) ace server (embedded)

  • 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: 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.

    PDF project source code

Bachelor thesis

  • 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.

    PDFCamera stream serverIoT box

  • 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é.

    PDF project source code

  • 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