Skip to content

Social Network Visualizer is a web-based tool for importing, analysing, and interactively visualising relationships between social-media users (e.g. Twitter/X)

Notifications You must be signed in to change notification settings

daredevilq/snv-snapshot

Repository files navigation

🧠 Social Network Visualizer

Social Network Visualizer is a web-based tool for importing, analysing, and interactively visualising relationships between social-media users (e.g. Twitter/X).
Everything runs locally in Docker – one command spins up the backend, frontend, and Neo4j graph database.


🎯 Project Goals

Goal Description
Offline data import Accepts .json files shaped like a Twitter/X API export (tweets, users, metadata).
Graph-native storage Maps raw tweets into nodes (users, tweets, hashtags) and edges (mentions, retweets, replies).
Fast SNA analytics Built-in centrality metrics, community detection (Label Propagation), influencer ranking.
WebGL graph React/Next.js frontend powered by react-force-graph (2D/3D) – smooth even with > 1 M edges.
Dashboards & reports Global stats, activity heat-maps, user/community drill-downs; PDF/CSV export (road-mapped).
Zero-code UX From import → pick relation → explore in a few clicks – no scripting required.

🏗️ High-Level Architecture

High-level architecture

A web application for visualizing user interactions from social media platforms using a graph-based approach. The system consists of a Spring Boot backend, a Next.js frontend, and a Neo4j graph database — all containerized with Docker.


🎥 Project Demo

2026-01-26.17-47-43.mp4

🛠️ Requirements

  • Docker and Docker Compose installed
  • Docker Engine running in the background

🚀 Running the Application

Go to the project root directory:

cd social-network-visualizer

Update .env file by proving credentials for your databases:

Note: For Neo4j a password of at least 8 characters is required. For MongoDB it's not strictly required, but it’s recommended to also use a password that is at least 8 characters long.

# MongoDB
MONGO_HOST=mongodb
MONGO_PORT=27017
MONGO_DATABASE=socialdb
MONGO_USERNAME=root
MONGO_PASSWORD=
MONGO_AUTH_DB=admin

# Neo4j
NEO4J_URI=bolt://neo4j-database:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=
NEO4J_AUTH="neo4j/${NEO4J_PASSWORD}"

IMPORTANT!

If the application was previously started with different database credentials, Docker volumes may still contain old database data (including users and passwords).

In such a case, MongoDB or Neo4j may ignore the updated values from the .env file, which can cause authentication failures in the backend.

To start from a clean state and ensure that the new credentials are properly applied, you need to remove all existing containers and volumes:

docker compose down -v --remove-orphans

Then run all containers:

docker-compose up --build

Or, if the images are already built:

docker-compose up

Accessing the Application

Main application: Frontend: http://localhost:3000

📦 Sample projects (upload)

Example projects files that can be uploaded into the application are located here:

example-data/

⚖️ License

The source code in this repository is the intellectual property of the authors. It is provided here for portfolio demonstration purposes only.

You may view and download the code for personal review, but you may not use it, modify it, or redistribute it (in part or in whole) without explicit written permission from the authors.

👥 Authors & Acknowledgements

GitHub Handle Name Role
@daredevilq Piotr Śmiałek full-stack
@TommyFurgi Tomasz Furgała full-stack
@WiktorDybalski Wiktor Dybalski full-stack

About

Social Network Visualizer is a web-based tool for importing, analysing, and interactively visualising relationships between social-media users (e.g. Twitter/X)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages