Zayd Nahli 5 months ago
commit 03351d9d12

@ -4,7 +4,7 @@
## Fonctionnalités principales ## Fonctionnalités principales
- **Prise en charge des projets Java et C#** : Que vous travailliez sur un projet en Java ou en C#, CodeMap s'adapte pour en extraire les diagrammes UML avec précision. - **Prise en charge des projets Java , PHP et C#** : Que vous travailliez sur un projet en Java en PHP ou en C#, CodeMap s'adapte pour en extraire les diagrammes UML avec précision.
- **Interface conviviale** : Choisissez simplement le chemin de votre projet, sélectionnez votre langage (Java ou C#), et indiquez si vous souhaitez générer des diagrammes UML, de la "documentation", ou les deux. - **Interface conviviale** : Choisissez simplement le chemin de votre projet, sélectionnez votre langage (Java ou C#), et indiquez si vous souhaitez générer des diagrammes UML, de la "documentation", ou les deux.
- **Génération rapide et simple** : En quelques clics, vous obtenez votre diagrammes et votre documentation. - **Génération rapide et simple** : En quelques clics, vous obtenez votre diagrammes et votre documentation.
- **Précision et clarté** : Les diagrammes générés sont directement basés sur votre code, assurant une représentation fidèle et claire. - **Précision et clarté** : Les diagrammes générés sont directement basés sur votre code, assurant une représentation fidèle et claire.
@ -36,13 +36,23 @@ Voici une liste des fonctionnalités déjà en place et des améliorations prév
### Fonctionnalités déjà implémentées ### Fonctionnalités déjà implémentées
- [x] Génération de diagrammes de classes UML pour les projets Java et C#. - [x] Génération de diagrammes de classes UML pour les projets Java et C#.
- [x] Interface utilisateur intuitive avec explorateur de fichiers intégré. - [x] Interface utilisateur intuitive avec explorateur de fichiers intégré.
- [x] Prise en charge de PHP
### Améliorations prévues ### Améliorations prévues
- [ ] Support pour d'autres langages (Python, JavaScript, etc.). ### Améliorations prévues
- [ ] Support pour d'autres langages :
- [x] PHP
- [ ] Python
- [ ] Ruby
- [ ] JavaScript/TypeScript
- [ ] Génération automatique de README pour les projets analysés. - [ ] Génération automatique de README pour les projets analysés.
- [ ] Amélioration de l'interface utilisateur (apparence et ergonomie). - [ ] Amélioration de l'interface utilisateur (apparence et ergonomie).
- [ ] Optimisation des performances pour une génération plus rapide. - [ ] Optimisation des performances pour une génération plus rapide, notamment pour les grands projets.
- [ ] Ajout d'options de personnalisation pour les diagrammes générés. - [ ] Ajout d'options de personnalisation pour les diagrammes générés, comme les couleurs, le style des lignes, etc.
- [ ] Ajout de la possibilité d'exporter les diagrammes dans différents formats (SVG, PNG, PDF).
- [ ] Fonctionnalité de mise à jour automatique pour les dépendances du projet.
- [ ] Support pour la génération de diagrammes de séquence ou d'autres types de diagrammes UML.
## Contributions ## Contributions
Pour contribuer, corriger des bugs ou proposer des fonctionnalités, soumettez un pr. Pour contribuer, corriger des bugs ou proposer des fonctionnalités, soumettez un pr.

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

@ -0,0 +1,237 @@
@startuml
hide circle
allowmixing
skinparam classAttributeIconSize 0
skinparam classBackgroundColor #ffffb9
skinparam classBorderColor #800000
skinparam classArrowColor #800000
skinparam classFontColor black
skinparam classFontName Tahoma
class Main {
+start(Stage primaryStage): void
+main(String args): void
}
Application <|-- Main
class DiagramController {
+canvas: Pane
+entities: List
+relationships: List
+entityBlocks: List
+relationshipBlocks: List
+selectedEntity: Entity
+addEntity(String name, double x, double y): void
+addRelationship(Entity source, Entity target, String name): void
+updateRelationships(): void
+generateSQL(): void
+getSQLType(String type): String
+saveToJson(File file): void
+loadFromJson(File file): void
}
DiagramController --> Entity
class DiagramData {
+entities: List
+relationships: List
+getEntities(): List
+setEntities(List entities): void
+getRelationships(): List
+setRelationships(List relationships): void
}
class Attribute {
+name: String
+type: String
+isPrimaryKey: boolean
+isForeignKey: boolean
+isNullable: boolean
+getName(): String
+setName(String name): void
+getType(): String
+setType(String type): void
+isPrimaryKey(): boolean
+setPrimaryKey(boolean primaryKey): void
+isForeignKey(): boolean
+setForeignKey(boolean foreignKey): void
+isNullable(): boolean
+setNullable(boolean nullable): void
}
class Entity {
+name: String
+attributes: List
+x: double
+y: double
+autoGenerateId: boolean
+getName(): String
+setName(String name): void
+getAttributes(): List
+addAttribute(Attribute attribute): void
+getX(): double
+setX(double x): void
+getY(): double
+setY(double y): void
+isAutoGenerateId(): boolean
+setAutoGenerateId(boolean autoGenerateId): void
}
class Relationship {
+name: String
+sourceEntity: Entity
+targetEntity: Entity
+sourceCardinality: String
+targetCardinality: String
+x: double
+y: double
+getName(): String
+setName(String name): void
+getSourceEntity(): Entity
+setSourceEntity(Entity sourceEntity): void
+getTargetEntity(): Entity
+setTargetEntity(Entity targetEntity): void
+getSourceCardinality(): String
+setSourceCardinality(String sourceCardinality): void
+getTargetCardinality(): String
+setTargetCardinality(String targetCardinality): void
+getX(): double
+setX(double x): void
+getY(): double
+setY(double y): void
}
Relationship --> Entity
Relationship --> Entity
class SQLGenerationServiceImpl {
+generateCreateTableStatements(List entities): String
+generateForeignKeyStatements(List relationships): String
+generateCompleteScript(List entities, List relationships): String
+importFromSQL(String sqlScript): void
}
SQLGenerationService <|.. SQLGenerationServiceImpl
class DiagramServiceImpl {
+entities: List
+relationships: List
+fileStorageService: FileStorageService
+invalidationListeners: List
+changeListeners: List
+notifyListeners(): void
+addEntity(Entity entity): void
+removeEntity(Entity entity): void
+addRelationship(Relationship relationship): void
+removeRelationship(Relationship relationship): void
+getEntities(): List
+getRelationships(): List
+saveToFile(File file): void
+loadFromFile(File file): void
+addListener(InvalidationListener listener): void
+removeListener(InvalidationListener listener): void
+addChangeListener(Runnable listener): void
+removeChangeListener(Runnable listener): void
}
DiagramService <|.. DiagramServiceImpl
class JsonFileStorageService {
+objectMapper: ObjectMapper
+save(File file, List entities, List relationships): void
+load(File file): DiagramData
}
FileStorageService <|.. JsonFileStorageService
class SQLGenerationServiceImpl {
+diagramService: DiagramService
+generateCompleteScript(List entities, List relationships): String
+importFromSQL(String sqlScript): void
+generateCreateTableStatements(List entities): String
+generateForeignKeyStatements(List relationships): String
}
SQLGenerationService <|.. SQLGenerationServiceImpl
class SQLGenerator {
+generateCreateTables(List entities, List relationships): String
+generateTableSQL(Entity entity, boolean includeForeignKeys): String
+generateForeignKeySQL(Relationship rel): String
+getSQLType(String type): String
}
class DiagramView {
+diagramService: DiagramService
+entityBlocks: Map
+relationshipBlocks: Map
+addEntity(Entity entity): void
+addEntity(Entity entity, double x, double y): void
+addRelationship(Relationship relationship): void
+removeEntity(Entity entity): void
+removeRelationship(Relationship relationship): void
+updateRelationships(): void
+clear(): void
+getEntityAt(double x, double y): Entity
}
Pane <|-- DiagramView
class DialogManager {
+showAttributeDialog(): Optional
+showCardinalityDialog(String currentValue): Optional
}
class EntityBlock {
+entity: Entity
+nameLabel: Label
+attributesBox: VBox
+connectedRelationships: List
+refreshAttributes(): void
+showAddAttributeDialog(): void
+setupDragging(): void
+getEntity(): Entity
+addRelationship(RelationshipBlock relationship): void
+removeRelationship(RelationshipBlock relationship): void
+updateConnectedRelationships(): void
}
VBox <|-- EntityBlock
EntityBlock --> Entity
class Delta {
+x: double
+y: double
}
class MainView {
+root: BorderPane
+diagramView: DiagramView
+diagramService: DiagramService
+sqlService: SQLGenerationService
+sqlEditor: TextArea
+currentMode: String
+sourceEntity: Entity
+initializeComponents(): void
+setupSQLEditor(): VBox
+showNewEntityDialog(double x, double y): void
+showNewRelationshipDialog(Entity source, Entity target): void
+refreshDiagramView(): void
+updateSQLEditor(): void
+getRoot(): BorderPane
}
MainView --> DiagramView
MainView --> Entity
class RelationshipBlock {
+relationship: Relationship
+line: Line
+nameLabel: Label
+sourceCardLabel: Label
+targetCardLabel: Label
+sourceBlock: EntityBlock
+targetBlock: EntityBlock
+updatePosition(): void
+setupContextMenu(): void
+showCardinalityDialog(): void
+getRelationship(): Relationship
}
Group <|-- RelationshipBlock
RelationshipBlock --> Relationship
RelationshipBlock --> EntityBlock
RelationshipBlock --> EntityBlock
@enduml

@ -0,0 +1,634 @@
# Documentation du Projet
## Classe Main
Hérite de: `Application`
### Attributs
### Méthodes
#### start
- Retour: `void`
- Paramètres: `Stage primaryStage`
#### main
- Retour: `void`
- Paramètres: `String args`
---
## Classe DiagramController
### Attributs
- `canvas`: Pane
- `entities`: List
- `relationships`: List
- `entityBlocks`: List
- `relationshipBlocks`: List
- `selectedEntity`: Entity
### Méthodes
#### addEntity
- Retour: `void`
- Paramètres: `String name, double x, double y`
#### addRelationship
- Retour: `void`
- Paramètres: `Entity source, Entity target, String name`
#### updateRelationships
- Retour: `void`
- Paramètres: ``
#### generateSQL
- Retour: `void`
- Paramètres: ``
#### getSQLType
- Retour: `String`
- Paramètres: `String type`
#### saveToJson
- Retour: `void`
- Paramètres: `File file`
#### loadFromJson
- Retour: `void`
- Paramètres: `File file`
---
## Classe DiagramData
### Attributs
- `entities`: List
- `relationships`: List
### Méthodes
#### getEntities
- Retour: `List`
- Paramètres: ``
#### setEntities
- Retour: `void`
- Paramètres: `List entities`
#### getRelationships
- Retour: `List`
- Paramètres: ``
#### setRelationships
- Retour: `void`
- Paramètres: `List relationships`
---
## Classe Attribute
### Attributs
- `name`: String
- `type`: String
- `isPrimaryKey`: boolean
- `isForeignKey`: boolean
- `isNullable`: boolean
### Méthodes
#### getName
- Retour: `String`
- Paramètres: ``
#### setName
- Retour: `void`
- Paramètres: `String name`
#### getType
- Retour: `String`
- Paramètres: ``
#### setType
- Retour: `void`
- Paramètres: `String type`
#### isPrimaryKey
- Retour: `boolean`
- Paramètres: ``
#### setPrimaryKey
- Retour: `void`
- Paramètres: `boolean primaryKey`
#### isForeignKey
- Retour: `boolean`
- Paramètres: ``
#### setForeignKey
- Retour: `void`
- Paramètres: `boolean foreignKey`
#### isNullable
- Retour: `boolean`
- Paramètres: ``
#### setNullable
- Retour: `void`
- Paramètres: `boolean nullable`
---
## Classe Entity
### Attributs
- `name`: String
- `attributes`: List
- `x`: double
- `y`: double
- `autoGenerateId`: boolean
### Méthodes
#### getName
- Retour: `String`
- Paramètres: ``
#### setName
- Retour: `void`
- Paramètres: `String name`
#### getAttributes
- Retour: `List`
- Paramètres: ``
#### addAttribute
- Retour: `void`
- Paramètres: `Attribute attribute`
#### getX
- Retour: `double`
- Paramètres: ``
#### setX
- Retour: `void`
- Paramètres: `double x`
#### getY
- Retour: `double`
- Paramètres: ``
#### setY
- Retour: `void`
- Paramètres: `double y`
#### isAutoGenerateId
- Retour: `boolean`
- Paramètres: ``
#### setAutoGenerateId
- Retour: `void`
- Paramètres: `boolean autoGenerateId`
---
## Classe Relationship
### Attributs
- `name`: String
- `sourceEntity`: Entity
- `targetEntity`: Entity
- `sourceCardinality`: String
- `targetCardinality`: String
- `x`: double
- `y`: double
### Méthodes
#### getName
- Retour: `String`
- Paramètres: ``
#### setName
- Retour: `void`
- Paramètres: `String name`
#### getSourceEntity
- Retour: `Entity`
- Paramètres: ``
#### setSourceEntity
- Retour: `void`
- Paramètres: `Entity sourceEntity`
#### getTargetEntity
- Retour: `Entity`
- Paramètres: ``
#### setTargetEntity
- Retour: `void`
- Paramètres: `Entity targetEntity`
#### getSourceCardinality
- Retour: `String`
- Paramètres: ``
#### setSourceCardinality
- Retour: `void`
- Paramètres: `String sourceCardinality`
#### getTargetCardinality
- Retour: `String`
- Paramètres: ``
#### setTargetCardinality
- Retour: `void`
- Paramètres: `String targetCardinality`
#### getX
- Retour: `double`
- Paramètres: ``
#### setX
- Retour: `void`
- Paramètres: `double x`
#### getY
- Retour: `double`
- Paramètres: ``
#### setY
- Retour: `void`
- Paramètres: `double y`
---
## Classe SQLGenerationServiceImpl
Implémente: SQLGenerationService
### Attributs
### Méthodes
#### generateCreateTableStatements
- Retour: `String`
- Paramètres: `List entities`
#### generateForeignKeyStatements
- Retour: `String`
- Paramètres: `List relationships`
#### generateCompleteScript
- Retour: `String`
- Paramètres: `List entities, List relationships`
#### importFromSQL
- Retour: `void`
- Paramètres: `String sqlScript`
---
## Classe DiagramServiceImpl
Implémente: DiagramService
### Attributs
- `entities`: List
- `relationships`: List
- `fileStorageService`: FileStorageService
- `invalidationListeners`: List
- `changeListeners`: List
### Méthodes
#### notifyListeners
- Retour: `void`
- Paramètres: ``
#### addEntity
- Retour: `void`
- Paramètres: `Entity entity`
#### removeEntity
- Retour: `void`
- Paramètres: `Entity entity`
#### addRelationship
- Retour: `void`
- Paramètres: `Relationship relationship`
#### removeRelationship
- Retour: `void`
- Paramètres: `Relationship relationship`
#### getEntities
- Retour: `List`
- Paramètres: ``
#### getRelationships
- Retour: `List`
- Paramètres: ``
#### saveToFile
- Retour: `void`
- Paramètres: `File file`
#### loadFromFile
- Retour: `void`
- Paramètres: `File file`
#### addListener
- Retour: `void`
- Paramètres: `InvalidationListener listener`
#### removeListener
- Retour: `void`
- Paramètres: `InvalidationListener listener`
#### addChangeListener
- Retour: `void`
- Paramètres: `Runnable listener`
#### removeChangeListener
- Retour: `void`
- Paramètres: `Runnable listener`
---
## Classe JsonFileStorageService
Implémente: FileStorageService
### Attributs
- `objectMapper`: ObjectMapper
### Méthodes
#### save
- Retour: `void`
- Paramètres: `File file, List entities, List relationships`
#### load
- Retour: `DiagramData`
- Paramètres: `File file`
---
## Classe SQLGenerationServiceImpl
Implémente: SQLGenerationService
### Attributs
- `diagramService`: DiagramService
### Méthodes
#### generateCompleteScript
- Retour: `String`
- Paramètres: `List entities, List relationships`
#### importFromSQL
- Retour: `void`
- Paramètres: `String sqlScript`
#### generateCreateTableStatements
- Retour: `String`
- Paramètres: `List entities`
#### generateForeignKeyStatements
- Retour: `String`
- Paramètres: `List relationships`
---
## Classe SQLGenerator
### Attributs
### Méthodes
#### generateCreateTables
- Retour: `String`
- Paramètres: `List entities, List relationships`
#### generateTableSQL
- Retour: `String`
- Paramètres: `Entity entity, boolean includeForeignKeys`
#### generateForeignKeySQL
- Retour: `String`
- Paramètres: `Relationship rel`
#### getSQLType
- Retour: `String`
- Paramètres: `String type`
---
## Classe DiagramView
Hérite de: `Pane`
### Attributs
- `diagramService`: DiagramService
- `entityBlocks`: Map
- `relationshipBlocks`: Map
### Méthodes
#### addEntity
- Retour: `void`
- Paramètres: `Entity entity`
#### addEntity
- Retour: `void`
- Paramètres: `Entity entity, double x, double y`
#### addRelationship
- Retour: `void`
- Paramètres: `Relationship relationship`
#### removeEntity
- Retour: `void`
- Paramètres: `Entity entity`
#### removeRelationship
- Retour: `void`
- Paramètres: `Relationship relationship`
#### updateRelationships
- Retour: `void`
- Paramètres: ``
#### clear
- Retour: `void`
- Paramètres: ``
#### getEntityAt
- Retour: `Entity`
- Paramètres: `double x, double y`
---
## Classe DialogManager
### Attributs
### Méthodes
#### showAttributeDialog
- Retour: `Optional`
- Paramètres: ``
#### showCardinalityDialog
- Retour: `Optional`
- Paramètres: `String currentValue`
---
## Classe EntityBlock
Hérite de: `VBox`
### Attributs
- `entity`: Entity
- `nameLabel`: Label
- `attributesBox`: VBox
- `connectedRelationships`: List
### Méthodes
#### refreshAttributes
- Retour: `void`
- Paramètres: ``
#### showAddAttributeDialog
- Retour: `void`
- Paramètres: ``
#### setupDragging
- Retour: `void`
- Paramètres: ``
#### getEntity
- Retour: `Entity`
- Paramètres: ``
#### addRelationship
- Retour: `void`
- Paramètres: `RelationshipBlock relationship`
#### removeRelationship
- Retour: `void`
- Paramètres: `RelationshipBlock relationship`
#### updateConnectedRelationships
- Retour: `void`
- Paramètres: ``
---
## Classe Delta
### Attributs
- `x`: double
- `y`: double
### Méthodes
---
## Classe MainView
### Attributs
- `root`: BorderPane
- `diagramView`: DiagramView
- `diagramService`: DiagramService
- `sqlService`: SQLGenerationService
- `sqlEditor`: TextArea
- `currentMode`: String
- `sourceEntity`: Entity
### Méthodes
#### initializeComponents
- Retour: `void`
- Paramètres: ``
#### setupSQLEditor
- Retour: `VBox`
- Paramètres: ``
#### showNewEntityDialog
- Retour: `void`
- Paramètres: `double x, double y`
#### showNewRelationshipDialog
- Retour: `void`
- Paramètres: `Entity source, Entity target`
#### refreshDiagramView
- Retour: `void`
- Paramètres: ``
#### updateSQLEditor
- Retour: `void`
- Paramètres: ``
#### getRoot
- Retour: `BorderPane`
- Paramètres: ``
---
## Classe RelationshipBlock
Hérite de: `Group`
### Attributs
- `relationship`: Relationship
- `line`: Line
- `nameLabel`: Label
- `sourceCardLabel`: Label
- `targetCardLabel`: Label
- `sourceBlock`: EntityBlock
- `targetBlock`: EntityBlock
### Méthodes
#### updatePosition
- Retour: `void`
- Paramètres: ``
#### setupContextMenu
- Retour: `void`
- Paramètres: ``
#### showCardinalityDialog
- Retour: `void`
- Paramètres: ``
#### getRelationship
- Retour: `Relationship`
- Paramètres: ``
---

@ -0,0 +1 @@
1.1.1-beta1
Loading…
Cancel
Save