Skip to content

fr0gsite/FlutterFr0g

Repository files navigation

Fr0gsite mascot

Open-source, decentralized, self-managed community platform
Freedom of speech for everyone

Release License Flutter Dart Server Status

Live Demo Telegram Documentation

🐸 Fr0g.site Flutter App

🎯 About the Project

Fr0g.site is a decentralized, open-source community platform based on blockchain technology and IPFS. The Flutter app enables users to share, comment on, and rate content - all without central control or censorship.

Key Features:

  • πŸ”— Decentralized: Based on blockchain and IPFS
  • 🌍 Cross-Platform: Web, Android, iOS from a single codebase
  • πŸ”’ Privacy: Private keys are stored locally
  • πŸ’° Token Economy: ACT, FAME and TRUST tokens for various actions
  • πŸ—³οΈ Community Governance: Self-management through Trusters and Block Producers
  • 🌐 Multilingual: 14 languages supported

🎬 Demo

Fr0g.site App Demo

πŸš€ Quick Start (30 seconds)

# 1. Clone repository
git clone https://github.com/fr0gsite/FlutterFr0g.git
cd FlutterFr0g

# 2. Install dependencies  
flutter pub get

# 3. Start web version
flutter run -d chrome

# Alternative: Build APK for Android
flutter build apk

Prerequisites:

  • Flutter 3.35.5+
  • Dart 3.9.2+
  • Chrome/Chromium (for Web)
  • Android Studio (for Android)
  • Xcode (for iOS)

πŸ“¦ Installation & Setup

Development Environment

  1. Install Flutter SDK:

    # Via official Flutter website or
    git clone https://github.com/flutter/flutter.git -b stable
    export PATH="$PATH:`pwd`/flutter/bin"
  2. Project Setup:

    git clone https://github.com/fr0gsite/FlutterFr0g.git
    cd FlutterFr0g
    flutter pub get
    flutter doctor  # Checks the installation

πŸ’» Usage & Examples

Internationalization

The app supports 14 languages. To add new translations:

# 1. Create ARB file
cp lib/l10n/app_en.arb lib/l10n/app_[LANGUAGE_CODE].arb

# 2. Add translations
# 3. Generate localizations
flutter gen-l10n

Docker Deployment

# Production web build
flutter build web --release

# Create Docker image
docker build -t fr0gsite-flutter .

# Start container
docker run -p 80:80 fr0gsite-flutter

βš™οΈ Configuration

Important Configuration Files

File Purpose
lib/config.dart Main configuration, URLs, blockchain nodes
lib/config_debug.dart Debug login credentials (not versioned)
pubspec.yaml Dependencies and app metadata
analysis_options.yaml Dart linting rules
l10n.yaml Internationalization configuration

Integration Tests

# Web Integration Tests (Chrome required)
flutter drive \
  --driver=test_driver/integration_test.dart \
  --target=integration_test/web_app_test.dart \
  -d chrome

# Android Integration Tests
flutter drive \
  --driver=test_driver/integration_test.dart \
  --target=integration_test/app_test.dart \
  -d android

Test Coverage

flutter test --coverage
genhtml coverage/lcov.info -o coverage/html

🀝 Contributing

We welcome contributions! Here's how you can help:

Quick Contribution Guide

  1. Fork & Clone

    git clone https://github.com/YOUR_USERNAME/FlutterFr0g.git
    cd FlutterFr0g
  2. Create Branch

    git checkout -b feature/new-feature
  3. Develop & Test

    flutter test
    flutter analyze
  4. Create Pull Request

Areas for Contribution

Area Description Difficulty
🌐 Translations Add new languages Easy
πŸ› Bug Fixes Issues from tracker Easy-Medium
🎨 UI/UX Design improvements Medium
⚑ Performance Optimizations Medium-Hard
πŸ”— Blockchain Smart contract integration Hard

Code Standards

  • Dart Style: Use dart format
  • Linting: flutter analyze must be clean
  • Tests: New features need tests
  • Documentation: Code should be documented

Contributing Translations

# 1. Create ARB file for your language
cp lib/l10n/app_en.arb lib/l10n/app_[YOUR_LANGUAGE_CODE].arb

# 2. Translate & test
flutter gen-l10n
flutter run

# 3. Create pull request

Detailed guide: CONTRIBUTING.md

πŸ“œ License

This project is licensed under the GNU General Public License v3.0.

Copyright (C) 2024 Fr0gsite Contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

See LICENSE for the full license text.

What does this mean?

  • βœ… Commercial use
  • βœ… Modification
  • βœ… Distribution
  • βœ… Private use
  • ❌ Liability & Warranty
  • ⚠️ Changes must be published under the same license

πŸ†˜ Support & Security

Community Support

FAQ

Q: Where are my private keys stored? A: Locally in secure storage

Q: What's the difference between Active and Owner Permission? A: See FAQ

Q: How can I run my own node? A: Participation Guide

Security

πŸ”’ Report security issues: Send an email to security@fr0g.site

Security Guidelines:

  • Private keys are stored only locally
  • All blockchain transactions are transparent
  • IPFS content is publicly accessible
  • No central storage of user data

πŸ† Credits & Acknowledgments

Main Developers

  • Fr0gsite Team - Core development and concept

Open Source Libraries

  • Flutter Team - Cross-Platform Framework
  • EOSIO - Blockchain Technology
  • IPFS - Decentralized Storage
  • Lottie - Animations
  • All dependencies in pubspec.yaml

Community

  • All translators and contributors
  • Beta testers and feedback providers
  • Open Source Community

Tools & Services

  • GitHub - Repository Hosting
  • Updown.io - Server Monitoring
  • VSCode - Development Environment

🐸 Fr0g.site - Freedom of Speech for Everyone
Made with ❀️ by the Open Source Community

🌐 Live Demo β€’ πŸ“– Docs β€’ πŸ™ GitHub β€’ πŸ’¬ Community