https://github.com/athenarc/timevizbench
An interactive evaluation platform for scalable time series visualization methods across performance and accuracy dimensions.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.3%) to scientific vocabulary
Keywords
Repository
An interactive evaluation platform for scalable time series visualization methods across performance and accuracy dimensions.
Basic Info
- Host: GitHub
- Owner: athenarc
- License: mit
- Language: Java
- Default Branch: master
- Homepage: http://timevizbench.imsi.athenarc.gr
- Size: 914 KB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
TimeVizBench
An interactive evaluation platform for scalable time series visualization methods across performance and accuracy dimensions.
Prerequisites
- Java 17
- Maven
- Node.js
- Docker & Docker Compose
Getting the Code
- Clone the Repository
bash git clone https://github.com/athenarc/TimeVizBench.git - Navigate into the repository:
bash cd TimeVizBench
Local Development
1. Build the Backend
Go to the backend directory:
bash cd backendRun Maven to package the Spring Boot application:
bash mvn clean installA .jar file (e.g., time-viz-bench-1.0.jar) will appear in the target directory.
2. Start the Spring Boot Backend
bash
java -jar target/time-viz-bench-1.0.jar
The backend will now run and wait for requests.
3. Install and Start the Frontend
- Navigate to the frontend directory:
bash cd ../frontend - Install dependencies (if not already done):
bash npm install - Start the development server:
bash npm start
4. Run NGINX via Docker
In a new terminal, from the frontend folder, run:
bash
docker compose up -d
This spins up an NGINX container configured to serve the application.
5. Access the Application
Open your browser at:
http://localhost:9090
The frontend should communicate with the locally running backend.
Deployment (Using Docker)
1. Build and run the Backend
From the project root, navigate to backend:
bash
cd backend
mvn clean install
java -jar target/time-viz-bench-1.0.jar
2. Prepare the Frontend
Go to the frontend folder from the project root:
bash
cd frontend
3. Copy Environment and Configuration TemplatesInside the frontend folder, you’ll see the .env.example file and a templates directory:
bash
cp .env.example .env
cp templates/dev.conf.template templates/default.conf.template
This sets up your environment variables and the development NGINX config.
4. Build the Frontend for Production
bash
npm run build
This compiles the frontend into production-ready static files.
5. Start Containers with Docker Compose
Still in the frontend directory (where your docker-compose.yml resides), run:
bash
docker compose up -d
This will launch the backend container (using the .jar built in step 1) and the NGINX container (to serve the newly built frontend).
6. Verify the Deployment
Visit:
http://localhost:9090
You should see the application running in its containerized form (backend + frontend via NGINX).
Creating a Visual Method
TimeVizBench automatically discovers and registers visual methods. Once implemented, they become available in the UI with auto-generated parameter controls.
1. Create a New Method Class
```java @VisualMethod( name = "ExampleAverage", description = "An example method that computes averages over time intervals" ) public class SimpleAverageMethod implements Method {
// Parameters automatically appear as UI controls
// This is a query parameter that decides the agg. interval
@Parameter(
name = "Interval (ms)",
description = "The aggregation interval in milliseconds",
min = 1000,
max = 12000000000L,
step = 10000,
defaultValue = 10000,
isQueryParameter = true
)
private long interval;
} ```
2. Implement Required Methods
The method interface requires two main methods:
```java
// Handles method initialization
@Override
public void initialize(String schema, String datasetId,
DatasourceConnector datasourceConnector,
Map
// Processes visualization queries @Override public VisualQueryResults executeQuery(VisualQuery query) { // Query processing logic } ```
3. Ready to Use
- Place your implementation in the methods package
- The system automatically:
- Discovers the method via @VisualMethod annotation
- Creates UI controls based on @Parameter annotations
- Makes the method available in the visualization interface
- Handles parameter validation and query execution
See SimpleAverageMethod.java for a complete reference implementation.
Owner
- Name: ATHENA RC
- Login: athenarc
- Kind: organization
- Email: github@athenarc.gr
- Location: Athens, Greece
- Website: www.athenarc.gr
- Repositories: 65
- Profile: https://github.com/athenarc
ATHENA Research & Innovation Information Technologies
GitHub Events
Total
- Watch event: 1
- Member event: 4
- Push event: 20
- Create event: 8
Last Year
- Watch event: 1
- Member event: 4
- Push event: 20
- Create event: 8
Dependencies
- openjdk 17-jdk-slim build
- nginx 1.27
- nginx 1.27
- ch.qos.logback:logback-classic 1.4.14
- com.beust:jcommander 1.82
- com.google.guava:guava 33.3.1-jre
- com.h2database:h2 2.3.232
- com.influxdb:influxdb-client-java 6.7.0
- com.opencsv:opencsv 5.9
- com.univocity:univocity-parsers 2.9.1
- it.unimi.dsi:fastutil 8.5.12
- javax.validation:validation-api 2.0.1.Final
- org.apache.commons:commons-lang3 3.12.0
- org.apache.commons:commons-math3 3.6.1
- org.postgresql:postgresql 42.7.4
- org.reflections:reflections 0.10.2
- org.springframework.boot:spring-boot-starter-data-jpa 3.3.4
- org.springframework.boot:spring-boot-starter-logging 3.3.4
- org.springframework.boot:spring-boot-starter-web 3.3.4
- org.springframework.security:spring-security-config 6.3.3
- org.springframework.security:spring-security-core 6.3.3
- org.springframework.security:spring-security-oauth2-jose 6.3.3
- org.springframework.security:spring-security-oauth2-resource-server 6.3.3
- junit:junit 4.13.2 test
- @types/d ^1.0.4 development
- @emotion/react ^11.13.3
- @emotion/styled ^11.13.0
- @mui/icons-material ^6.1.4
- @mui/material ^6.1.4
- @mui/x-charts ^7.24.0
- @mui/x-date-pickers ^7.22.3
- @reduxjs/toolkit ^2.5.1
- @testing-library/jest-dom ^5.17.0
- @testing-library/react ^13.4.0
- @testing-library/user-event ^13.5.0
- @types/jest ^27.5.2
- @types/node ^16.18.112
- @types/react ^18.3.11
- @types/react-dom ^18.3.0
- axios ^1.7.7
- d3 ^7.9.0
- dayjs ^1.11.13
- image-ssim ^0.2.0
- notistack ^3.0.1
- react ^18.3.1
- react-cookie ^7.2.1
- react-dom ^18.3.1
- react-hot-toast ^2.4.1
- react-redux ^9.2.0
- react-router-dom ^6.27.0
- react-scripts ^5.0.1
- typescript ^4.9.5
- use-debounce ^10.0.4
- web-vitals ^2.1.4