Table of Contents
WAL is a comprehensive social media and news verification platform with advanced AI-powered fact-checking capabilities. The platform specializes in Georgian politics and news, providing real-time content analysis, live streaming, and community-driven verification of information.
WAL addresses the critical challenge of misinformation in the digital age by providing:
- AI-powered fact-checking using advanced language models and multi-source verification
- Real-time news aggregation from multiple Georgian news sources with bias analysis
- Live streaming and verification capabilities for citizen journalism
- Social media content analysis and verification
- Community-driven content verification with user engagement features
The platform serves as a trusted source for verified information, particularly focusing on Georgian political events and news, while providing tools for users to contribute to the verification process through live streaming, photo/video uploads, and community discussions.
Backend Technologies:
- Python 3.13 - Core programming language
- FastAPI - Modern, high-performance web framework for APIs
- MongoDB - Primary database for storing user data, posts, and verification results
- Redis - Caching and session management
- Socket.IO - Real-time communication for chat and live features
AI & Machine Learning:
- Google Gemini AI - Advanced language model for content analysis and fact-checking
- Langfuse - LLM observability and monitoring
- OpenAI API - Additional AI capabilities
- Jina AI - Document processing and embeddings
Media Processing:
- LiveKit - Real-time video streaming and RTMP ingress
- FFmpeg - Video/audio processing and transcoding
- Google Cloud Video Transcoder - Professional video processing
- Google Cloud Speech-to-Text - Audio transcription
Cloud Infrastructure:
- Google Cloud Platform (GCP) - Primary cloud provider
- Google Cloud Storage - File and media storage
- Google Cloud Pub/Sub - Asynchronous message processing
- Google Cloud Tasks - Background job processing
- Google Cloud Vision - Image analysis and OCR
Development & Deployment:
- Docker - Containerization and deployment
- uv - Fast Python package installer and dependency manager
- Gunicorn - WSGI HTTP server for production
- Uvicorn - ASGI server for development
External Integrations:
- Supabase - Authentication and user management
- Twilio - SMS and communication services
- Google Maps API - Location services
- Various news APIs - Content aggregation from Georgian news sources
Before setting up WAL, ensure you have the following installed:
Required Software:
- Docker and Docker Compose - For containerized deployment
- Python 3.13+ - If running without Docker
- uv - Python package manager (for local development)
- Git - For version control
Required Services & API Keys:
- Google Cloud Platform (GCP) Account with the following APIs enabled:
- Cloud Storage API
- Cloud Pub/Sub API
- Cloud Tasks API
- Cloud Video Transcoder API
- Cloud Speech-to-Text API
- Cloud Vision API
- Gemini AI API
- MongoDB instance (local or cloud)
- Redis instance (local or cloud)
- LiveKit server instance
- Supabase project for authentication
- Langfuse account for AI observability
Optional Services:
- Twilio account for SMS functionality
- OpenAI API key for additional AI features
- Jina AI API key for document processing
For Local Development with Full Stack:
-
Clone the repository:
git clone https://github.com/walofficial/wal-server.git cd wal-server -
Set up environment configuration:
# Create config directory if it doesn't exist mkdir -p config # Create your environment files cp config/.env.example config/.env cp config/local.env.example config/local.env
-
Configure environment variables: Edit
config/.envandconfig/local.envwith your API keys and service configurations. -
Set up Google Cloud credentials:
# Authenticate with Google Cloud gcloud auth application-default login -
Run the full development stack:
docker-compose -f docker-compose.local.yml up --build
For Production-like Environment:
# Using the main docker-compose file
docker-compose up --build -dFor Debug Mode:
# Run with debugging enabled
docker-compose -f docker-compose.debug.yml up --build-
Install uv (Python package manager):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Clone and setup:
git clone https://github.com/walofficial/wal-server.git cd wal-server # Install dependencies uv sync # Activate virtual environment source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Set up external services:
- Start MongoDB (locally or use cloud instance)
- Start Redis (locally or use cloud instance)
- Configure all required API keys in environment files
-
Run the application:
# Development mode uvicorn ment_api.app:app --host 0.0.0.0 --port 8000 --reload # Or using the main script python src/main.py
After successful setup, the following services will be available:
- WAL API: http://localhost:5500
- MongoDB: localhost:27017
- Redis: localhost:6379
- Google Pub/Sub Emulator: localhost:8085
- Google Cloud Storage Emulator: localhost:4443
- Google Cloud Tasks Emulator: localhost:8123
Once the application is running, you can access the interactive API documentation:
- Swagger UI: http://localhost:5500/docs
- ReDoc: http://localhost:5500/redoc
- User Registration & Profile Management - Create and manage user accounts with Supabase authentication
- Profile Information - Get user profiles, statistics, and verification status
- Friend System - Send/accept friend requests and manage social connections
- Photo Verification - Upload images with automatic AI analysis and fact-checking
- Video Processing - Upload videos with transcription, summary generation, and verification
- Social Media Scraping - Analyze and verify content from social media platforms
- AI-Powered Analysis - Advanced content analysis with importance scoring (0-100 scale)
- Live Stream Creation - Start live streams with automatic recording
- RTMP Ingress - Professional streaming support for OBS, DJI drones, and mobile apps
- Real-time Chat - WebSocket-based messaging with Socket.IO
- Live User Actions - Real-time interactions like pokes and live reactions
- Location-based Feeds - Get content filtered by geographic location
- Mixed Content Feeds - Personalized content streams with pagination
- News Aggregation - Automated news collection from Georgian sources
- Multi-language Support - Content available in Georgian and English
- Comments System - Add comments with AI analysis and tagging
- Reactions & Likes - React to content with various emotion types
- Notifications - Real-time push notifications for user interactions
- Space Management - Create and manage community spaces
- GeoIP Detection - Automatic country detection for content localization
- Health Monitoring - Built-in health checks and system monitoring
- Translation Services - Automatic content translation between supported languages
- Content Moderation - AI-powered content analysis and moderation tools
- Socket.IO Integration - Real-time bidirectional communication between client and server
- Room Management - Join and leave chat rooms dynamically
- Message Broadcasting - Send messages to specific users or rooms
- Live Updates - Real-time feed updates and user presence tracking
- Event Handling - Custom events for live reactions, notifications, and status changes
- Citizen Journalism: Users can upload photos/videos from events and get AI-powered verification
- News Verification: Automatic fact-checking of news articles from Georgian sources
- Live Event Coverage: Real-time streaming with RTMP support for professional equipment
- Community Discussion: Chat and comment systems for community engagement
- Content Moderation: AI-powered analysis of user-generated content
- Multi-language Support: Content available in Georgian and English with automatic translation
See the open issues for a list of proposed features (and known issues).
- Top Feature Requests (Add your votes using the π reaction)
- Top Bugs (Add your votes using the π reaction)
- Newest Bugs
For support and assistance with WAL:
Reach out to the maintainer at one of the following places:
- GitHub issues
- Contact options listed on this GitHub profile
If you want to say thank you or/and support active development of WAL:
- Add a GitHub Star to the project.
- Tweet about the WAL.
Together, we can make WAL better!
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
Authors:
- Nika Samadalashvili - Original setup and development
- nshelia - Original setup and development
For a full list of all authors and contributors, see the contributors page.
For more information and to report security issues, please refer to our security documentation.
This project is licensed under the Apache Software License 2.0.
See LICENSE for more information.
WAL is built with and relies on several outstanding technologies and services:
- Google Cloud Platform - For comprehensive cloud infrastructure and AI services
- LiveKit - For real-time video streaming capabilities
- Supabase - For authentication and database services
- MongoDB - For flexible document storage
- FastAPI - For high-performance API development
- Langfuse - For AI observability and monitoring
Special thanks to the maintainers and contributors of the numerous open-source libraries that make WAL possible, including but not limited to:
- Python ecosystem - pandas, numpy, aiohttp, pydantic, and many others
- AI/ML libraries - OpenAI, Google AI, and related tools
- Media processing - FFmpeg, LiveKit, and video processing tools
- Development tools - uv, Docker, and the entire Python development ecosystem
Thanks to the Georgian tech community and all contributors who help make information verification and fact-checking more accessible and reliable.


