Welcome to SCMA App, an Ionic Angular application.
Before you begin, ensure you have the following installed:
- Node.js (v14.x or later)
- Npm (Node Package Manager, comes with Node.js)
- Ionic CLI
To install Ionic CLI globally, use npm:
npm install -g @ionic/cli
Follow these steps to set up and run the SCMA App locally:
git clone [https://github.com/your-username/scma-app.git](https://github.com/NabilKazi247/SCMA.git && cd SCMA
npm install
ionic serve
This command starts a local development server and opens your default web browser to preview the app.
Automatically fetches Models from the provided OpenAPI endpoint.
Select specific Models you want to include in the UML and Neo4j Graph model.
- Click 'Create Graph Model' to generate the UML, Neo4j Graph model and Cypher code based on your selection.
- Using different logic/approaches from OpenApi Specification such as:
- find related models from selected models properties.
- find related paths.
- find related model from the related path and create relationship between the related model and selected model.
- checks which properties of the model are required.
- Following the above logic the UML, Neo4j Graph model and Cypher code are created..
- Cypher code can be edited and executed which then will create the Graph Model in the connect Neo4j Database.
Once the model is created, the Download JSON button will appear.
Click it to download the JSON data as a file (model.json).
- Ionic Framework
- Angular
- TypeScript
- Docker (For OpenProject)
- Neo4j Desktop
SWAPI (Star Wars API)- OpenProject OpenAPI
- PetStore OpenAPI
- FileSaver.js
- Selective Synchronization: Implemented selective synchronization for user-defined model and API elements.
- Bidirectional Synchronization: Developed bidirectional synchronization mechanism for propagating changes between the model and the API structure.
- Automatic Synchronization Triggers:
- Instant Trigger: Every change is propagated immediately.
- Scheduled Trigger: Automatically syncs every hour.
- Delayed Trigger: Waits 15 minutes after a change.
- Manual Synchronization: Added manual triggers for user-initiated sync.
- Enhanced API Method Customization allowing users to selectively sync
GET
,POST
,PUT
, andDELETE
methods. - Refined Model Extraction Process to support complex types such as nested schemas and custom API parameters.
- Improved Model Representation in Neo4j for better querying and relationship management.
- Enhanced the User Interface for easier property selection and model visualization.
- Integrated Path Information Visualization within Step 3 of the workflow.
- Fixed the issue with Execute Button remaining disabled despite valid property selection.
- Resolved inconsistencies in Bidirectional Updates when modifying nodes with multiple relationships.
- Corrected Synchronization Logic to prevent infinite loops when models are interdependent.
- Added Color-Coded Method Labels for
GET
(blue),POST
(green),PUT
(orange), andDELETE
(red) methods. - Updated the layout in Step 3 - Select API Requests for a more streamlined user experience.
- Introduced Missing Property Highlighting with gray-out effects and text indicators.
- Introduced User-Driven Model Customization with the ability to modify selected fields in a model.
- Added UML Diagram Visualization for representing model structures graphically.
- Refined Model Creation Workflow with a multi-step approach:
- Step 1: Select Models.
- Step 2: Select Related Models and Properties.
- Step 3: Define API Requests.
- Step 4: Execute and View Results.
- Resolved path synchronization errors in Neo4j Graph Update Module.
- Fixed validation issues in API Parameter Parsing.
- Initial implementation of OpenAPI-to-Model Synchronization with basic CRUD operations.
- Integration of Neo4j Service for storing API paths and relationships.
- Created Basic API Visualization using PlantUML for diagrammatic representations.
- Added Model Relationships Mapping for handling interdependencies between API elements.
- Enabled Custom Property Selection within models.
- Fixed minor UI glitches in Model Selection Screen.
- Addressed inconsistencies in Path Method Handling during model sync.
- Implemented Initial Model Creation from OpenAPI specifications.
- Integrated Neo4j for storing model graphs.
- Fixed data-type mismatches between API parameters and Neo4j properties.
- Core functionality for OpenAPI Specification Parsing.
- Basic Model Creation for primary schemas.
- π Major Features
- π Synchronization Features
- β¨ UI/UX Improvements
- π Bug Fixes
- π οΈ Enhancements
- π Visual Features