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.