22
33A modern MERISE database modeling tool built with Python and PySide6.
44
5+ ![ Version] ( https://img.shields.io/badge/version-1.1.0-blue )
6+ ![ License] ( https://img.shields.io/badge/license-GPL%20v2-green )
7+ ![ Python] ( https://img.shields.io/badge/python-3.11+-yellow )
8+
59## Features
610
711- ** MCD Editor** - Visual diagram editor for entities, associations, and links
12+ - Drag-and-drop positioning
13+ - Multi-selection and deletion
14+ - Cardinalities: (0,1), (0,N), (1,1), (1,N)
15+ - Link styles: Curved, Orthogonal, Straight
16+ - Toggle attribute visibility
817- ** Data Dictionary** - Overview of all attributes across entities
918- ** MLD View** - Logical Data Model with table/column tree view
19+ - Editable column names (right-click or double-click to rename)
20+ - Custom names saved in project and used in SQL generation
1021- ** SQL Generation** - PostgreSQL CREATE TABLE statements
11- - ** Project Management** - Save/load projects (.merisio format)
22+ - ** Project Management** - Save/load projects in ` .merisio ` JSON format
23+ - ** Options Menu** - Show/hide attributes, link style selection
1224
1325## Screenshots
1426
@@ -21,6 +33,31 @@ A modern MERISE database modeling tool built with Python and PySide6.
2133
2234## Installation
2335
36+ ### Pre-built Binaries
37+
38+ Download the latest release from the [ Releases] ( https://github.com/AchrafSoltani/Merisio/releases ) page.
39+
40+ ** Linux:**
41+ - ` Merisio-x.x.x-linux-x64.tar.gz ` - Portable archive
42+ - ` merisio_x.x.x_amd64.deb ` - Debian/Ubuntu package
43+
44+ ** Windows:**
45+ - ` Merisio-x.x.x-windows-x64.zip ` - Portable archive
46+
47+ #### Linux Installation
48+
49+ ** From .deb package (Debian/Ubuntu):**
50+ ``` bash
51+ sudo dpkg -i merisio_1.1.0_amd64.deb
52+ ```
53+
54+ ** From archive:**
55+ ``` bash
56+ tar -xzvf Merisio-1.1.0-linux-x64.tar.gz
57+ cd Merisio-1.1.0-linux-x64
58+ ./Merisio
59+ ```
60+
2461### From Source
2562
2663``` bash
@@ -40,10 +77,6 @@ pip install -r requirements.txt
4077python main.py
4178```
4279
43- ### Pre-built Binaries
44-
45- Download the latest release from the [ Releases] ( https://github.com/AchrafSoltani/Merisio/releases ) page.
46-
4780## Building from Source
4881
4982### Prerequisites
@@ -84,37 +117,12 @@ python build.py build
84117python build.py clean
85118```
86119
87- ## Distribution
88-
89- ### Linux
90-
91- ``` bash
92- # Create a tarball with all necessary files
93- mkdir -p Merisio-linux
94- cp dist/Merisio Merisio-linux/
95- cp resources/icons/app_icon.svg Merisio-linux/
96- cp merisio.desktop Merisio-linux/
97- tar -czvf Merisio-1.0.0-linux-x64.tar.gz Merisio-linux
98- ```
99-
100- Users can then:
101- 1 . Extract the archive
102- 2 . Run ` ./Merisio `
103- 3 . Optionally install the .desktop file for system integration
104-
105- ### Windows
106-
107- ``` bash
108- # Create a ZIP archive
109- # Or use NSIS/Inno Setup for an installer
110- ```
111-
112120## Usage
113121
114- 1 . ** Create Entities** - Click "Add Entity" in the MCD tab, define name and attributes
115- 2 . ** Create Associations** - Click " Add Association" to define relationships
116- 3 . ** Link Them** - Click "Add Link" to connect entities to associations with cardinalities
117- 4 . ** View MLD** - Switch to MLD tab to see the logical model
122+ 1 . ** Create Entities** - Right-click on the MCD canvas or use the toolbar to add entities
123+ 2 . ** Create Associations** - Add associations to define relationships between entities
124+ 3 . ** Link Them** - Connect entities to associations with cardinalities
125+ 4 . ** View MLD** - Switch to MLD tab to see the logical model (double-click columns to rename)
1181265 . ** Generate SQL** - Switch to SQL tab to see PostgreSQL DDL statements
1191276 . ** Save Project** - File > Save to save your work
120128
@@ -132,23 +140,56 @@ Users can then:
132140| Delete | Delete Selected |
133141| Ctrl+Scroll | Zoom In/Out |
134142
143+ ### Options Menu
144+
145+ | Option | Description |
146+ | --------| -------------|
147+ | Show Attributes | Toggle attribute visibility in MCD entities/associations |
148+ | Link Style > Curved | Bezier curve links (default) |
149+ | Link Style > Orthogonal | Right-angle links |
150+ | Link Style > Straight | Direct line links |
151+
135152## Project Structure
136153
137154```
138- AnalyseSI /
155+ Merisio /
139156├── main.py # Application entry point
140- ├── build.py # Build script
141- ├── analysesi.spec # PyInstaller configuration
157+ ├── build.py # Build script for PyInstaller
158+ ├── merisio.spec # PyInstaller configuration
159+ ├── merisio.desktop # Linux desktop integration
142160├── requirements.txt # Python dependencies
143161├── resources/
144162│ └── icons/
145- │ └── app_icon.svg # Application icon
163+ │ ├── app_icon.svg # Vector icon
164+ │ └── app_icon.png # PNG icon (256x256)
146165├── src/
147- │ ├── models/ # Data models
148- │ ├── views/ # UI components
149- │ ├── controllers/ # Business logic
150- │ └── utils/ # Utilities and constants
151- └── tests/ # Unit tests
166+ │ ├── models/ # Data models (Entity, Association, Link, Project)
167+ │ ├── views/ # UI components (Canvas, Dialogs, Views)
168+ │ ├── controllers/ # Business logic (MLD transformer, SQL generator)
169+ │ └── utils/ # Utilities, constants, theme
170+ ├── tests/ # Unit tests
171+ └── .github/
172+ └── workflows/
173+ └── build.yml # GitHub Actions CI/CD
174+ ```
175+
176+ ## File Format
177+
178+ Merisio uses a JSON-based project format with the ` .merisio ` extension:
179+
180+ ``` json
181+ {
182+ "version" : " 1.0" ,
183+ "dictionary" : { "attributes" : [... ] },
184+ "mcd" : {
185+ "entities" : [... ],
186+ "associations" : [... ],
187+ "links" : [... ]
188+ },
189+ "mld" : {
190+ "column_overrides" : { "TABLE.original_col" : " renamed_col" }
191+ }
192+ }
152193```
153194
154195## License
@@ -157,8 +198,10 @@ GNU GPL v2
157198
158199## Author
159200
160- Achraf SOLTANI
201+ ** Achraf SOLTANI**
202+ Email: achraf.soltani@pm.me
203+ GitHub: [ @AchrafSoltani ] ( https://github.com/AchrafSoltani )
161204
162205## Acknowledgments
163206
164- Based on the original [ AnalyseSI] ( https://launchpad.net/analysesi ) Java project.
207+ Inspired by the original [ AnalyseSI] ( https://launchpad.net/analysesi ) Java project.
0 commit comments