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.
| 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. |
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.
2026-01-26.17-47-43.mp4
- Docker and Docker Compose installed
- Docker Engine running in the background
Go to the project root directory:
cd social-network-visualizerUpdate .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-orphansThen run all containers:
docker-compose up --buildOr, if the images are already built:
docker-compose up
Main application: Frontend: http://localhost:3000
Example projects files that can be uploaded into the application are located here:
example-data/
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.
| GitHub Handle | Name | Role |
|---|---|---|
| @daredevilq | Piotr Śmiałek | full-stack |
| @TommyFurgi | Tomasz Furgała | full-stack |
| @WiktorDybalski | Wiktor Dybalski | full-stack |
