Aller au contenu principal
logoYvan Kerdanet
Tous les projets
KerdanetYvan /

Wiki-Demon-Slayer

App Django de projet Scolaire

Créé le 16 janvier 2026 · Dernière mise à jour 22 janvier 2026

// langages

CSS38.0%JavaScript37.7%Python22.5%HTML1.8%

// README

Wiki Demon Slayer

Ce projet est un projet scolaire pour but d'exploiter les technologies Django et React

Projet réalisé par Yvan KERDANET But du projet : Réalisation d'un site ressourçant les données sur les personnages de Demon Slayer et ce qu'ils utilisent

Contrainte du projet

  • Django = admin
  • Django Rest Framework = api en lecture seule
  • Vue ou React ou Angular = front, listes/détail/search/pagination/rebonds servi par Django -> static
  • Admin = export PDF d'une fiche, graphique matplotlib, Export de la base de données, générer des données aléatoires
  • BDD = Oracle (via docker)
  • Une table principale (7 champs minimum), une ou plusieurs 1-N, une ou plusieur N-N
  • Projet solo, github partagé avec l'utilisateur rcarlier : dans le README, noté Nom/Prénom/sujet

Structure de la base de données

Table Principale : Characters (Personnages)

Table principale avec 7+ champs

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom du personnage
character_typeVARCHAR(20)Type : "Slayer" ou "Demon"
rankVARCHAR(50)Rang (Hashira, Lower Moon, Upper Moon, etc.)
descriptionTEXTDescription du personnage
imageIMAGEFIELD()Fichier de l'image du personnage
statusVARCHAR(20)Statut : "Alive" ou "Deceased"
affiliation_idINTEGER (FK)Référence vers l'organisation
breathing_style_idINTEGER (FK)Référence vers Breathing_Styles (nullable, uniquement pour Slayers)
created_atDATETIMEDate de création
updated_atDATETIMEDate de modification

Tables Secondaires

Affiliations (Organisations) - Relation 1-N

Organisations auxquelles appartiennent les personnages

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom (ex: Demon Slayer Corps, Twelve Kizuki)
descriptionTEXTDescription de l'organisation
typeVARCHAR(50)Type (Slayer, Demon, Neutral)

Relation : Un personnage appartient à une organisation (1-N)


Breathing_Styles (Techniques de respiration) - Relation 1-N

Styles de combat utilisés par les Slayers

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom (ex: Water Breathing, Flame Breathing)
descriptionTEXTDescription du style
derived_fromINTEGER (FK)Style parent (auto-référence)
swork_colorVARCHAR(50)Couleur du sabre associée

Relation : Un Slayer utilise un Breathing Style principal, un style peut être utilisé par plusieurs Slayers (1-N)

⚠️ Contrainte : breathing_style_id dans Characters est NULL si character_type = 'Demon'


Blood_Demon_Arts (Arts démoniaques) - Relation 1-N

Pouvoirs spéciaux des démons

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom du pouvoir
descriptionTEXTDescription détaillée
ability_typeVARCHAR(50)Type (Offensive, Defensive, Support, Illusion)
power_levelINTEGERNiveau de puissance (1-10)
character_idINTEGER (FK)Référence vers le personnage démon (UNIQUE)

Relation : Un Blood Demon Art appartient exclusivement à UN démon (1-1)

⚠️ Contrainte : character_id doit référencer un personnage avec character_type = 'Demon'


Items (Objets et armes) - Relation N-N

Équipements et armes utilisés

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom de l'objet (ex: Nichirin Blade)
descriptionTEXTDescription
item_typeVARCHAR(50)Type (Weapon, Armor, Accessory)
rarityVARCHAR(20)Rareté (Common, Rare, Legendary)
imageVARCHAR(255)Fichier de l'image

Table de liaison : Character_Items

  • character_id (FK)
  • item_id (FK)
  • quantity (INTEGER)

Relation : Un personnage peut posséder plusieurs objets, un objet peut être possédé par plusieurs personnages (N-N)


Techniques (Mouvements/Attaques) - Relation N-N

Techniques spécifiques utilisées par les personnages

ChampTypeDescription
idINTEGER (PK)Identifiant unique
nameVARCHAR(100)Nom de la technique
descriptionTEXTDescription
power_levelINTEGERNiveau de puissance (1-10)
breathing_style_idINTEGER (FK)Style de respiration associé (nullable)
typeVARCHAR(50)Type (Attack, Defense, Support)

Table de liaison : Character_Techniques

  • character_id (FK)
  • technique_id (FK)
  • mastery_level (INTEGER) | Niveau de maîtrise (1-100)

Relation : Un personnage utilise plusieurs techniques, une technique peut être utilisée par plusieurs personnages (N-N)


Résumé des relations

Characters (N) ----< (1) Affiliations Characters [Slayer] (N) ----< (1) Breathing_Styles Characters [Demon] (1) ----< (1) Blood_Demon_Arts Characters (N) >----< (N) Items Characters (N) >----< (N) Techniques Breathing_Styles (1) ----< (N) Techniques

Contraintes importantes :

  • Les Breathing_Styles : FK breathing_style_id dans Characters (NULL pour les Demons)
  • Les Blood_Demon_Arts : FK character_id dans Blood_Demon_Arts (UNIQUE, référence uniquement les Demons)

Exemples de données

Personnage Slayer : Tanjiro Kamado

  • Type: Slayer
  • Rang: Demon Slayer
  • Affiliation: Demon Slayer Corps
  • Breathing Styles: Water Breathing, Sun Breathing
  • Techniques: Water Surface Slash, Hinokami Kagura
  • Items: Nichirin Blade (Black), Hanafuda Earrings

Personnage Demon : Muzan Kibutsuji

  • Type: Demon
  • Rang: Demon King
  • Affiliation: Twelve Kizuki (Leader)
  • Blood Demon Art: Biokinesis
  • Items: None