Introduction à Supabase

Tag :
  • MON
Auteur :
  • Manuela BARRETO
2024-2025

Un MON traitant d'une introduction à Supabase et comment l'utiliser dans un projet kotlin dans android studio.

Prérequis

Il y a pas de prérequis pour ce MON

Contenu

1. Objectif de l'Étude

Ce rapport documente mon étude sur Supabase, une alternative open-source à Firebase. L'objectif était de comprendre les concepts principaux, de configurer et d'utiliser une base de données sur Supabase, et d'apprendre comment l'intégrer avec un projet Android en Kotlin dans Android Studio pour pouvoir l'utiliser dans mon POK3.


2. Structure du Rapport


3. Concepts Principaux

Supabase est une plateforme qui offre des solutions complètes pour des applications modernes, comme la gestion de base de données, l'authentification, le stockage et les fonctions serverless. Les principaux concepts abordés sont :

  1. Base de Données

    • Supabase utilise PostgreSQL, l'un des systèmes de gestion de bases de données relationnelles les plus robustes et populaires.
    • Concepts clés étudiés :
      • Tables : Structures pour organiser les données.
      • Requêtes SQL : Méthode pour manipuler et rechercher des informations dans la base de données.
      • Relations : Connexions entre les tables (ex. : 1:N, N:N).
  2. Authentification

    • Supabase dispose d'un support intégré pour l'authentification des utilisateurs (e-mail, mot de passe, OAuth).
    • Les règles de sécurité sont configurées à l'aide de RLS (Row-Level Security), permettant de contrôler l'accès aux données de manière détaillée.
  3. API

    • Supabase génère automatiquement une API REST pour interagir avec la base de données.
    • Il supporte également GraphQL pour les requêtes et mutations.
    • Les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) sont effectuées directement via l'API.
  4. Stockage

    • Il propose un stockage de fichiers pour les téléchargements (images, documents, etc.).
    • L'URL des fichiers peut être stockée dans la base de données pour référence.
  5. Fonctions Serverless (Edge Functions)

    • Permet de créer des fonctions personnalisées côté serveur, déclenchées par des événements ou accessibles via l'API.

4. Outils et Configuration

Les principaux outils utilisés étaient :


5. Étapes de l'Étude

  1. Introduction à Supabase

    • Étude de ce qu'est Supabase et de ses principales fonctionnalités.
    • Création d'un compte sur le tableau de bord de Supabase.
  2. Base de Données PostgreSQL sur Supabase

    • Configuration initiale du projet et création des tables.
    • Exécution de requêtes basiques (SQL) directement sur le tableau de bord.
    • Configuration des relations entre les tables.
  3. Authentification et Sécurité

    • Configuration de l'authentification des utilisateurs sur Supabase.
    • Étude et mise en place des règles de sécurité avec RLS.
  4. Intégration avec Kotlin et Android Studio

    • Étude des API REST générées automatiquement par Supabase.
    • Étude de la bibliothèque supabase-kt pour intégrer Supabase avec Kotlin.
  5. Stockage de Fichiers

    • Étude et configuration des buckets pour le téléchargement de fichiers.

6. Projet Pratique (POK3)

Description Brève du Projet : Mon POK3 consiste à développer une application similaire à Strava, mais axée sur l'enregistrement des sessions d'étude plutôt que des activités physiques. Les utilisateurs peuvent :

Structure de la Base de Données : Pour répondre aux exigences de l'application, la structure suivante a été créée sur Supabase :

Supabase Database

Intégration avec Kotlin et Android Studio : supabase-kt est une bibliothèque officielle de Supabase pour Kotlin. Elle facilite l'intégration des services Supabase dans des applications Kotlin et Android. Voici son fonctionnement :

Stockage de Fichiers : Supabase propose un système de stockage de fichiers pouvant être utilisé pour stocker des images de profil, des pièces jointes d'étude, etc.


7. Améliorations Possibles pendant le POK3

Pendant la conception de la base de données, quelques améliorations et fonctionnalités futures ont été identifiées :


8. Conclusion

Cette étude a été essentielle pour comprendre comment utiliser Supabase comme backend pour des projets. Il offre une solution robuste, facile à configurer et remplie de fonctionnalités, telles que l'authentification intégrée, le stockage de fichiers et les fonctions serverless. En plus de son intégration avec Kotlin, il offre de nombreuses autres possibilités d'intégration avec le frontend. De plus, il propose une version gratuite très complète et utile.