Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
b801832
add package-lock to gitignore
Hyckael Oct 22, 2025
726e6f3
page-not-found done
Hyckael Oct 22, 2025
cb536a3
Intégration de l'interface du Quizz
Jojo-225 Oct 22, 2025
18ec42c
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Jojo-225 Oct 22, 2025
210aa90
Stop tracking package-lock.json (added to .gitignore)
marlenegohi Oct 22, 2025
a496bd2
Upload page v1
marlenegohi Oct 22, 2025
3a7b9a2
Save before rebase
marlenegohi Oct 22, 2025
d1dccb5
feat: create and integrate reusable PasswordInput component across forms
Hyckael Oct 23, 2025
727b499
Cards on upload page
marlenegohi Oct 23, 2025
ba6c9a9
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Oct 23, 2025
a8af8d3
upload page finish
marlenegohi Oct 23, 2025
c119882
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
marlenegohi Oct 23, 2025
26108ce
Integrate reusable PasswordInput component across forms
Hyckael Oct 23, 2025
812ac07
Delete folder components
Hyckael Oct 23, 2025
0f647c4
Upload page update
marlenegohi Oct 23, 2025
284178d
Connexion des API login et signup avec le frontEnd
Jojo-225 Oct 25, 2025
39db143
fix: cors add & test to use geminiAI for our project
BioKobena Oct 26, 2025
0b7e300
fix: SecurityConfig cors config fix
BioKobena Oct 27, 2025
da68b50
Merge pull request #19 from BioKobena/dev
BioKobena Oct 27, 2025
b36dd53
Feat: update subject management
fsossa Oct 27, 2025
23bf7f2
Merge branch 'dev' of https://github.com/BioKobena/pdl-studyAI into dev
fsossa Oct 27, 2025
641014c
feat: swagger ask gemini request ok
BioKobena Oct 27, 2025
4f80d08
fix: delete credentials cloud api
BioKobena Oct 28, 2025
33bd8bf
Feat: add jwt security and update swagger docs
fsossa Oct 28, 2025
f08875c
Feat: Fix jwt filter and autorize signup and login as public route
fsossa Oct 28, 2025
79c9dab
Merge branch 'dev' of https://github.com/BioKobena/pdl-studyAI into dev
fsossa Oct 28, 2025
d4dc2c8
Feat: add cors policy fix
fsossa Oct 29, 2025
a2d9962
Extraction de texte d'un pdf avec pdfjs-dist
Jojo-225 Nov 3, 2025
85d4613
Updating files
marlenegohi Nov 3, 2025
15e1638
remove token verification
fsossa Nov 3, 2025
8bf5c44
Connexion d'API au Front avec les tokens
Jojo-225 Nov 5, 2025
875b7b3
Feat: resolve JWT bug
fsossa Nov 5, 2025
6e54698
Merge branch 'dev' of https://github.com/BioKobena/pdl-studyAI into dev
fsossa Nov 5, 2025
555ee80
Feat: REMOVE API KEY
fsossa Nov 5, 2025
a40673a
Connexion d'API au Front avec les tokens
Jojo-225 Nov 5, 2025
9650d1d
Fix: package
Hyckael Nov 5, 2025
bbebe7c
Feat: resolve cror
fsossa Nov 5, 2025
3614041
fix: sample to check for our prompt engineering
BioKobena Nov 5, 2025
d880064
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
marlenegohi Nov 5, 2025
1089cdf
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 5, 2025
c914e31
suppression de fichiers packgage.json, package-lock.jsn et node_modul…
Jojo-225 Nov 5, 2025
60d8bad
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 5, 2025
bc405ea
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
marlenegohi Nov 5, 2025
7cf26ef
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 5, 2025
3ee0cc7
Correction des erreurs
Jojo-225 Nov 5, 2025
973db4a
Merge branch 'dev' into frontend
fsossa Nov 5, 2025
cd304ca
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
fsossa Nov 5, 2025
602fe3a
Merge pull request #21 from BioKobena/frontend
BioKobena Nov 5, 2025
83e5e1f
Correction des erreurs
Jojo-225 Nov 6, 2025
2d251b4
package-lock.json
Hyckael Nov 6, 2025
058f817
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 6, 2025
3da1390
Delete frontend/web/package-lock.json
fsossa Nov 6, 2025
d8b3b7e
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 6, 2025
8fa8edb
Feat: Build resume all routes
fsossa Nov 6, 2025
1e635ed
Feat: Fix Subjet creating and resumes responses
fsossa Nov 6, 2025
f227998
fix: chat start
BioKobena Nov 6, 2025
bf9298c
Create subject api integrated
marlenegohi Nov 6, 2025
9692fc1
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 6, 2025
2a8acb0
Mise en place de la sécurité des routes
Jojo-225 Nov 10, 2025
ea36198
Sécurité des routes
Jojo-225 Nov 10, 2025
47d4972
Personnalisation de la navBar
Jojo-225 Nov 10, 2025
9123eba
Feat: Fix generating of summary with gemini ai using studiAiservice.a…
fsossa Nov 10, 2025
94ca3db
fix:Quiz not done
Hyckael Nov 10, 2025
f1bf20e
Merge branch 'dev' into frontend
BioKobena Nov 10, 2025
ffae7f1
Merge branch 'dev' into FixQuiz
fsossa Nov 10, 2025
0fe8644
Subject update
marlenegohi Nov 10, 2025
d98f5e4
Intégration des CI/CD
Jojo-225 Nov 10, 2025
bd6f0b6
test: trigger CI for frontend/web
Jojo-225 Nov 10, 2025
ddc7815
Resume API integration in progress
marlenegohi Nov 11, 2025
fb22612
Resume API integration finish
marlenegohi Nov 11, 2025
064ddd3
change create resume route
fsossa Nov 11, 2025
a226ab9
Quiz Features not finished
Hyckael Nov 11, 2025
5397e0c
fix: remove of chat part
BioKobena Nov 11, 2025
3e980e7
feat: chat ok with subject to resolve
BioKobena Nov 12, 2025
6d8b523
Configuration de CI/CD test
Jojo-225 Nov 12, 2025
b493015
Ajout du dossier workflows à la racine
Jojo-225 Nov 12, 2025
0a96e2d
feat: Reponse model, question and quizz complete, quizzController in …
Hyckael Nov 12, 2025
81d9535
Merge branch 'dev' of https://github.com/BioKobena/pdl-studyAI into dev
fsossa Nov 12, 2025
7d4fff2
Merge branch 'dev' into FixQuiz
fsossa Nov 12, 2025
4331efe
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 12, 2025
7a7fe7c
change route /subjets/resume/id to subjects/id/resume
fsossa Nov 12, 2025
4a94625
fix: lastSubjectId change to a SubjectId
BioKobena Nov 12, 2025
2cac8e7
Réglage des erreurs Prettiers
Jojo-225 Nov 12, 2025
e55a3f5
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Jojo-225 Nov 12, 2025
4d9202b
feat: Quizz, model reponse update
Hyckael Nov 12, 2025
5d57836
fix: prettier code checking
Jojo-225 Nov 12, 2025
1c19cf4
Merge branch 'dev' into frontend
fsossa Nov 12, 2025
fd48408
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 12, 2025
34940ce
fix: regenerate of subject in database on upload file
BioKobena Nov 12, 2025
dac7f9c
Merge branch 'frontend' into FixQuiz
BioKobena Nov 13, 2025
032ea50
fix: chatcontroller merge on dev from dev-chat
BioKobena Nov 13, 2025
9e82a22
Merge branch 'frontend' of https://github.com/BioKobena/pdl-studyAI i…
Hyckael Nov 13, 2025
f5a32a8
fix: upload success
Hyckael Nov 13, 2025
1823c61
feat: Integrate backend quiz generation into frontend
Hyckael Nov 13, 2025
253e0c0
add: merge from frontend to dev
BioKobena Nov 14, 2025
3cafa85
test for CI checking
BioKobena Nov 14, 2025
0af0b82
Disable ESLint and test steps in ci.yml
BioKobena Nov 14, 2025
fa4b5c1
Comment out npm build step in CI workflow
BioKobena Nov 14, 2025
2ac26a2
Comment out Build step in CI workflow
BioKobena Nov 14, 2025
152b85c
ajout de loading page à chaque action et debut de configuration de la…
Jojo-225 Nov 25, 2025
5bd5b08
Merge remote-tracking branch 'refs/remotes/origin/frontend' into fron…
BioKobena Nov 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions backend/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.compile.nullAnalysis.mode": "disabled"
}
2 changes: 2 additions & 0 deletions backend/studyai_backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ target/*

.class

./gen-lang-client-0102049857-e5709fed74ea


### IntelliJ IDEA ###
.idea
Expand Down
45 changes: 34 additions & 11 deletions backend/studyai_backend/bin/pom.xml
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.pdl</groupId>
<artifactId>studyai-backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>studyai-backend</name>
<description>Backend for StudyAI project</description>
<url/>
<url />
<licenses>
<license/>
<license />
</licenses>
<developers>
<developer/>
<developer />
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
<connection />
<developerConnection />
<tag />
<url />
</scm>
<properties>
<java.version>17</java.version>
<spring-ai.version>1.0.3</spring-ai.version>
</properties>
<dependencies>
<dependency>
Expand All @@ -46,7 +48,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-vertex-ai-gemini</artifactId>
<version>1.0.0-M6</version>
</dependency>
<dependency>
<groupId>com.google.genai</groupId>
<artifactId>google-genai</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
Expand Down Expand Up @@ -74,6 +85,18 @@
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
Expand Down Expand Up @@ -103,4 +126,4 @@
</plugins>
</build>

</project>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,29 @@ logging.level.org.springframework=INFO
# Swagger/OpenAPI configuration
springdoc.api-docs.path=/api-docs
springdoc.swagger-ui.path=/swagger-ui

# Configuration Google Gemini

spring.ai.vertex.ai.gemini.project-id=gen-lang-client-0102049857
spring.ai.vertex.ai.gemini.location=us-central1
# exemple de localisation
spring.ai.vertex.ai.gemini.chat.options.model=gemini-2.5-flash
spring.ai.vertex.ai.gemini.chat.options.temperature=0.5
spring.ai.vertex.ai.gemini.credentials-uri=classpath:gen-lang-client.json
# Api key for studyAI :

# curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent" \
# -H 'Content-Type: application/json' \
# -H 'X-goog-api-key: AIzaSyC3sjKXvYcr6ZE2oulXpKai31uG6R4Olp0' \
# -X POST \
# -d '{
# "contents": [
# {
# "parts": [
# {
# "text": "Explain how AI works in a few words"
# }
# ]
# }
# ]
# }'
Empty file modified backend/studyai_backend/mvnw
100644 → 100755
Empty file.
73 changes: 63 additions & 10 deletions backend/studyai_backend/pom.xml
Original file line number Diff line number Diff line change
@@ -1,35 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.pdl</groupId>
<artifactId>studyai-backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>studyai-backend</name>
<description>Backend for StudyAI project</description>
<url/>
<url />
<licenses>
<license/>
<license />
</licenses>
<developers>
<developer/>
<developer />
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
<connection />
<developerConnection />
<tag />
<url />
</scm>
<properties>
<java.version>17</java.version>
<java.version>21</java.version>
<spring-ai.version>1.0.3</spring-ai.version>
</properties>
<dependencies>

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-vertex-ai-gemini</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
Expand All @@ -42,6 +50,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
Expand All @@ -63,6 +76,7 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
Expand All @@ -72,8 +86,47 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>

<dependency>
<groupId>com.google.genai</groupId>
<artifactId>google-genai</artifactId>
<version>1.4.1</version>
</dependency>
</dependencies>

<!-- <dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.genai</groupId>
<artifactId>google-genai</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</dependencyManagement> -->

<build>
<plugins>
<plugin>
Expand Down
27 changes: 27 additions & 0 deletions backend/studyai_backend/sample.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Exemple de demande à faire à geminiAI lorsqu'on lui passera le texte en
> Résume le texte suivant :
- Sois concis
- Ne dépasse pas 5 phrases
- Ne copie pas mot pour mot
- Mets en avant les idées clés


> QCM : Lis le texte suivant et génère 5 questions QCM en JSON avec ce format :
{
"questions": [
{
"question": "string",
"options": ["string", "string", "string", "string"],
"answer": "string"
}
]
}

{
"questions": [
{
"content": "string",
"reponses": [{"content", "isCorrect", "isSelected (à false par defaut)"}, {"content", "isCorrect", "isSelected (à false par defaut)"}, {"content", "isCorrect", "isSelected (à false par defaut)"}, {"content", "isCorrect", "isSelected (à false par defaut)"}],
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@

@SpringBootApplication
public class StudyaiBackendApplication {

public static void main(String[] args) {
SpringApplication.run(StudyaiBackendApplication.class, args);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,24 @@

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;

import com.pdl.studyai_backend.service.security.JwtFilter;

@Configuration
public class SecurityConfig {

private final JwtFilter jwtFilter;

public SecurityConfig(JwtFilter jwtFilter) {
this.jwtFilter = jwtFilter;
}

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
Expand All @@ -18,14 +28,34 @@ public PasswordEncoder passwordEncoder() {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable());
// .authorizeHttpRequests(auth -> auth
// .requestMatchers(
// "/signup", "/login",
// "/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**", "/webjars/**"
// ).permitAll()
// .anyRequest().authenticated()
// );
.csrf(csrf -> csrf.disable())
.cors(Customizer.withDefaults())
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/auth/signup", "/api/auth/login", "/swagger-ui/**", "/api-docs/**",
"/chat/**", "/chat")
.permitAll()
.anyRequest().authenticated())
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class);

return http.build();
}

/*
* @fsossa
* Ajout de la configuration CORS pour garantir l'utilisation des API.
*/
// @Bean
// public CorsConfigurationSource corsConfigurationSource() {
// CorsConfiguration configuration = new CorsConfiguration();
// configuration.setAllowedOrigins(List.of("http://localhost:3000"));
// configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE",
// "OPTIONS"));
// configuration.setAllowedHeaders(List.of("*"));
// configuration.setAllowCredentials(true);

// UrlBasedCorsConfigurationSource source = new
// UrlBasedCorsConfigurationSource();
// source.registerCorsConfiguration("/**", configuration);
// return source;
// }
}
Loading