Zayd Nahli 1 week ago
commit 03351d9d12

@ -4,7 +4,7 @@
## 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.
- **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.
@ -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
- [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] Prise en charge de PHP
### 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.
- [ ] Amélioration de l'interface utilisateur (apparence et ergonomie).
- [ ] Optimisation des performances pour une génération plus rapide.
- [ ] Ajout d'options de personnalisation pour les diagrammes générés.
- [ ] 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, 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
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