Skip to content

Portfolio

Our work

From data to design, from web to textile: a selection of projects that illustrate our philosophy, “One is all, all is one”.

Projects

13 projects shown

Textile

Skate Streetwear Collection

Printing and screen printing of a streetwear range for a 100% French skate brand.

Balek Skateboard apparel
Client
Balek Skateboard
Year
2024
Expertise
Textile Printing
Services
Screen Printing, Textile Printing

Context

Balek Skateboard, an emerging streetwear and skate brand, wanted to develop an apparel range reflecting the urban spirit of its community. The challenge was to offer durable products, true to the brand’s DNA and made with a local approach.

Our approach

We opted for a production 100% printed and screen-printed in France. Screen printing was chosen to guarantee flawless durability over time, even under the demands and friction of skateboarding.

Deliverables

A high-quality streetwear collection, ready for sale (Go Skate!), combining comfort and durability.

  • Skate Streetwear Collection (Balek Skateboard) — image 2
  • Skate Streetwear Collection (Balek Skateboard) — image 3
  • Skate Streetwear Collection (Balek Skateboard) — image 4
  • Skate Streetwear Collection (Balek Skateboard) — image 5
  • Skate Streetwear Collection (Balek Skateboard) — image 6
  • Skate Streetwear Collection (Balek Skateboard) — image 7
  • Skate Streetwear Collection (Balek Skateboard) — image 8
Textile

Fêtes de Bayonne Team Gear

Velvet flock and digital printing for the visual identity of a sports group at summer events.

Kayou T-shirts and tank tops for the Fêtes de Bayonne
Client
Kayou
Year
2024
Expertise
Textile Printing
Services
Velvet Flock, Digital Printing (DTG)

Context

Ready for the Fêtes de Bayonne? Team Kayou certainly was! We had the pleasure of kitting out this group of friends and athletes for their summer events. The goal was to create a unique, striking visual identity so the whole crew would stand out in the crowd.

Our approach

For the best result on different garments, we combined two techniques:

  • On the black tank tops: red and black flock for an ultra-sharp finish, with a premium velvet feel that makes all the difference.
  • On the white T-shirts: digital printing to reproduce more complex, detailed and creative designs.

Deliverables

The perfect combo to stand out during a race or a party. A durable, comfortable textile series for a memorable summer!

  • Fêtes de Bayonne Team Gear (Kayou) — image 2
  • Fêtes de Bayonne Team Gear (Kayou) — image 3
  • Fêtes de Bayonne Team Gear (Kayou) — image 4
  • Fêtes de Bayonne Team Gear (Kayou) — image 5
Textile

Event Cups (Ecocups)

Full-colour customisation of translucent reusable cups for trade union events.

CFDT Enedis Ecocups
Client
CFDT Enedis
Year
2023
Expertise
Textile Printing
Services
Four-Colour Printing, Promotional Items

Context

For its gatherings and professional events, the CFDT Enedis union branch needed physical communication items that were useful and environmentally friendly, to replace disposable cups.

Our approach

We selected “Ecocup” reusable cups (translucent 33cl format). The design was printed in four-colour process to strictly follow the union’s brand guidelines and official colours, with a print proof approved beforehand.

Deliverables

A series of custom, sturdy and eco-friendly cups, perfect for spreading the brand image at physical events.

  • Event Cups (Ecocups) (CFDT Enedis) — image 2
  • Event Cups (Ecocups) (CFDT Enedis) — image 3
Textile

Art & Street-Culture Merchandising

Bringing the 'creepycute' art world to textiles and creating custom stickers.

Textiles and stickers by the artist P4PBLUR
Client
P4PBLUR
Year
2024
Expertise
Textile Printing
Services
Digital Printing, Sticker Design

Context

A Fine Arts graduate, P4PBLUR is an artist with a “creepycute” universe (a bittersweet blend of gothic and kawaii). Working mainly with acrylic markers, she wanted to bring her adorable monsters and strange characters to physical products for her community and her shop.

Our approach

The main challenge was to preserve the spontaneity of her marker strokes and her colour nuances. We used digital textile printing to reproduce every detail of her artworks, complemented by a series of custom stickers featuring her signature characters.

Deliverables

A merchandising range faithful to the artist’s sensitive and quirky universe, taking her work beyond the canvas.

  • Art & Street-Culture Merchandising (P4PBLUR) — image 2
  • Art & Street-Culture Merchandising (P4PBLUR) — image 3
  • Art & Street-Culture Merchandising (P4PBLUR) — image 4
  • Art & Street-Culture Merchandising (P4PBLUR) — image 5
  • Art & Street-Culture Merchandising (P4PBLUR) — image 6
  • Art & Street-Culture Merchandising (P4PBLUR) — image 7
Textile

Custom Zip Hoodies

Digital printing on zip hoodies to grow the rum brand's merchandising.

Black La Yeyette au Rhum zip hoodie
Client
La Yeyette au Rhum
Year
2023
Expertise
Textile Printing
Services
Digital Printing, Premium Textile

Context

La Yeyette au Rhum, a friendly summer brand, wanted to extend its visibility by offering its team and loyal customers warm clothing for the off-season, while keeping the brand’s festive spirit.

Our approach

We chose zip hoodies, comfortable and practical. The marking was done with digital printing to ensure the brand’s complex logo integrates perfectly into the fibre of the black garment, for durability and style.

Deliverables

Premium zip hoodies in the brand’s colours, strengthening the sense of belonging to the “La Yeyette” community.

  • Custom Zip Hoodies (La Yeyette au Rhum) — image 2
  • Custom Zip Hoodies (La Yeyette au Rhum) — image 3
Textile

Polo Team Kit & Sportswear

High-end embroidery and printing on a full range of apparel and accessories for the Adelante polo team.

Navy Adelante polo shirt with the gold « Adelante Polo Team » logo embroidered on the back
Client
Adelante
Year
2024
Expertise
Textile Printing
Services
Embroidery, Textile Printing

Context

The Adelante Polo Team wanted a complete range of apparel and accessories in its colours. The goal was to combine the elegance of the polo world with comfortable, high-performance materials suited to matches, training and life around the field.

Our approach

We selected textiles designed for sport and applied different marking techniques depending on the item: precision embroidery on polo shirts and towels, for durability and prestige, and high-quality printing on hoodies and neck warmers (snoods).

Deliverables

A complete pack of premium sports gear (polo shirts, hoodies, neck warmers, towels) reinforcing the visual identity of the Adelante Polo Team, on and off the field.

  • Polo Team Kit & Sportswear (Adelante) — image 2
  • Polo Team Kit & Sportswear (Adelante) — image 3
  • Polo Team Kit & Sportswear (Adelante) — image 4
  • Polo Team Kit & Sportswear (Adelante) — image 5
  • Polo Team Kit & Sportswear (Adelante) — image 6
Web

E-commerce Redesign & Visual Identity - La Yeyette au Rhum

New logo, labels and a custom WooCommerce store (consumers, events, trade) for a craft rum brand from Pau.

La Yeyette au Rhum shop page: catalogue of infused rums with category and fruit filters
Client
La Yeyette au Rhum
Year
2024
Expertise
Digital Design
Services
Visual Identity, Label Design, E-commerce, Social Media
Tools
  • WordPress
  • WooCommerce

Context

The French craft rum brand “La Yeyette au Rhum” (based in Pau) had a new look and exceptional, 100% natural recipes. It needed a new digital home and a visual identity worthy of its sunny world, to shine online and structure its growth.

Our approach

Within the Entité & Co ecosystem, we led a global, cross-functional project:

  • Visual Identity & Branding (KVN HGS): a striking new logo, eye-catching label designs so that every bottle stands out, plus communication materials and a social media strategy.
  • E-commerce Development: a custom online store built on WordPress & WooCommerce to handle complex needs: consumer sales (with custom gift packs), services for events (weddings, birthdays), and a dedicated area for trade customers (bars, wine shops, resellers).

Deliverables

A smooth, user-friendly and responsive e-commerce platform, paired with a strong, assertive brand identity, ready to take customers’ taste buds on a journey while simplifying the brand’s day-to-day management.

  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 2
  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 3
  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 4
  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 5
  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 6
  • E-commerce Redesign & Visual Identity - La Yeyette au Rhum (La Yeyette au Rhum) — image 7
Web

Showcase Website Redesign - Pavillons de l'Atlantique

Responsive showcase website focused on trust and local SEO for a custom home builder in Gironde.

Mobile home page of the Pavillons de l'Atlantique website: « La qualité au juste prix »
Client
Pavillons de l'Atlantique
Year
2024
Expertise
Digital Design
Services
Web Design, Showcase Website, SEO Optimisation

Context

A custom home builder for more than 18 years (first in Gradignan, now based in Villenave d’Ornon), “Pavillons de l’Atlantique” helps around thirty families a year with their life project. The goal was to modernise its online presence to reflect its reliability, its strict guarantees (CCMI build contract, ten-year warranty, structural damage insurance) and its local roots.

Our approach

We designed a showcase website focused on clarity, trust and user experience:

  • Usability & Design: a modern, clean and fully responsive interface showcasing their know-how and end-to-end support.
  • Information Architecture: clear structure for the builder’s guarantees and emphasis on the company’s human, local dimension.
  • SEO & Performance: technical best practices to maximise local visibility among home-building projects in Gironde.

Deliverables

A professional, highly secure and optimised showcase website, serving as a trusted acquisition channel for future homeowners.

  • Showcase Website Redesign - Pavillons de l'Atlantique (Pavillons de l'Atlantique) — image 2
  • Showcase Website Redesign - Pavillons de l'Atlantique (Pavillons de l'Atlantique) — image 3
  • Showcase Website Redesign - Pavillons de l'Atlantique (Pavillons de l'Atlantique) — image 4
Data & AI

Intelligent Multi-Model System — Customer Retention & Revenue Risk

Proactive decision-support system that anticipates customer disengagement and estimates "Revenue at Risk", maximising Customer Success ROI.

Client
EFREI academic project
Year
2026
Expertise
Data & AI
Services
Data Science, Machine Learning, Data Engineering, Dashboard
Tools
  • Machine Learning
  • FastAPI
  • Streamlit
  • Docker
  • MLOps

Context

In the services sector, acquiring a new customer costs 5 to 25 times more than retaining an existing one. This certification project (RNCP40875, Data Engineering Expert — EFREI Paris), built by Kévin HEUGAS & Valentin MASSONNIERE, turns raw customer activity data into a proactive decision-support system that anticipates disengagement and dynamically estimates "Revenue at Risk".

Our approach

The project delivers a complete AI pipeline (hybrid Agile/CRISP-DM).

  • Modelling & ML

    Training and comparing several algorithms (Logistic Regression, Random Forest, XGBoost, Deep Learning). Logistic Regression was selected for maximising Recall (63.7%) to effectively target customers about to leave.

  • Data Engineering & Deployment

    A FastAPI API containerised with Docker, and class imbalance handled with SMOTE.

  • Interface

    An interactive Streamlit dashboard for customer simulation and global analysis.

Deliverables

An inference micro-service (API) and a complete analytics dashboard, deployed with Docker Compose, helping business teams optimise the ROI of their retention campaigns.

Live demo

The simulator, live

Adjust a customer profile and watch their churn probability and the revenue at stake. Hosted on Streamlit Cloud, the app may take a few seconds to wake up.

Business decision & modelling

The least “accurate” model was the right one

XGBoost has the best Accuracy, but when only ~20% of customers leave, predicting “stays” almost everywhere is enough to be right 9 times out of 10. Its 3.4% Recall makes it blind to churn. Logistic Regression, at 66.9% Accuracy, is the only model able to detect two thirds of the customers about to leave (63.7% Recall): that is what matters to a Customer Success team.

  • Logistic Regression

    Selected
    Recall
    63.7%
    Accuracy
    66.9%
  • XGBoost / Random Forest

    Discarded
    Recall
    3.4%
    Accuracy
    89.0%

SMOTE rebalancing

With ~20% churn, the minority class is under-represented. SMOTE generates synthetic churners in the training set so the model actually learns their profile.

SHAP

Interpretable by design

Readable coefficients and global SHAP analysis: every risk score can be explained to business teams.

MLOps architecture

From raw data to dashboard

The end-to-end pipeline, from exploratory analysis to the micro-service feeding the dashboard.

Data Prep

EDA & Preprocessing

Exploratory analysis of the raw data (10,000 customers), then minority-class rebalancing with SMOTE and feature scaling with StandardScaler.

  • Pandas
  • SMOTE
  • StandardScaler

Tech stack

Tooling

Backend & ML

  • Python 3.10
  • Scikit-learn
  • XGBoost
  • Imbalanced-learn (SMOTE)
  • SHAP
  • Joblib

API & UI

  • FastAPI
  • Uvicorn
  • Streamlit
  • Plotly

Industrialisation

  • Docker
  • Docker-Compose
  • Makefile
  • Git
View the full source code (GitHub)(new tab)

Docker setup, notebooks and the API running behind the scenes.

Data & AI

AISCA - Semantic & Generative AI Agent

Tech & Data career agent: local semantic analysis (SBERT) and generative AI (Google Gemini) in a RAG architecture to match profiles with real opportunities.

Client
EFREI academic project
Year
2026
Expertise
Data & AI
Services
NLP, Generative AI, RAG, Data Engineering
Tools
  • NLP
  • GenAI
  • RAG
  • Streamlit
  • SBERT

Context

An intelligent career guidance application for Tech & Data. It combines local semantic analysis (SBERT) and Generative AI (Google Gemini) through a RAG architecture to match profiles with real opportunities. The challenge: moving beyond rigid keyword matching with an end-to-end solution (Data Engineering + NLP + GenAI + UI). RNCP40875 certification project (Data Engineering Expert) — EFREI Paris.

Our approach

  • Semantic Engine (NLP)

    SBERT vectorisation and cosine similarity, with no reliance on exact keywords.

  • RAG Architecture & GenAI

    Enrichment of thin bios, contextual translation and personalised coaching with Google Gemini.

  • Hybrid Filtering & Cache

    Logical guardrails (maths/coding levels) to prevent hallucinations, and an in-memory caching system (history.csv).

Deliverables

A working Streamlit web application providing accurate semantic analysis and AI coaching, demonstrating the ability to orchestrate local models and remote LLMs together.

Live demo

The agent, live

Describe your profile in a few lines to get the semantically closest IT roles, then an AI-generated coaching plan. Hosted on Streamlit Cloud, the app may take a few seconds to wake up.

Architecture

From bio to coaching plan

A local semantic engine, framed by deterministic rules, then augmented by an LLM. Select a component to read the technical choices.

ETL & Cache

Data Loader & History

Loading of the cleaned JSON reference data, and request cache management (history.csv) so an analysis is never computed twice.

  • JSON
  • Pandas
  • history.csv

Tech stack

Tooling

NLP & ML

  • Sentence-Transformers
  • SBERT
  • Scikit-Learn
  • Numpy
  • Pandas

GenAI

  • Google Gemini API
  • google-generativeai
  • RAG

Interface

  • Streamlit
  • Plotly (Radars)
  • FPDF (Export PDF)

Deployment

  • Docker
  • Docker-Compose
  • Hugging Face
  • Streamlit Cloud
View the full source code (GitHub)(new tab)

SBERT engine, Gemini RAG pipeline, Streamlit interface and Docker setup.

Data & AI

Urban Data Explorer - Housing Dashboard

Housing exploration platform for Paris: Open Data pipeline (Bronze/Silver/Gold), filtering API and interactive map dashboard.

Client
EFREI academic project
Year
2026
Expertise
Data & AI
Services
Data Engineering, API, Dataviz

Context

Access to housing in Paris tells a complex story of soaring prices per square metre, precious social housing and neighbourhoods in transformation. The "Urban Data Explorer" project aims to explore, understand and compare housing dynamics in the heart of the capital.

Our approach

The project builds a complete platform, from the data pipeline to map visualisation.

  • Data Engineering

    Extraction of geolocated multi-source data (APIs, Open Data), cleaning, normalisation and geocoding. Storage is organised by processing layers (Bronze/Silver/Gold).

  • Backend

    A high-performance web API for filtering by area, period or housing category.

  • Dataviz

    An interactive dashboard with smooth navigation by arrondissement, including maps (choropleths and points), charts, a timeline and a side-by-side comparison mode.

Deliverables

A complete interactive web dashboard (pipeline, API, map front-end), built on open data, offering an accessible and intuitive view of the Parisian housing market.

Live demo

The dashboard, live

Pick an indicator, click an arrondissement and scrub the timeline: the map below is the real application, served as a static export.

Architecture

From raw file to map

A medallion architecture (Bronze → Silver → Gold) served by a secured API. Select a component to read the technical choices.

Bronze

Sources & Bronze Zone

Automated extraction via a daily Cron job. Heterogeneous ingestion: massive DVF files (.txt) from Data.gouv and OpenData APIs (Paris, IDF Mobilités) stored locally in their raw state.

  • Cron
  • DVF .txt
  • OpenData API

Tech stack

Tooling

Data

  • PostgreSQL
  • MongoDB

Backend

  • Python
  • Flask

Frontend

  • MapLibre
  • Plotly

Infra

  • Docker
  • Kubernetes
View the full source code (GitHub)(new tab)

ETL pipeline, Flask API and MapLibre map client.

Data & AI

My Social Network API - Backend Architecture

Secure REST API (Node.js, Express, MongoDB) for a social network: groups, events, transactional ticketing, carpooling and polls.

Client
EFREI academic project
Year
2026
Expertise
Data & AI
Services
REST API, Backend Development, API Security, Data Modelling
Tools
  • Node.js
  • Express
  • MongoDB
  • JWT
  • Postman

Context

This project is part of a professional simulation in which Facebook commissioned a REST API for a brand-new social networking service. The goal was to design a robust backend architecture, with full freedom over the endpoint design, while meeting a precise functional specification.

Our approach

To meet these requirements, a complete and secure RESTful API was built with Node.js, Express and MongoDB.

  • Architecture & Modelling

    Advanced database schemas to manage users, groups (public, private, secret) and events.

  • Social Features

    Discussion threads attached to groups or events, commentable photo albums and interactive polls.

  • Ticketing & Transactions

    Ticketing with strict stock control (one ticket per outside attendee) handled through atomic MongoDB transactions (mongoose.startSession()).

  • Collaborative Modules (Bonus)

    An event Shopping List and an interactive Carpooling module.

  • Maximum Security

    JWT authentication, bcrypt password hashing, rate limiting against brute force, hardened headers (Helmet) and HTTPS-only encrypted traffic.

Deliverables

A fully working REST API documented in Postman, with source code validated by security tests and an architectural visualisation through an interactive Terminal component and a data flow diagram.

API in action

One ticket purchase, one transaction

No user interface: the API reads through its requests. Here is the real ticket purchase call from the Postman collection, and the document returned by the server.

zsh — https://localhost:3000

Request

POST /events/68ff53f7feb4ed139d5dbb45/purchase HTTP/1.1
Host: localhost:3000
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Content-Type: application/json

{
  "ticketTypeId": "690650cac85bc6f4f34b2676",
  "buyerFirstName": "Peter",
  "buyerLastName": "Pan",
  "buyerAddress": "123 Neverland St, London",
  "buyerEmail": "peter.pan@test.com"
}

ResponseHTTP/1.1 201 Created

{
  "_id": "6906528fc85bc6f4f34b2690",
  "event": "68ff53f7feb4ed139d5dbb45",
  "ticketType": "690650cac85bc6f4f34b2676",
  "buyerFirstName": "Peter",
  "buyerLastName": "Pan",
  "buyerAddress": "123 Neverland St, London",
  "buyerEmail": "peter.pan@test.com",
  "purchaseDate": "2025-11-01T18:42:07.311Z",
  "createdAt": "2025-11-01T18:42:07.311Z",
  "updatedAt": "2025-11-01T18:42:07.311Z"
}

Inside a MongoDB session

  1. 1The event exists and is public, otherwise ticketing is refused.
  2. 2The ticket type actually belongs to this event.
  3. 3Stock check: soldCount < quantity.
  4. 4Ticket creation; the unique index (event + email) blocks a second purchase (409).
  5. 5Atomic soldCount increment ($inc), then full commit or rollback.

API surface

57 documented requests

Every resource of the Postman collection, with its HTTP verb breakdown.

  • Users & Authentification

    8 requests

    • GET × 3
    • POST × 2
    • PUT × 2
    • DELETE × 1
  • Groups

    10 requests

    • GET × 4
    • POST × 4
    • PUT × 1
    • DELETE × 1
  • Events

    7 requests

    • GET × 2
    • POST × 3
    • PUT × 1
    • DELETE × 1
  • Discussion Threads

    6 requests

    • GET × 2
    • POST × 2
    • PUT × 1
    • DELETE × 1
  • Photo Albums

    7 requests

    • GET × 3
    • POST × 3
    • DELETE × 1
  • Polls

    5 requests

    • GET × 2
    • POST × 2
    • DELETE × 1
  • Ticketing

    6 requests

    • GET × 2
    • POST × 2
    • PUT × 1
    • DELETE × 1
  • Shopping List

    4 requests

    • GET × 1
    • POST × 1
    • PUT × 1
    • DELETE × 1
  • Carpooling

    4 requests

    • GET × 1
    • POST × 1
    • PUT × 1
    • DELETE × 1

Architecture

The data model

Thirteen Mongoose schemas linked by references. The event is the hub: ticketing, carpooling, shopping list, albums, polls and discussion thread all hang off it.

View the Mermaid code
erDiagram
  User {
    ObjectId _id PK
    string firstname
    string lastname
    string email UK
    string password "bcrypt"
    string avatar
  }
  Group {
    ObjectId _id PK
    string name
    string groupType "public | private | secret"
    ObjectId[] admins FK
    ObjectId[] members FK
    object settings
  }
  Event {
    ObjectId _id PK
    string name
    date startDate
    date endDate
    string location
    boolean isPrivate
    ObjectId group FK
    boolean shoppingListEnabled
    boolean carpoolingEnabled
  }
  TicketType {
    ObjectId _id PK
    ObjectId event FK
    string name
    number price
    number quantity
    number soldCount
  }
  PurchasedTicket {
    ObjectId _id PK
    ObjectId event FK
    ObjectId ticketType FK
    string buyerEmail "unique par event"
    date purchaseDate
  }
  CarpoolOffer {
    ObjectId _id PK
    ObjectId event FK
    ObjectId driver FK
    string departureLocation
    date departureTime
    number price
    number availableSeats
    number maxDetourMinutes
  }
  ShoppingListItem {
    ObjectId _id PK
    ObjectId event FK
    ObjectId user FK
    string itemName
    number quantity
    date arrivalTime
  }
  User }o--o{ Group : "admin / member"
  Group |o--o{ Event : "hosts"
  User }o--o{ Event : "organises / attends"
  Group ||--o| DiscussionThread : "thread"
  Event ||--o| DiscussionThread : "thread"
  DiscussionThread ||--o{ Message : "contains"
  User ||--o{ Message : "writes"
  Message |o--o{ Message : "replies to"
  Event ||--o{ PhotoAlbum : "albums"
  PhotoAlbum ||--o{ Photo : "contains"
  User ||--o{ Photo : "uploads"
  Event ||--o{ Poll : "polls"
  Poll ||--o{ PollResponse : "responses"
  User ||--o{ PollResponse : "votes"
  Event ||--o{ TicketType : "ticketing"
  TicketType ||--o{ PurchasedTicket : "sold as"
  Event ||--o{ PurchasedTicket : "1 per email"
  Event ||--o{ ShoppingListItem : "shopping list"
  User ||--o{ ShoppingListItem : "brings"
  Event ||--o{ CarpoolOffer : "carpooling"
  User ||--o{ CarpoolOffer : "drives"

Tech stack

Tooling

Runtime & API

  • Node.js (ESM)
  • Express
  • REST

Data

  • MongoDB
  • Mongoose
  • Transactions ACID

Security

  • JWT
  • bcrypt
  • Helmet
  • express-rate-limit
  • CORS
  • HTTPS / TLS

Tooling

  • Postman
  • ESLint
  • compression
  • dotenv
View the full source code (GitHub)(new tab)

Express controllers, Mongoose schemas, JWT middleware and the full Postman collection.

Data & AI

Hubble Lakehouse — Big Data Architecture & Space Weather

Medallion Big Data pipeline, batch and streaming: Hubble telescope observations joined with NOAA space weather, served as 4 business datamarts.

Client
M1 Data Engineering & AI academic project - EFREI Paris
Year
2026
Expertise
Data & AI
Services
Data Engineering, Lakehouse Architecture, Streaming, DevOps
Tools
  • Apache Spark
  • Airflow
  • HDFS
  • Kubernetes
  • Power BI

Context

Design an end-to-end Lakehouse architecture to ingest, clean and expose heterogeneous data: a massive history of more than 30 years of observations and a continuous space weather feed.

Our approach

A Big Data pipeline (Medallion architecture) processes, in batch and streaming, the metadata of Hubble telescope observations joined with space weather (NOAA), to feed four business datamarts.

  • Physicist Datamart

    Sky mapping to identify over-observed regions and the blind spots of research.

  • Chemist Datamart

    Spectrographic analysis of narrow-band filters (hydrogen, oxygen, sulphur).

  • Biologist Datamart

    Detection of observations corrupted by solar flares (NOAA space weather).

  • Engineer Datamart

    Maintenance tracking and how instrument calibration times evolve over time.

Deliverables

A fully working end-to-end Big Data pipeline: source code versioned on GitHub, a JWT-secured API, a video demo of the data flows and a Power BI decision report split into four business pages.

Medallion architecture

From telescope to dashboard

Two sources, three HDFS layers, a Hive catalogue and a secured API. Select a component to read the technical choices.

Sources

MAST Hubble & NOAA SWPC

Massive history of Hubble observations (MAST CSV export) batch-loaded into a PostgreSQL source table; JSON space weather feed from the NOAA SWPC API consumed continuously.

  • MAST CSV
  • PostgreSQL
  • NOAA SWPC API

Tech stack

Tooling

Sources & Storage

  • PostgreSQL
  • HDFS
  • Parquet

Processing & Engine

  • Apache Spark
  • Structured Streaming
  • Spark SQL

Governance & Orchestration

  • Apache Hive Metastore
  • Apache Airflow (DAGs)

Backend & API

  • Python
  • Flask
  • JWT
  • Gunicorn

DevOps & Infra

  • Docker
  • Kubernetes
  • GitLab CI/CD

Visualisation

  • Power BI (4 business pages)
View the full source code (GitHub)(new tab)

Built by Kévin HEUGAS & Valentin MASSONNIERE: Airflow DAGs, Spark jobs, Flask API and Kubernetes manifests.

Got a project in mind?

Data, web or textile: a single entity to connect every dot of your project.