From aee8e8797c292e66edfa8c09d836aacb6eef3010 Mon Sep 17 00:00:00 2001 From: MAILLAL Anas Date: Tue, 29 Apr 2025 14:11:45 +0200 Subject: [PATCH] feat: added an initial in mermory database configuration for seting up front --- MyINPulse-back/build.gradle | 2 + .../src/main/resources/application.properties | 15 ++- MyINPulse-back/src/main/resources/data.sql | 99 ------------------- MyINPulse-back/src/main/resources/delete.sql | 2 - MyINPulse-back/src/main/resources/import.sql | 92 +++++++++++++++++ 5 files changed, 104 insertions(+), 106 deletions(-) delete mode 100644 MyINPulse-back/src/main/resources/data.sql delete mode 100644 MyINPulse-back/src/main/resources/delete.sql create mode 100644 MyINPulse-back/src/main/resources/import.sql diff --git a/MyINPulse-back/build.gradle b/MyINPulse-back/build.gradle index 47b0dc2..326537b 100644 --- a/MyINPulse-back/build.gradle +++ b/MyINPulse-back/build.gradle @@ -29,6 +29,8 @@ dependencies { implementation 'org.postgresql:postgresql' implementation group: 'com.itextpdf', name: 'itextpdf', version: '5.5.13.3' + runtimeOnly 'com.h2database:h2' + testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'com.h2database:h2' diff --git a/MyINPulse-back/src/main/resources/application.properties b/MyINPulse-back/src/main/resources/application.properties index 043c22b..37c209e 100644 --- a/MyINPulse-back/src/main/resources/application.properties +++ b/MyINPulse-back/src/main/resources/application.properties @@ -1,8 +1,13 @@ spring.application.name=myinpulse spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/test/protocol/openid-connect/certs spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/test -spring.datasource.url=jdbc:postgresql://${DATABASE_URL}/${BACKEND_DB} -spring.datasource.username=${BACKEND_USER} -spring.datasource.password=${BACKEND_PASSWORD} -spring.jpa.hibernate.ddl-auto=update -logging.pattern.console=%d{yyyy-MMM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n \ No newline at end of file + +logging.pattern.console=%d{yyyy-MMM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n + +spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password= +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + +spring.jpa.hibernate.ddl-auto=create \ No newline at end of file diff --git a/MyINPulse-back/src/main/resources/data.sql b/MyINPulse-back/src/main/resources/data.sql deleted file mode 100644 index 444f8da..0000000 --- a/MyINPulse-back/src/main/resources/data.sql +++ /dev/null @@ -1,99 +0,0 @@ -TRUNCATE project, user_inpulse, entrepreneur, administrator, section_cell, appointment, report, annotation CASCADE; - -SELECT setval('annotation_id_annotation_seq', 1, false); -SELECT setval('appointment_id_appointment_seq', 1, false); -SELECT setval('make_appointment_id_make_appointment_seq', 1, false); -SELECT setval('project_id_project_seq', 1, false); -SELECT setval('report_id_report_seq', 1, false); -SELECT setval('section_cell_id_section_cell_seq', 1, false); -SELECT setval('user_inpulse_id_user_seq', 1, false); - -INSERT INTO user_inpulse (user_surname, user_name, primary_mail, secondary_mail, phone_number) -VALUES ('Dupont', 'Dupond', 'super@mail.fr', 'super2@mail.fr', '06 45 72 45 98'), - ('Martin', 'Matin', 'genial@mail.fr', 'genial2@mail.fr', '06 52 14 58 73'), - ('Charvet', 'Lautre', 'mieux@tmail.fr', 'mieux2@tmail.fr', '07 49 82 16 35'), - ('Leguez', 'Theo', 'bof@mesmails.fr', 'bof2@mesmails.fr', '+33 6 78 14 25 29'), - ('Kia', 'Bi', 'special@mail.fr', 'special2@mail.fr', '07 65 31 38 95'), - ('Ducaillou', 'Pierre', 'maildefou@xyz.fr', 'maildefou2@xyz.fr', '06 54 78 12 62'), - ('Janine', 'Dave', 'janine@labri.fr', 'janine2@labri.fr', '06 87 12 45 95'); - -INSERT INTO administrator (id_administrator) -VALUES (7); - -INSERT INTO project (project_name, logo, creation_date, project_status, id_administrator) -VALUES ('Eau du robinet', decode('013d7d16d7ad4fefb61bd95b765c8ceb', 'hex'), TO_DATE('01-OCT-2023', 'DD-MON-YYYY'), - 'En cours', 7), - ('Air oxygéné', decode('150647a0984e8f228cd14b54', 'hex'), TO_DATE('04-APR-2024', 'DD-MON-YYYY'), 'En cours', 7), - ('Débat concours', decode('022024abd5486e245c145dda65116f', 'hex'), TO_DATE('22-NOV-2023', 'DD-MON-YYYY'), - 'Suspendu', 7), - ('HDeirbMI', decode('ab548d6c1d595a2975e6476f544d14c55a', 'hex'), TO_DATE('07-DEC-2024', 'DD-MON-YYYY'), - 'Lancement', 7); - - -INSERT INTO entrepreneur (school, course, snee_status, id_entrepreneur, id_project_participation, id_project_proposed) -VALUES ('ENSEIRB-MATMECA', 'INFO', TRUE, 1, 4, 4), - ('ENSC', 'Cognitique', TRUE, 2, 2, null), - ('ENSEIRB-MATMECA', 'MATMECA', FALSE, 3, 3, 3), - ('SupOptique', 'Classique', TRUE, 4, 1, 1), - ('ENSEGID', 'Géoscience', FALSE, 5, 1, null), - ('ENSMAC', 'Matériaux composites - Mécanique', FALSE, 6, 2, 2); - - -INSERT INTO section_cell (title, content_section_cell, modification_date, id_project) -VALUES ('Problème', 'les problèmes...', TO_TIMESTAMP('15-JAN-2025 09:30:20', 'DD-MON-YYYY, HH24:MI:SS'), 2), - ('Segment de client', 'Le segment AB passant le client n°8 est de longueur 32mm. - Le segment BC a quant à lui un longueur de 28mm. Quelle la longueur du segment AC ?', - TO_TIMESTAMP('12-OCT-2022 17:47:38', 'DD-MON-YYYY, HH24:MI:SS'), 3), - ('Proposition de valeur unique', '''Son prix est de 2594€'' ''Ah oui c''est unique en effet', - TO_TIMESTAMP('25-MAY-2024 11:12:04', 'DD-MON-YYYY, HH24:MI:SS'), 2), - ('Solution', 'Un problème ? Une solution', TO_TIMESTAMP('08-FEB-2024 10:17:53', 'DD-MON-YYYY, HH24:MI:SS'), 1), - ('Canaux', 'Ici nous avons la Seine, là-bas le Rhin, oh et plus loin le canal de Suez', - TO_TIMESTAMP('19-JUL-2023 19:22:45', 'DD-MON-YYYY, HH24:MI:SS'), 4), - ('Sources de revenus', 'Y''en n''a pas on est pas payé. Enfin y''a du café quoi', - TO_TIMESTAMP('12-JAN-2025 11:40:26', 'DD-MON-YYYY, HH24:MI:SS'), 1), - ('Structure des coûts', '''Ah oui là ça va faire au moins 1000€ par mois'', Eirbware', - TO_TIMESTAMP('06-FEB-2025 13:04:06', 'DD-MON-YYYY, HH24:MI:SS'), 3), - ('Indicateurs clés', 'On apprend les clés comme des badges, ça se fait', - TO_TIMESTAMP('05-FEB-2025 12:42:38', 'DD-MON-YYYY, HH24:MI:SS'), 4), - ('Avantages concurrentiel', 'On est meilleur', TO_TIMESTAMP('23-APR-2024 16:24:02', 'DD-MON-YYYY, HH24:MI:SS'), - 2); - -INSERT INTO appointment (appointment_date, appointment_time, appointment_duration, appointment_place, - appointment_subject) -VALUES (TO_DATE('24-DEC-2023', 'DD-MON-YYYY'), '00:00:00', '00:37:53', 'À la maison', 'Ouvrir les cadeaux'), - (TO_DATE('15-AUG-2024', 'DD-MON-YYYY'), '22:35:00', '00:12:36', 'Sur les quais ou dans un champ probablement', - 'BOUM BOUM les feux d''artifices (on fête quoi déjà ?)'), - (TO_DATE('28-FEB-2023', 'DD-MON-YYYY'), '14:20:00', '00:20:00', 'Salle TD 15', - 'Ah mince c''est pas une année bissextile !'), - (TO_DATE('23-JAN-2024', 'DD-MON-YYYY'), '12:56:27', '11:03:33', 'Là où le vent nous porte', - 'Journée la plus importante de l''année'), - (TO_DATE('25-AUG-2025', 'DD-MON-YYYY'), '00:09:00', '01:00:00', 'Euh c''est par où l''amphi 56 ?', - 'Rentrée scolaire (il fait trop froid c''est quoi ça on est en août)'); - -INSERT INTO report (report_content, id_appointment) -VALUES ('Ah oui ça c''est super, ah ouais j''aime bien, bien vu de penser à ça', 1), - ('Bonne réunion', 3), - ('Ouais, j''ai rien compris mais niquel on fait comme vous avez dit', 3), - ('Non non ça va pas du tout ce que tu me proposes, faut tout refaire', 4), - ('Réponse de la DSI : non', 2), - ('Trop dommage qu''Apple ait sorti leur logiciel avant nous, on avait la même idée et tout on aurait tellement pu leur faire de la concurrence', - 5); - -INSERT INTO annotation (comment, id_administrator, id_section_cell) -VALUES ('faut changer ça hein', 7, 5), - ('??? sérieusement, vous pensez que c''est une bonne idée ?', 7, 7), - ('ok donc ça c''est votre business plan, bah glhf la team', 7, 2); - - - - - - - - - - - - - - diff --git a/MyINPulse-back/src/main/resources/delete.sql b/MyINPulse-back/src/main/resources/delete.sql deleted file mode 100644 index 701b1f3..0000000 --- a/MyINPulse-back/src/main/resources/delete.sql +++ /dev/null @@ -1,2 +0,0 @@ -DROP TABLE IF EXISTS administrateurs, projets, utilisateurs, entrepreneurs, sections, rendez_vous, comptes_rendus, concerner CASCADE; -DROP TABLE IF EXISTS administrator, project, user_inpulse, entrepreneur, section_cell, appointment, make_appointment, report, annotation, concern CASCADE; \ No newline at end of file diff --git a/MyINPulse-back/src/main/resources/import.sql b/MyINPulse-back/src/main/resources/import.sql new file mode 100644 index 0000000..376e5fa --- /dev/null +++ b/MyINPulse-back/src/main/resources/import.sql @@ -0,0 +1,92 @@ +-- Initial Database State Script + +-- Insert Administrators +INSERT INTO administrator (idAdministrator) VALUES +(1), +(2), +(3); -- Added more administrators + +-- Insert User Inpulse (some pending) +INSERT INTO user_inpulse (idUser, userSurname, userName, primaryMail, secondaryMail, phoneNumber, pending) VALUES +(1, 'Doe', 'John', 'john.doe@example.com', NULL, '123-456-7890', FALSE), +(2, 'Smith', 'Jane', 'jane.smith@example.com', 'jane.s@altmail.com', '987-654-3210', FALSE), +(3, 'Williams', 'Peter', 'peter.w@example.com', NULL, NULL, TRUE), -- Pending user +(4, 'Jones', 'Mary', 'mary.j@example.com', NULL, '555-123-4567', FALSE), +(5, 'Brown', 'Michael', 'michael.b@example.com', 'mike.brown@work.com', '111-222-3333', FALSE), +(6, 'Garcia', 'Maria', 'maria.g@example.com', NULL, '444-555-6666', TRUE), -- Another pending user +(7, 'Miller', 'David', 'david.m@example.com', NULL, '777-888-9999', FALSE); + +-- Insert Entrepreneurs +INSERT INTO entrepreneur (idEntrepreneur, school, course, sneeStatus, idProjectParticipation, idProjectProposed, idMakeAppointment) VALUES +(1, 'Business School A', 'MBA', TRUE, NULL, NULL, NULL), +(2, 'Tech University B', 'Computer Science', FALSE, NULL, NULL, NULL), +(3, 'Art Institute C', 'Graphic Design', TRUE, NULL, NULL, NULL), +(4, 'Science College D', 'Biology', FALSE, NULL, NULL, NULL), +(5, 'Engineering School E', 'Mechanical Engineering', TRUE, NULL, NULL, NULL); -- Added more entrepreneurs + +-- Insert Projects +-- Main project +INSERT INTO project (IdProject, projectName, loga, creationDate, projectStatus, pending, idAdministrator, entrepreneurProposed) VALUES +(101, 'Innovative Startup Idea', NULL, '2023-10-26', 'In Progress', FALSE, 1, NULL), +(102, 'Pending Project Alpha', NULL, '2024-01-15', 'Planning', TRUE, 1, NULL), -- Pending project +(103, 'Pending Project Beta', NULL, '2024-02-20', 'Idea Stage', TRUE, NULL, 1), -- Another pending project, proposed by entrepreneur 1 +(104, 'E-commerce Platform Development', NULL, '2024-03-10', 'Completed', FALSE, 2, NULL), -- Completed project +(105, 'Mobile App for Education', NULL, '2024-04-01', 'In Progress', FALSE, 3, NULL), +(106, 'Pending Research Proposal', NULL, '2024-04-25', 'Drafting', TRUE, NULL, 4); -- Pending project proposed by entrepreneur 4 + +-- Link Entrepreneurs to projects (Project Participation and Proposed) +-- Based on the current schema, we'll update the entrepreneur table directly. +-- This might need adjustment based on actual application logic if it's a many-to-many. +UPDATE entrepreneur SET idProjectParticipation = 101 WHERE idEntrepreneur IN (1, 2); -- Entrepreneurs 1 and 2 participate in Project 101 +UPDATE entrepreneur SET idProjectParticipation = 104 WHERE idEntrepreneur = 3; -- Entrepreneur 3 participates in Project 104 +UPDATE entrepreneur SET idProjectProposed = 103 WHERE idEntrepreneur = 1; -- Entrepreneur 1 proposed Project 103 +UPDATE entrepreneur SET idProjectProposed = 106 WHERE idEntrepreneur = 4; -- Entrepreneur 4 proposed Project 106 + +-- Insert Section Cells for the main project (Project 101) and other projects +INSERT INTO section_cell (idSectionCell, IdReference, sectionid, contentSectionCell, modificationDate, idProject) VALUES +(1001, NULL, 1, 'Initial project description for Project 101.', '2023-10-26 10:00:00', 101), +(1002, 1001, 2, 'Market analysis summary for Project 101.', '2023-10-27 14:30:00', 101), +(1003, NULL, 3, 'Team member profiles for Project 101.', '2023-10-28 09:00:00', 101), +(1004, NULL, 1, 'Project brief for Project 104.', '2024-03-10 11:00:00', 104), +(1005, 1004, 2, 'Technical specifications for Project 104.', '2024-03-15 16:00:00', 104), +(1006, NULL, 1, 'Initial concept for Project 105.', '2024-04-01 09:30:00', 105); + +-- Insert Appointments +INSERT INTO appointment (idAppointment, appointmentDate, appointmentTime, appointmentDuration, appointmentPlace, appointmentSubject) VALUES +(2001, '2023-11-05', '11:00:00', '01:00:00', 'Meeting Room A', 'Project 101 Kick-off Meeting'), +(2002, '2023-11-10', '14:00:00', '00:30:00', 'Online', 'Project 101 Follow-up Discussion'), +(2003, '2024-03-20', '10:00:00', '01:30:00', 'Client Office', 'Project 104 Final Review'), +(2004, '2024-04-10', '15:00:00', '00:45:00', 'Video Call', 'Project 105 Initial Sync'); -- Added more appointments + +-- Insert Concerns (linking Appointments and Section Cells) +INSERT INTO concern (IdAppointment, idSectionCell) VALUES +(2001, 1001), -- Kick-off meeting concerns section 1001 (Project 101) +(2001, 1002), -- Kick-off meeting concerns section 1002 (Project 101) +(2002, 1002), -- Follow-up concerns section 1002 (Project 101) +(2003, 1004), -- Project 104 review concerns section 1004 +(2003, 1005), -- Project 104 review concerns section 1005 +(2004, 1006); -- Project 105 sync concerns section 1006 + +-- Insert Make Appointments (linking Appointments, Administrators, and Entrepreneurs) +INSERT INTO make_appointment (idMakeAppointment, idAppointment, idAdministrator, idEntrepreneur) VALUES +(3001, 2001, 1, 1), -- Admin 1 scheduled appointment 2001 with Entrepreneur 1 +(3002, 2001, 1, 2), -- Admin 1 scheduled appointment 2001 with Entrepreneur 2 +(3003, 2002, 1, 1), -- Admin 1 scheduled appointment 2002 with Entrepreneur 1 +(3004, 2003, 2, 3), -- Admin 2 scheduled appointment 2003 with Entrepreneur 3 +(3005, 2004, 3, 5); -- Admin 3 scheduled appointment 2004 with Entrepreneur 5 + +-- Insert Annotations (linking to Section Cells and Administrators) +INSERT INTO annotation (IdAnnotation, comment, idSectionCell, idAdministrator) VALUES +(4001, 'Needs more detail on market size.', 1002, 1), +(4002, 'Looks good.', 1001, 1), +(4003, 'Confirm technical requirements.', 1005, 2), +(4004, 'Initial thoughts on UI/UX.', 1006, 3); -- Added more annotations + +-- Insert Reports (linking to Make Appointments) +INSERT INTO report (IdReport, reportContent, idMakeAppointment) VALUES +(5001, 'Discussed project scope and timelines for Project 101.', 3001), +(5002, 'Reviewed market analysis feedback for Project 101.', 3003), +(5003, 'Final sign-off on Project 104 deliverables.', 3004), +(5004, 'Discussed initial concepts for Project 105.', 3005); -- Added more reports + +-- The project ID for the main project is 101.