An open API service indexing awesome lists of open source software.

https://github.com/coopcodecommun/pyopenbadges

PyOpenBadges: A modern Python library for creating, validating, and managing digital badges compliant with the IMS Global OpenBadge v3.0 specification. Ideal for educational institutions, training platforms, and certification providers looking to implement digital badges with Python.
https://github.com/coopcodecommun/pyopenbadges

badge-issuer badge-validation certification credentials digital-badges digital-credentials education-technology ims-global json-ld multilingual open-standard openbadges pydantic python python-library tdd verifiable-credentials

Last synced: about 2 months ago
JSON representation

PyOpenBadges: A modern Python library for creating, validating, and managing digital badges compliant with the IMS Global OpenBadge v3.0 specification. Ideal for educational institutions, training platforms, and certification providers looking to implement digital badges with Python.

Awesome Lists containing this project

README

        

# PyOpenBadges

[![🇬🇧 English version](https://img.shields.io/badge/🇬🇧_English_version-blue.svg)](README.md)
[![Tests](https://img.shields.io/github/actions/workflow/status/username/pyopenbadges/tests.yml?branch=main&label=tests)](https://github.com/username/pyopenbadges/actions)
[![Coverage](https://img.shields.io/codecov/c/github/username/pyopenbadges)](https://codecov.io/gh/username/pyopenbadges)

Une librairie Python moderne pour la création, la validation et la gestion des badges numériques conformes à la spécification OpenBadge v3.0 de l'IMS Global.

Plus d'info sur les OpenBadges : https://openbadges.info/

## Caractéristiques

- Implémentation complète de la spécification OpenBadge v3.0
- Modèles Pydantic avec validation intégrée
- Conversion vers/depuis JSON-LD
- Utilitaires de validation avancés
- Compatibilité avec les Verifiable Credentials

## Verifiable Credentials

Les Verifiable Credentials sont comme des cartes d'identité numériques qu'on peut vérifier :

- Ce sont des documents numériques qui prouvent quelque chose sur quelqu'un
- Ils sont signés par une entité de confiance (l'émetteur)
- Ils peuvent être vérifiés pour s'assurer qu'ils sont authentiques et n'ont pas été falsifiés

Dans PyOpenBadges, les badges numériques sont implémentés comme des Verifiable Credentials :
- L'émetteur du badge est l'émetteur du credential
- Le destinataire du badge est le sujet du credential
- Le badge lui-même est représenté comme un Achievement
- Le credential peut être vérifié cryptographiquement pour son authenticité

## Installation

```bash
# Avec pip
pip install pyopenbadges

# Avec poetry (recommandé)
poetry add pyopenbadges
```

## Utilisation rapide

```python
from pyopenbadges.models import Profile, Achievement, OpenBadgeCredential, AchievementSubject
from datetime import datetime

# Créer un émetteur (Profile)
issuer = Profile(
id="https://example.org/issuers/1",
type="Profile",
name="Mon Organisation",
description="Organisation qui délivre des badges",
url="https://example.org"
)

# Créer un badge (Achievement)
badge = Achievement(
id="https://example.org/badges/1",
type="Achievement",
name="Badge Python",
description="Pour la maîtrise de Python",
issuer=issuer
)

# Créer une attribution de badge (Credential)
credential = OpenBadgeCredential(
id="https://example.org/credentials/1",
type=["VerifiableCredential", "OpenBadgeCredential"],
issuer=issuer,
issuanceDate=datetime.now(),
credentialSubject=AchievementSubject(
id="did:example:recipient123",
type="AchievementSubject",
name="Jean Dupont",
achievement=badge
)
)

# Convertir en JSON-LD
json_ld = credential.to_json_ld()
print(json_ld)
```

## Documentation

Pour plus de détails sur l'utilisation de cette librairie, consultez le [tutoriel](TUTORIAL.fr.md) et la [documentation complète](DOCUMENTATION.md).

## Licence
LGPL