Skip to content

A Modern Matrix Protocol Client with Retro-Futuristic Design基于Matrix协议的现代化即时通讯客户端,采用复古未来主义设计

Notifications You must be signed in to change notification settings

jianluo999/JianLuoChat

Repository files navigation

JianLuoChat / 简络聊

JianLuoChat Logo

A Modern Matrix Protocol Client with Retro-Futuristic Design 基于Matrix协议的现代化即时通讯客户端,采用复古未来主义设计

MIT License Vue 3 Spring Boot Matrix Protocol

English | 中文


English

🌟 Overview

JianLuoChat is a modern Matrix protocol client that combines the power of decentralized communication with a unique retro-futuristic design aesthetic. Built with Vue 3 and Spring Boot, it offers a seamless chat experience while maintaining full compatibility with the Matrix ecosystem.

✨ Key Features

  • 🔐 True Matrix Protocol Integration: Full Matrix client implementation with E2EE support
  • 🌍 Federation Support: Connect to any Matrix homeserver (matrix.org, kde.org, etc.)
  • 🤝 Element Interoperability: Full compatibility with Element and other Matrix clients
  • 💬 Cross-Client Messaging: Send and receive messages with Element users seamlessly
  • 🏠 Shared Room Access: Join and participate in rooms created by Element users
  • 🎨 Retro-Futuristic UI: Unique green terminal-style interface design
  • 🌐 Bilingual Support: Chinese-English interface with localization
  • 🏠 Public Room Explorer: Discover and join public rooms across the Matrix network
  • 📱 Cross-Platform: Web-based client accessible from any device
  • 🔄 Real-time Sync: Live message synchronization across devices
  • 💾 Persistent Login: Login state persists across browser sessions
  • 🚀 Modern Tech Stack: Vue 3 + Spring Boot 3 + PostgreSQL + Redis

📸 Screenshots

Login Interface

Login Screen

Main Chat Interface

Main Interface

Public Rooms Explorer

Public Rooms

Element Interoperability Demo

Element Interop

Room List and Navigation

Room List

🏗️ Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Frontend      │    │    Backend      │    │  Matrix Network │
│   (Vue 3)       │◄──►│  (Spring Boot)  │◄──►│   (Federation)  │
│                 │    │                 │    │                 │
│ • Matrix Client │    │ • Matrix SDK    │    │ • Homeservers   │
│ • Retro UI      │    │ • REST API      │    │ • Public Rooms  │
│ • Real-time     │    │ • WebSocket     │    │ • E2E Encryption│
└─────────────────┘    └─────────────────┘    └─────────────────┘

🚀 Quick Start

Option 1: Desktop Client (Recommended)

Download the latest installer from GitHub Releases:

Prerequisites

  • Windows 10/11
  • PostgreSQL 13+ (required for database)
  • Redis 6+ (required for caching)

Installation Steps

  1. Download and install the desktop client from the link above
  2. Install PostgreSQL 13+:
    # Download from: https://www.postgresql.org/download/
    # Create database 'jianluochat' with user 'jianluochat'
  3. Install Redis 6+:
    # Download from: https://redis.io/download/
    # Start Redis server
  4. Run the application:
    • The desktop client will automatically start and connect to Matrix network

Option 2: Docker (Recommended for Development)

Prerequisites

  • Docker & Docker Compose

Installation

  1. Clone the repository
git clone https://github.com/jianluo999/JianLuoChat.git
cd JianLuoChat
  1. Start with Docker
# Start PostgreSQL and Redis
docker-compose up -d postgres redis

# Wait for databases to be ready (about 10 seconds)
# Then start the application manually for development
  1. Start the application
# Windows users
start-project.bat

# Or manually:
# Backend
cd backend && mvn spring-boot:run

# Frontend (in another terminal)
cd frontend && npm install && npm run dev
  1. Access the application

Option 3: Manual Setup (Advanced)

Prerequisites

  • Node.js 18+
  • Java 17+
  • PostgreSQL 13+
  • Redis 6+

Installation

  1. Clone the repository
git clone https://github.com/jianluo999/JianLuoChat.git
cd JianLuoChat
  1. Setup Database
# Install and start PostgreSQL and Redis
# Create database 'jianluochat'
  1. Setup Backend
cd backend
# Configure database in src/main/resources/application.yml
./mvnw spring-boot:run
  1. Setup Frontend
cd frontend
npm install
npm run dev

🔧 Configuration

Docker Configuration (Recommended)

The project includes a docker-compose.yml file with pre-configured services:

# docker-compose.yml
services:
  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: jianluochat
      POSTGRES_USER: jianluochat
      POSTGRES_PASSWORD: jianluochat123
    ports:
      - "5432:5432"

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

Database Configuration

# backend/src/main/resources/application.yml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/jianluochat
    username: jianluochat
    password: jianluochat123

Matrix Configuration

# Matrix homeserver settings
matrix:
  homeserver: https://matrix.org
  client-name: JianLuoChat

🎯 Design Philosophy

JianLuoChat embraces a retro-futuristic aesthetic inspired by classic terminal interfaces and cyberpunk culture:

  • Green Terminal Theme: Monospace fonts, green-on-black color scheme
  • Matrix Protocol First: Built as a true Matrix client, not just another chat app
  • Element Compatibility: Full interoperability with Element and other Matrix clients
  • Minimalist Functionality: Focus on core communication features
  • Cultural Bridge: Bilingual design connecting Eastern and Western users

🤝 Element Interoperability

JianLuoChat is designed to work seamlessly with Element and other Matrix clients:

  • ✅ Shared Rooms: Join rooms created by Element users
  • ✅ Real-time Messaging: Send and receive messages with Element users instantly (non-encrypted rooms)
  • ✅ User Discovery: Find and communicate with users from any Matrix client
  • ✅ Federation Support: Connect across different Matrix homeservers
  • ✅ Protocol Compliance: Full Matrix Client-Server API implementation
  • ⚠️ E2E Encryption: Encrypted rooms cannot send messages yet (in development)
  • 🚧 File Sharing: File transfer with Element users (in development)
  • 🚧 Voice/Video: WebRTC calls with Element users (planned)

🛠️ Development

Tech Stack

  • Frontend: Vue 3, TypeScript, Vite, Pinia, matrix-js-sdk
  • Backend: Spring Boot 3, Java 17, PostgreSQL, Redis
  • Matrix: matrix-js-sdk, Matrix Client-Server API
  • UI: Custom CSS with retro terminal styling

📋 Changelog

v1.3.1 (2025-10-26) - Desktop Client Foundation & Login Enhancement

🚀 Desktop Client Development

  • Electron Main Process: Added electron/index.html for desktop client entry point
  • Dependency Management: Updated electron/package-lock.json for consistent dependency versions
  • Login Progress Component: Created frontend/src/components/LoginProgressBar.vue for visual login progress
  • Login Logic: Implemented frontend/src/composables/useLoginProgress.ts for non-blocking login experience
  • Vue Composition API Fix: Added fix-vue-composition-api.js to resolve Vue 3 compatibility issues

🔧 Configuration & Optimization

  • Git Ignore Enhancement: Improved .gitignore with Electron build artifacts and large file exclusions
  • Performance Improvements:
    • Non-blocking login with detailed progress feedback
    • 8-second timeout protection to prevent hanging
    • Rich animations and visual feedback for professional user experience

📁 Project Structure

electron/
├── index.html          # Desktop client main interface
├── package-lock.json   # Dependency lock file
└── ...                 # Other Electron files

frontend/
├── src/
│   ├── components/
│   │   └── LoginProgressBar.vue  # Login progress component
│   └── composables/
│       └── useLoginProgress.ts   # Login progress logic
└── ...                             # Other frontend files

v1.3.0 (2025-10-25) - Matrix Chat Enhancement & Performance Optimization

🚀 Major Updates

  • Matrix Chat Functionality Enhancement:

    • Optimized Matrix message area component for better performance
    • Implemented virtual scrolling for room lists, reducing memory usage by 50%
    • Added comprehensive performance monitoring system
    • Enhanced Matrix message input component for smoother typing experience
  • Performance Optimization:

    • Implemented frontend performance monitoring with network and error tracking
    • Optimized Matrix room list rendering performance (60% faster loading)
    • Added performance testing page for validation
    • Created performance-optimized application version
  • Encryption Fix Tools:

    • Complete encryption fix guide documentation
    • Multiple encryption repair scripts and utilities
    • Encryption testing tools for validation
    • One-click encryption fix script

🔧 Technical Improvements

  • Upgraded Matrix SDK to v39
  • Implemented unified Matrix state management
  • Optimized code structure for better maintainability
  • Enhanced error handling and logging

🆕 New Files Added

  • ENCRYPTION_FIX_GUIDE.md - Detailed encryption fix guide
  • fix-encryption-now.bat - One-click encryption fix script
  • immediate-encryption-fix.js - Immediate encryption fix tool
  • test-encryption-fix.js - Encryption fix testing tool
  • fix-encryption-support.js - Encryption fix support script

v1.2.1 (2025-01-18) - UI Button Fix & Sync Optimization

🔧 Interface Fixes

  • Button Layout Fix: Fixed refresh button being hidden by reorganizing header actions
  • More Actions Menu: Added collapsible menu for secondary functions (⋯)
  • Matrix Sync Optimization: Reduced sync timeout from 15s to 3s for faster room loading

v1.2.0 (2025-01-17) - Fast Login & UI Optimization

🚀 Performance Improvements

  • Fast Login: Reduced login time from 10-30 seconds to almost instant redirect
  • Async Initialization: Matrix client starts in background without blocking UI
  • Route Optimization: Simplified routing structure for faster page transitions

🎨 UI Enhancements

  • WeChat-style Chat Bubbles: Adopted WeChat's classic green (#95ec69) and white color scheme
  • Message Input Optimization: Clean WeChat-style design
  • Logout Button Repositioning: Moved to bottom-left corner following WeChat design patterns
  • Overall Layout Optimization: Maintained WeChat's classic layout structure

🔧 Technical Fixes

  • Message Retrieval API: Fixed roomMessagesAPI calls using correct Matrix client methods
  • Room List Optimization: Prioritized Matrix client for room fetching with API fallback
  • Message Sending Improvements: Used Matrix client's sendTextMessage method
  • Debug Features: Fixed client status checking methods

📱 User Experience

  • Instant Response: Users see chat interface immediately after login
  • Background Loading: Room lists and messages load asynchronously in background
  • Smooth Interactions: Significantly improved overall application responsiveness

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


中文

🚀 快速开始

选项1:桌面客户端(推荐)

从GitHub Releases下载最新安装包:

环境要求

  • Windows 10/11
  • PostgreSQL 13+(数据库必需)
  • Redis 6+(缓存必需)

安装步骤

  1. 下载并安装桌面客户端,点击上方链接下载
  2. 安装PostgreSQL 13+
    # 下载地址:https://www.postgresql.org/download/
    # 创建数据库'jianluochat',用户'jianluochat'
  3. 安装Redis 6+
    # 下载地址:https://redis.io/download/
    # 启动Redis服务
  4. 运行应用
    • 桌面客户端会自动启动并连接Matrix网络

选项2:Docker(开发推荐)

环境要求

  • Docker & Docker Compose

安装步骤

  1. 克隆仓库
git clone https://github.com/jianluo999/JianLuoChat.git
cd JianLuoChat
  1. 使用Docker启动
# 启动PostgreSQL和Redis
docker-compose up -d postgres redis

# 等待数据库就绪(约10秒)
# 然后手动启动应用进行开发
  1. 启动应用
# Windows用户
start-project.bat

# 或手动启动:
# 后端
cd backend && mvn spring-boot:run

# 前端(另开终端)
cd frontend && npm install && npm run dev
  1. 访问应用

选项3:手动安装(高级)

环境要求

  • Node.js 18+
  • Java 17+
  • PostgreSQL 13+
  • Redis 6+

安装步骤

  1. 克隆仓库
git clone https://github.com/jianluo999/JianLuoChat.git
cd JianLuoChat
  1. 设置数据库
# 安装并启动PostgreSQL和Redis
# 创建数据库'jianluochat'
  1. 设置后端
cd backend
# 在 src/main/resources/application.yml 中配置数据库
./mvnw spring-boot:run
  1. 设置前端
cd frontend
npm install
npm run dev

🛠️ 开发指南

技术栈

  • 前端:Vue 3, TypeScript, Vite, Pinia, matrix-js-sdk
  • 后端:Spring Boot 3, Java 17, PostgreSQL, Redis
  • Matrix:matrix-js-sdk, Matrix Client-Server API
  • 界面:自定义CSS,复古终端样式

核心功能实现状态

✅ 已完成功能

  • Matrix协议真实登录集成
  • Element客户端互通性验证
  • 公共房间探索器(支持分页)
  • 跨客户端实时消息收发
  • 登录状态持久化
  • 复古终端UI设计
  • 中英双语界面
  • 房间列表和导航
  • 消息历史记录
  • 🚀 快速登录优化(v1.2.0新增)
  • 💬 微信风格界面(v1.2.0新增)
  • 🔧 API调用修复(v1.2.0新增)

🚧 开发中功能

  • 端到端加密支持(Element兼容)
  • 文件传输功能(跨客户端)
  • 语音/视频通话(WebRTC)
  • 推送通知

📋 更新日志

v1.3.1 (2025-10-26) - Desktop Client Foundation & Login Enhancement

🚀 Desktop Client Development

  • Electron Main Process: Added electron/index.html for desktop client entry point
  • Dependency Management: Updated electron/package-lock.json for consistent dependency versions
  • Login Progress Component: Created frontend/src/components/LoginProgressBar.vue for visual login progress
  • Login Logic: Implemented frontend/src/composables/useLoginProgress.ts for non-blocking login experience
  • Vue Composition API Fix: Added fix-vue-composition-api.js to resolve Vue 3 compatibility issues

🔧 Configuration & Optimization

  • Git Ignore Enhancement: Improved .gitignore with Electron build artifacts and large file exclusions
  • Performance Improvements:
    • Non-blocking login with detailed progress feedback
    • 8-second timeout protection to prevent hanging
    • Rich animations and visual feedback for professional user experience

v1.3.0 (2025-10-25) - Matrix Chat Enhancement & Performance Optimization

🚀 Major Updates

  • Matrix Chat Functionality Enhancement:

    • Optimized Matrix message area component for better performance
    • Implemented virtual scrolling for room lists, reducing memory usage by 50%
    • Added comprehensive performance monitoring system
    • Enhanced Matrix message input component for smoother typing experience
  • Performance Optimization:

    • Implemented frontend performance monitoring with network and error tracking
    • Optimized Matrix room list rendering performance (60% faster loading)
    • Added performance testing page for validation
    • Created performance-optimized application version
  • Encryption Fix Tools:

    • Complete encryption fix guide documentation
    • Multiple encryption repair scripts and utilities
    • Encryption testing tools for validation
    • One-click encryption fix script

🔧 Technical Improvements

  • Upgraded Matrix SDK to v39
  • Implemented unified Matrix state management
  • Optimized code structure for better maintainability
  • Enhanced error handling and logging

🆕 New Files Added

  • ENCRYPTION_FIX_GUIDE.md - Detailed encryption fix guide
  • fix-encryption-now.bat - One-click encryption fix script
  • immediate-encryption-fix.js - Immediate encryption fix tool
  • test-encryption-fix.js - Encryption fix testing tool
  • fix-encryption-support.js - Encryption fix support script

v1.2.1 (2025-01-18) - UI Button Fix & Sync Optimization

🔧 Interface Fixes

  • Button Layout Fix: Fixed refresh button being hidden by reorganizing header actions
  • More Actions Menu: Added collapsible menu for secondary functions (⋯)
  • Matrix Sync Optimization: Reduced sync timeout from 15s to 3s for faster room loading

v1.2.0 (2025-01-17) - Fast Login & UI Optimization

🚀 Performance Improvements

  • Fast Login: Reduced login time from 10-30 seconds to almost instant redirect
  • Async Initialization: Matrix client starts in background without blocking UI
  • Route Optimization: Simplified routing structure for faster page transitions

🎨 UI Enhancements

  • WeChat-style Chat Bubbles: Adopted WeChat's classic green (#95ec69) and white color scheme
  • Message Input Optimization: Clean WeChat-style design
  • Logout Button Repositioning: Moved to bottom-left corner following WeChat design patterns
  • Overall Layout Optimization: Maintained WeChat's classic layout structure

🔧 Technical Fixes

  • Message Retrieval API: Fixed roomMessagesAPI calls using correct Matrix client methods
  • Room List Optimization: Prioritized Matrix client for room fetching with API fallback
  • Message Sending Improvements: Used Matrix client's sendTextMessage method
  • Debug Features: Fixed client status checking methods

📱 User Experience

  • Instant Response: Users see chat interface immediately after login
  • Background Loading: Room lists and messages load asynchronously in background
  • Smooth Interactions: Significantly improved overall application responsiveness

📋 更新日志(中文版)

v1.3.1 (2025-10-26) - Desktop Client Foundation & Login Enhancement

🚀 Desktop Client Development

  • Electron Main Process: Added electron/index.html for desktop client entry point
  • Dependency Management: Updated electron/package-lock.json for consistent dependency versions
  • Login Progress Component: Created frontend/src/components/LoginProgressBar.vue for visual login progress
  • Login Logic: Implemented frontend/src/composables/useLoginProgress.ts for non-blocking login experience
  • Vue Composition API Fix: Added fix-vue-composition-api.js to resolve Vue 3 compatibility issues

🔧 Configuration & Optimization

  • Git Ignore Enhancement: Improved .gitignore with Electron build artifacts and large file exclusions
  • Performance Improvements:
    • Non-blocking login with detailed progress feedback
    • 8-second timeout protection to prevent hanging
    • Rich animations and visual feedback for professional user experience

v1.3.0 (2025-10-25) - Matrix Chat Enhancement & Performance Optimization

🚀 Major Updates

  • Matrix Chat Functionality Enhancement:

    • Optimized Matrix message area component for better performance
    • Implemented virtual scrolling for room lists, reducing memory usage by 50%
    • Added comprehensive performance monitoring system
    • Enhanced Matrix message input component for smoother typing experience
  • Performance Optimization:

    • Implemented frontend performance monitoring with network and error tracking
    • Optimized Matrix room list rendering performance (60% faster loading)
    • Added performance testing page for validation
    • Created performance-optimized application version
  • Encryption Fix Tools:

    • Complete encryption fix guide documentation
    • Multiple encryption repair scripts and utilities
    • Encryption testing tools for validation
    • One-click encryption fix script

🔧 Technical Improvements

  • Upgraded Matrix SDK to v39
  • Implemented unified Matrix state management
  • Optimized code structure for better maintainability
  • Enhanced error handling and logging

🆕 New Files Added

  • ENCRYPTION_FIX_GUIDE.md - Detailed encryption fix guide
  • fix-encryption-now.bat - One-click encryption fix script
  • immediate-encryption-fix.js - Immediate encryption fix tool
  • test-encryption-fix.js - Encryption fix testing tool
  • fix-encryption-support.js - Encryption fix support script

v1.2.1 (2025-01-18) - UI Button Fix & Sync Optimization

🔧 Interface Fixes

  • Button Layout Fix: Fixed refresh button being hidden by reorganizing header actions
  • More Actions Menu: Added collapsible menu for secondary functions (⋯)
  • Matrix Sync Optimization: Reduced sync timeout from 15s to 3s for faster room loading

v1.2.0 (2025-01-17) - Fast Login & UI Optimization

🚀 Performance Improvements

  • Fast Login: Reduced login time from 10-30 seconds to almost instant redirect
  • Async Initialization: Matrix client starts in background without blocking UI
  • Route Optimization: Simplified routing structure for faster page transitions

🎨 UI Enhancements

  • WeChat-style Chat Bubbles: Adopted WeChat's classic green (#95ec69) and white color scheme
  • Message Input Optimization: Clean WeChat-style design
  • Logout Button Repositioning: Moved to bottom-left corner following WeChat design patterns
  • Overall Layout Optimization: Maintained WeChat's classic layout structure

🔧 Technical Fixes

  • Message Retrieval API: Fixed roomMessagesAPI calls using correct Matrix client methods
  • Room List Optimization: Prioritized Matrix client for room fetching with API fallback
  • Message Sending Improvements: Used Matrix client's sendTextMessage method
  • Debug Features: Fixed client status checking methods

📱 User Experience

  • Instant Response: Users see chat interface immediately after login
  • Background Loading: Room lists and messages load asynchronously in background
  • Smooth Interactions: Significantly improved overall application responsiveness

🤝 贡献指南

我们欢迎贡献!请查看我们的贡献指南了解详情。

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 开源协议

本项目采用MIT协议 - 查看LICENSE文件了解详情。


Made with ❤️ for the Matrix community

Report BugRequest FeatureDocumentation

About

A Modern Matrix Protocol Client with Retro-Futuristic Design基于Matrix协议的现代化即时通讯客户端,采用复古未来主义设计

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published