Technology Environment

This document describes the technological environment of the Datalyz project, including technologies, infrastructure, and hardware requirements.

1. Technologies & Libraries

Web Extension

  • Framework: WXT, Vue.js 3, Vite.

  • State Management: Pinia with Pinia Plugin Persisted State.

  • Routing: Vue Router.

  • Styling: TailwindCSS, PostCSS.

  • Visualization: ApexCharts.

  • Internationalization: Vue-i18n, @wxt-dev/i18n.

Frontend (Dashboard & Landing Page)

  • Framework: Vue.js 3, Vite.

  • State Management & Requests: Pinia, Axios.

  • Styling & Animations: TailwindCSS, AOS (Animate On Scroll).

  • Data Visualization: ApexCharts & Vue3-ApexCharts.

  • Cookie Management: Vue3-Cookies.

Backend

  • Language & Framework: Go 1.24.0, Gin.

  • Database & ORM: PostgreSQL, GORM.

  • Security & Authentication: JWT (golang-jwt/jwt/v5), Crypto.

  • Messaging & Events: Apache Kafka (via Sarama).

  • Configuration: Viper.

  • Logs: Zerolog.

Data Processing and Analysis

  • Data Manipulation: NumPy, Pandas.

  • Machine Learning: Scikit-learn for exploratory analysis and modeling (K-NN, K-means, regressions, etc.).

  • Data Streaming: Spark.

  • NoSQL Database: Cassandra.

2. Infrastructure & Deployment

Server Architecture

  • Back-end Servers: Include the application backend, user database (PostgreSQL), message broker (Kafka), Spark, Cassandra, and workers. Their IP addresses are whitelisted for security.

  • Front-end and VPN Servers: The front-end server is accessible via port 80 and the VPN server (WireGuard) via port 51820.

  • Communication Security: All inter-server communications are encrypted via SSL/TLS.

Deployment

  • Containerization: Docker.

  • CI/CD Orchestration: GitHub Actions.

  • Infrastructure Provisioning: Terraform.

  • Configuration Management: Ansible.

Service Dependencies

  • Relational Database: PostgreSQL.

  • NoSQL Database: Cassandra, used by Spark.

  • Message Queue: Apache Kafka for asynchronous data streaming.

3. Hardware Requirements

The project requires server infrastructure to host the various components: * One or more servers for the Go backend and associated services (databases, Kafka). * One server for the Vue.js frontend. * One dedicated server for the VPN service (WireGuard).

No other specific hardware is required for the project.