161 lines
6.4 KiB
SQL
161 lines
6.4 KiB
SQL
DROP DATABASE IF EXISTS ContribV2;
|
||
CREATE DATABASE IF NOT EXISTS ContribV2;
|
||
USE ContribV2;
|
||
|
||
-- ============================================
|
||
-- Création d'une base de données sécurisée : contribV2
|
||
-- ============================================
|
||
|
||
DROP DATABASE IF EXISTS contribV2;
|
||
CREATE DATABASE contribV2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||
USE contribV2;
|
||
|
||
-- ============================================
|
||
-- Création des tables
|
||
-- ============================================
|
||
|
||
CREATE TABLE membre (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
nom VARCHAR(50) NOT NULL,
|
||
prenom VARCHAR(50) NOT NULL,
|
||
email VARCHAR(100) NOT NULL UNIQUE,
|
||
roles JSON NOT NULL DEFAULT '[]',
|
||
password VARCHAR(255) DEFAULT NULL
|
||
);
|
||
|
||
CREATE TABLE projet (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
nom VARCHAR(50) NOT NULL,
|
||
commentaire TEXT,
|
||
date_lancement DATE,
|
||
date_cloture DATE,
|
||
statut VARCHAR(20) NOT NULL
|
||
);
|
||
|
||
CREATE TABLE contribution (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
membre_id INT NOT NULL,
|
||
projet_id INT NOT NULL,
|
||
date_contribution DATE NOT NULL,
|
||
commentaire TEXT,
|
||
duree INT DEFAULT 0,
|
||
FOREIGN KEY (membre_id) REFERENCES membre(id),
|
||
FOREIGN KEY (projet_id) REFERENCES projet(id)
|
||
);
|
||
|
||
CREATE TABLE assistant_ia (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
nom VARCHAR(50) NOT NULL
|
||
);
|
||
|
||
CREATE TABLE contrib_ia (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
assistant_ia_id INT NOT NULL,
|
||
contribution_id INT NOT NULL,
|
||
evaluation_pertinence INT CHECK (evaluation_pertinence >= 1 AND evaluation_pertinence <= 5),
|
||
evaluation_temps INT CHECK (evaluation_temps >= 1 AND evaluation_temps <= 5),
|
||
commentaire TEXT,
|
||
FOREIGN KEY (assistant_ia_id) REFERENCES assistant_ia(id),
|
||
FOREIGN KEY (contribution_id) REFERENCES contribution(id)
|
||
);
|
||
|
||
-- ============================================
|
||
-- Configuration de la sécurité et des utilisateurs
|
||
-- ============================================
|
||
|
||
-- Supprimer l’utilisateur existant s’il existe déjà
|
||
DROP USER IF EXISTS 'appcontrib'@'%';
|
||
DROP USER IF EXISTS 'admincontrib'@'%';
|
||
|
||
-- Création d’un utilisateur applicatif avec accès restreint
|
||
CREATE USER 'appcontrib'@'%' IDENTIFIED BY '123abc';
|
||
|
||
-- Création d’un utilisateur administrateur (pour la maintenance)
|
||
CREATE USER 'admincontrib'@'%' IDENTIFIED BY 'Adm!nStrongPass2025';
|
||
|
||
-- Droits : l’utilisateur applicatif peut uniquement lire/écrire/modifier les données
|
||
GRANT SELECT, INSERT, UPDATE, DELETE ON contribV2.* TO 'appcontrib'@'%';
|
||
|
||
-- Droits : l’administrateur a tous les privilèges
|
||
GRANT ALL PRIVILEGES ON contribV2.* TO 'admincontrib'@'%';
|
||
|
||
FLUSH PRIVILEGES;
|
||
|
||
-- ============================================
|
||
-- Jeu d’essai
|
||
-- ============================================
|
||
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
TRUNCATE TABLE contrib_ia;
|
||
TRUNCATE TABLE contribution;
|
||
TRUNCATE TABLE assistant_ia;
|
||
TRUNCATE TABLE projet;
|
||
TRUNCATE TABLE membre;
|
||
SET FOREIGN_KEY_CHECKS = 1;
|
||
|
||
-- Membres (10)
|
||
INSERT INTO membre (nom, prenom, email) VALUES
|
||
('Dupont', 'Alice', 'alice.dupont@tech-corp.fr'),
|
||
('Martin', 'Bob', 'bob.martin@tech-corp.fr'),
|
||
('Bernard', 'Claire', 'claire.bernard@tech-corp.fr'),
|
||
('Durand', 'David', 'david.durand@tech-corp.fr'),
|
||
('Leroy', 'Emma', 'emma.leroy@tech-corp.fr'),
|
||
('Moreau', 'Frank', 'frank.moreau@tech-corp.fr'),
|
||
('Simon', 'Grace', 'grace.simon@tech-corp.fr'),
|
||
('Michel', 'Hugo', 'hugo.michel@tech-corp.fr'),
|
||
('Laurent', 'Iris', 'iris.laurent@tech-corp.fr'),
|
||
('Garcia', 'Jean', 'jean.garcia@tech-corp.fr');
|
||
|
||
-- Projets (3)
|
||
INSERT INTO projet (nom, commentaire, date_lancement, date_cloture, statut) VALUES
|
||
('E-Commerce Platform', 'Développement d''une nouvelle plateforme e-commerce avec microservices', '2024-09-01', NULL, 'en_cours'),
|
||
('Mobile Banking App', 'Application mobile de gestion bancaire pour iOS et Android', '2024-10-15', '2025-03-31', 'en_cours'),
|
||
('Data Analytics Dashboard', 'Tableau de bord analytique temps réel pour le département marketing', '2024-08-01', '2024-12-20', 'termine');
|
||
|
||
-- Assistants IA (5)
|
||
INSERT INTO assistant_ia (nom) VALUES
|
||
('GitHub Copilot'),
|
||
('Claude 3.5'),
|
||
('ChatGPT-4'),
|
||
('Cursor AI'),
|
||
('Amazon CodeWhisperer');
|
||
|
||
-- Contributions
|
||
INSERT INTO contribution (membre_id, projet_id, date_contribution, commentaire, duree) VALUES
|
||
(1, 1, '2024-09-05', 'Architecture initiale et setup du projet', 480),
|
||
(2, 1, '2024-09-08', 'Configuration Docker et environnement de développement', 360),
|
||
(3, 1, '2024-09-12', 'Développement du service authentification', 420),
|
||
(1, 1, '2024-09-15', 'API Gateway et routing', 300),
|
||
(4, 1, '2024-09-20', 'Service de gestion des produits', 540),
|
||
(5, 1, '2024-09-25', 'Intégration système de paiement Stripe', 480),
|
||
(2, 1, '2024-10-02', 'Tests unitaires service authentification', 240),
|
||
(3, 1, '2024-10-10', 'Optimisation des requêtes base de données', 360),
|
||
|
||
(6, 2, '2024-10-16', 'Setup React Native et architecture mobile', 420),
|
||
(7, 2, '2024-10-18', 'Interface utilisateur - écrans de connexion', 360),
|
||
(8, 2, '2024-10-22', 'Système de notifications push', 300),
|
||
(9, 2, '2024-10-25', 'Module de virement bancaire', 480),
|
||
(10, 2, '2024-10-28', 'Sécurisation avec biométrie', 420),
|
||
(6, 2, '2024-11-02', 'Intégration API bancaire', 540),
|
||
(7, 2, '2024-11-05', 'Tests d''interface utilisateur', 240),
|
||
|
||
(1, 3, '2024-08-05', 'Architecture backend Node.js et Express', 480),
|
||
(3, 3, '2024-08-10', 'Configuration base de données PostgreSQL', 360),
|
||
(6, 3, '2024-08-15', 'Dashboard React avec graphiques D3.js', 540),
|
||
(8, 3, '2024-08-22', 'WebSocket pour données temps réel', 420),
|
||
(1, 3, '2024-09-01', 'Optimisation des performances', 300),
|
||
(3, 3, '2024-09-10', 'Documentation et déploiement', 240);
|
||
|
||
-- Contributions avec IA
|
||
INSERT INTO contrib_ia (assistant_ia_id, contribution_id, evaluation_pertinence, evaluation_temps, commentaire) VALUES
|
||
(1, 1, 4, 5, 'Copilot très utile pour générer la structure de base du projet'),
|
||
(2, 3, 5, 4, 'Claude excellent pour implémenter la logique d''authentification JWT'),
|
||
(3, 5, 3, 3, 'ChatGPT-4 a aidé mais nécessitait des ajustements pour le service produits'),
|
||
(1, 7, 4, 4, 'Bonne génération des tests unitaires avec Copilot'),
|
||
(4, 9, 5, 5, 'Cursor AI excellent pour le développement React Native'),
|
||
(2, 11, 4, 4, 'Claude très pertinent pour les algorithmes de chiffrement'),
|
||
(5, 13, 3, 4, 'CodeWhisperer rapide mais code nécessitant refactoring'),
|
||
(1, 15, 4, 5, 'Copilot efficace pour le setup Node.js'),
|
||
(3, 17, 5, 3, 'ChatGPT-4 excellent pour les visualisations D3.js mais un peu lent'),
|
||
(2, 19, 4, 4, 'Claude bon pour l''optimisation des requêtes SQL');
|