Porto · University Fernando Pessoa
Christophe Soares
I teach computer engineering. I show people how to build for the web, from the server to the browser, and I research systems that blend into everyday life: IoT, computer vision and applied AI.
I teach how to build for the web. I research IoT, computer vision and AI. And I develop the software that brings it all together.
Now
- I direct the BSc in Computer Engineering at UFP.
- I do research at LIACC, University of Porto, and work on the Precision Plastics and EMBRACE projects.
- In July I co-coordinated a Ciência Viva self-driving cars bootcamp for secondary-school students.
In numbers
- 2009 at UFP since
- 199 student works supervised, from BSc to PhD
- 142 BSc final projects
- 56 examination panels
Code to learn from
Projects I wrote for classes and for activities with students. They are on GitHub to read, run and change.
Keep scrolling to see them go by.
-
Excerpt from MicroServicesDemo/docker-compose.yml
auth-service: build: ./auth-service environment: DB_HOST: postgres DB_NAME: auth_db JWT_SECRET: supersecretkey-change-in-production # teaching moment: don't hardcode secrets PORT: "8001" networks: - demo-netMicroServicesDemo
A photo gallery split into services in Go, Node and Python, wired by RabbitMQ and put together with Docker Compose.
-
Excerpt from MicroFrontend/shell/webpack.config.js
new ModuleFederationPlugin({ name: 'shell', remotes: { appA: 'appA@http://localhost:3001/remoteEntry.js', appB: 'appB@http://localhost:3002/remoteEntry.js', appC: 'appC@http://localhost:3003/remoteEntry.js', }, })MicroFrontend
Micro frontends with Webpack 5 Module Federation: one page made of four independent React applications.
-
Excerpt from CienciaVivaUFP2026/day1/robot_kit.py
def andar_frente(segundos, velocidade=VELOCIDADE_PADRAO): """ Anda em frente, em linha reta, durante 'segundos'. Exemplo: robot.andar_frente(1.5) """ _car.steering = _val_steering(0.0) _car.throttle = _val_throttle(velocidade) time.sleep(segundos) parar()CienciaVivaUFP2026
Three days of robotics with the JetRacer for secondary-school students: from the first turn to SLAM with LIDAR.
-
Excerpt from ArtificialIntelligenceGame/app.js
const detections = await faceapi .detectSingleFace(video, new faceapi.TinyFaceDetectorOptions({ inputSize: 416, scoreThreshold: 0.3 })) .withFaceLandmarks() .withFaceExpressions();ArtificialIntelligenceGame
The Emotion Challenge: a game that reads facial expressions through the camera, in the browser and as a desktop app.
-
Excerpt from Golang-Gin-Swagger-Docker-Hot-Reload/cmd/api/main.go
evaluation := router.Group("/api/v1/evaluation") evaluation.Use(authMiddleware) { evaluation.POST("/", evaluationHandler.Create) evaluation.GET("/", evaluationHandler.GetAll) evaluation.GET("/:id", evaluationHandler.GetByID) evaluation.PUT("/:id", evaluationHandler.Update) evaluation.DELETE("/:id", evaluationHandler.Delete) }Golang-
Gin- Swagger- Docker- Hot- Reload A REST API in Go with Gin, JWT and Swagger documentation that reloads itself inside Docker.
-
+57
And 57 more public repositories, from JavaScript exercises to Spring Boot APIs.
All repositories on GitHub
Research
Ubiquitous computing and IoT, computer vision, machine learning and blockchain, usually in the service of smart spaces and health support systems.
Researcher at LIACC, University of Porto, since 2017
The full career, supervisions and examination panels are in the academic CV. homepage.ufp.pt/csoares
Areas
-
Ubiquitous computing
Computing that blends into everyday spaces, with context-aware systems.
-
IoT and edge
Sensor networks and edge computing to monitor industry and the environment.
-
Computer vision
Object and event detection, and medical image analysis.
-
Machine learning
Deep and reinforcement learning applied, from wearables to web applications.
-
Blockchain
Diplomas, self-sovereign identity, revocation and electronic voting.
-
Smart spaces and health
Technology that helps people live independently and safely.
Projects
-
Precision Plastics
ActiveIoT and AI to make plastic recycling more precise.
-
EMBRACE
ActivePreventing age-related decline: cognitive training, exercise, nutrition and digital literacy.
-
ESG4NPO
CompletedAn AI-assisted tool for sustainability in non-profit organisations.
-
Secure Horizons
CompletedFederated learning and the cloud to protect health data.
Recent publications
-
2024
-
JournalComputer vision
Object and Event Detection Pipeline for Rink Hockey Games Future Internet · doi:10.3390/fi16060179 -
JournalIoT and edge
An Efficient Edge Computing-Enabled Network for Used Cooking Oil Collection Sensors · doi:10.3390/s24072236 -
JournalComputer vision
Advancements in Glaucoma Diagnosis: The Role of AI in Medical Imaging Diagnostics · doi:10.3390/diagnostics14050530 -
ConferenceMachine learning
A Reinforcement Learning Based Recommender System Framework for Web Apps EPIA 2024 · doi:10.1007/978-3-031-73497-7_34
-
-
2023
-
JournalBlockchain
Blockchain-Based Electronic Voting: A Secure and Transparent Solution Cryptography · doi:10.3390/cryptography7020027
-
-
2022
-
JournalBlockchain
Analysis of Revocation Mechanisms for Blockchain Applications and a Proposed Model Based in Self-Sovereign Identity Journal of Information Technology Management · doi:10.22059/jitm.2022.87848 -
ConferenceMachine learning
Classification of Table Tennis Strokes in Wearable Device using Deep Learning ICAART 2022 · doi:10.5220/0010871100003116 -
ConferenceIoT and edge
An IoT Sensing System for Managing Industrial FOG-Separators SmartNets 2022 · doi:10.1109/SmartNets55823.2022.9993981
-
Contact
For classes, supervision or collaboration, email is the best way to reach me.
Praça 9 de Abril, 349
4249-004 Porto, Portugal