Skip to content

Latest commit

Β 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PROJECT TITLE: ImpactGraph

Current Phase :

Complete

βš™οΈ πŸ”§ TECHNOLOGIES AND PLATFORMS :

  • βšͺ Platform - Website Application
  • βšͺ User Database - MySql
  • βšͺ Graph Database - Neo4j
  • βšͺ FrontEnd - React
  • βšͺ FrontEnd (CSS) - Tailwind
  • βšͺ BackEnd - Spring
  • βšͺ Version Control - Git

πŸ’Ό Brief Overview :

In a complex network environment, engineers often need to take down specific components for
maintenance, updates, or troubleshooting. Currently, the process of identifying and understanding
the downstream impact ofshutting down a component relies heavily on the engineer's memory
and manual tracking.
This method is prone to errors, as engineers may overlook certain dependencies or miss
components that are indirectly affected.An Interactive Component Dependency Management System.
This application will provide a visual representation of all components and their dependencies
within the network.It will support operations for managing components and their dependencies

image

πŸ”† System Features :

1. COMPONENT CREATE
    * Admin can create any Component to the system.

2. COMPONENT UPDATE
    * Allows admins to update the component's details.
3. COMPONENT DELETE
    * Admins can delete any single component.
4. DEPENDENCY MANGEMENT
    * Admin can manage the dependencies of the components
 5. INTERACTIVE GRAPH
     * User and Admins can view a interactive network graph consisting all the components
6. COMPONENT SEARCH & VIEW:
    * Users and Admins are able to search any components by its name or ip address and can view the details

image

πŸ› οΈ Setup :

For UI / Frontend

Step 1: Clone project

Clone the UI Project from Here ImpactGraph-UI.

Step 2: Open it in VSCode / any other Editor

Step 3: Install npm and other dependencies

Node.js Version- 20.15.0

npm install

Step 4: Create .env file

PORT = <Port Number>
REACT_APP_SECRET_KEY = <Secret Key>
REACT_APP_BASE_URL = <Base Url>

🌐 Step 5: Run ImpactGraph-UI in your local

npm run start

You can run the project by Process Manager.There is a file in the Project directory named "ecosystem.config.js". In this file you can add your own sricpt , Project Name , can define the maximum number of CPU and Memory usage.

npm install pm2@latest -g
npm run build
pm2 start ecosystem.config.js

Runs the app in the development mode.
Open http://localhost:<Port_Number> to view it in your browser.

The page will reload when you make changes.
You may also see any lint errors in the console.

For Backend/ MW

Step 1: Clone project

Clone the Backend Project from Here ImpactGraph-MW.

Step 2: Open it in Intelij / any other Editor

Step 3: Install Dependencies

Java Version - JDK 21

SDK - default

	implementation 'org.springframework.boot:spring-boot-starter-data-neo4j'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	runtimeOnly 'com.mysql:mysql-connector-j'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	testImplementation 'org.springframework.security:spring-security-test'
	implementation 'io.jsonwebtoken:jjwt-api:0.12.6'
	runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6'
	runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6'

Plugins

	id 'java'
	id 'org.springframework.boot' version '3.3.1'
	id 'io.spring.dependency-management' version '1.1.5'

application.properties

spring.application.name=ImpactGraph
server.port = 8081
app.allowed.origins=<URL>
spring.neo4j.uri= <your neo4j/ auradb uri>
spring.neo4j.authentication.username= <your Neo4j Username>
spring.neo4j.authentication.password= <your Neo4j Password>
spring.app.jwtSecret=4b3e5zF8xJZpWkNwQzCFJaNdRgUkXp2s5v8yBEHMbQeThWmZq4t6w9
spring.app.jwtExpirationMs=604800000
spring.security.user.password=admin
spring.security.user.name=admin


spring.datasource.url= <your Mysql Url>
spring.datasource.username= <your mysql Username>
spring.datasource.password= <your mysql Password>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect


logging.level.root=INFO
logging.level.org.neo4j=INFO
logging.level.org.springframework.data.neo4j=INFO
logging.level.org.springframework.data.neo4j.cypher=ERROR
logging.file.path = <log file path>

🌐 Step 4: Run ImpactGraph-MW in your local machine

You can build the project and run the tests.

There are several ways to run a Spring Boot application on your local machine:

One way is to execute the main method in the com.project.ImpactGraph class from your IDE.


Running a JAR with an external application.properties file:

  1. Create the JAR file:

    • In IntelliJ, go to the Gradle tab and run bootJar.
    • This will create a JAR file in the build/libs directory.
  2. Run the JAR with an external application.properties file:

Run the following command in the terminal to run the JAR:

java -jar ImpactGraph.jar --spring.config.location=classpath:/,file:/path/to/external/application.properties

Replace the /path/to/external/application.properties with the actual path to your application.properties file.

image

Collaborators :

About

ImpactGraph-MW

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages