Skip to content

code3-dev/VandCloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VandCloud

VandCloud Logo

VandCloud is a cross-platform application that provides a categorized directory of APIs and services. It allows users to browse, test, and monitor the availability of various online services with real-time status checking.

GitHub release (latest by date) GitHub Workflow Status GitHub all releases License

🌟 Features

  • Multi-Platform Support - Available for Android, Windows, Linux, and iOS
  • Categorized API Directory - Organized collection of APIs and services
  • Real-Time Status Checking - Test host availability with ping measurements
  • Responsive Design - Optimized for mobile, tablet, desktop, and TV
  • Dark/Light Theme - Customizable theme preferences
  • Filter & Sort Options - Hide failed items and sort by name or ping

πŸ“± Platforms

Platform Status Download
Android βœ… Supported APK Releases
Windows βœ… Supported Installer
Linux βœ… Supported Packages
iOS βœ… Supported IPA Releases
macOS βœ… Supported Packages
Web ⏳ Planned -

πŸš€ Installation

Android

Download the APK file from the releases page:

  • Universal APK - Works on all Android devices
  • Architecture-specific APKs - Smaller downloads for specific device types

Windows

Download the installer from the releases page:

  • Installer - Easy installation with setup wizard
  • ZIP Package - Portable version for manual installation

Linux

Download the appropriate package for your distribution from the releases page:

  • DEB Package - For Debian/Ubuntu-based distributions
  • RPM Package - For Red Hat/Fedora-based distributions
  • AppImage - Universal Linux package that runs on most distributions
  • Tar.gz Archive - Portable version for manual installation

iOS

Download the iOS files from the releases page:

  • IPA File - Standard iOS package format (requires sideloading)
  • ZIP File - Alternative format containing the app bundle

macOS

Download the macOS package from the releases page:

  • DMG Installer - Standard macOS installer package
  • ZIP Package - Portable version for manual installation

πŸ› οΈ Development

Prerequisites

  • Flutter SDK
  • Android Studio / VS Code
  • Android SDK / Xcode (for mobile development)
  • Desktop Development Tools:
    • Windows: Visual Studio 2022 or Visual Studio Build Tools with C++ development tools
    • Linux: GCC, CMake, Ninja build system
    • macOS: Xcode command line tools

Getting Started

# Clone the repository
git clone https://github.com/code3-dev/VandCloud.git

# Navigate to the project directory
cd VandCloud

# Install dependencies
flutter pub get

# Run the app
flutter run

# For desktop builds:
# Windows: Ensure Visual Studio or C++ Build Tools are installed
# Linux: Install build dependencies with: sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev
# macOS: Ensure Xcode command line tools are installed

Build Commands

Android

# Build APK for all architectures
flutter build apk

# Build split APKs for each architecture
flutter build apk --split-per-abi

# Build app bundle for Play Store
flutter build appbundle

iOS

# Build for iOS simulator
flutter build ios --simulator

# Build for iOS device (requires code signing)
flutter build ios --release

# Build without code signing for manual distribution
flutter build ios --release --no-codesign

Windows

# Build Windows desktop application
flutter build windows

# Build Windows installer (requires Inno Setup)
cd windows/installer
iscc VandCloud.iss

Linux

# Build Linux desktop application
flutter build linux

# Install packaging dependencies (Ubuntu/Debian)
sudo apt-get install rpm ruby ruby-dev rubygems build-essential

# Create DEB and RPM packages
# (This is handled automatically in the CI/CD pipeline)

macOS

# Build macOS desktop application
flutter build macos

GitHub Actions Build Setup

To set up GitHub Actions for building and releasing your forked version of VandCloud:

  1. Fork and Clone Your Fork

    # Fork the repository on GitHub, then clone your fork
    git clone https://github.com/YOUR_USERNAME/VandCloud.git
    cd VandCloud
  2. Create Android Keystore

    # Generate a new keystore for Android signing (examples for different OS)
    
    # On Windows
    keytool -genkey -v -keystore ~/vand.jks -keyalg RSA -keysize 2048 -validity 10000 -alias vandcloud
    
    # On macOS
    keytool -genkey -v -keystore ~/vand.jks -keyalg RSA -keysize 2048 -validity 10000 -alias vandcloud
    
    # On Linux
    keytool -genkey -v -keystore ~/vand.jks -keyalg RSA -keysize 2048 -validity 10000 -alias vandcloud

    When prompted, enter the following information:

    • First and Last Name: Hossein Pira
    • Organizational Unit: VandCloud
    • Organization: IRDevs
    • City: New York
    • State: New York
    • Country: US
    • Confirm: yes
  3. Convert Keystore to Base64

    # On Windows (PowerShell)
    [convert]::ToBase64String((Get-Content -Path "vand.jks" -AsByteStream -Raw)) | Out-File -Encoding ascii "vand.base64"
    
    # On macOS/Linux
    base64 -i vand.jks -o vand.base64
    
    # Alternative for older Linux systems
    base64 vand.jks > vand.base64
  4. Add Secrets to GitHub Repository

    Go to your GitHub repository settings β†’ Secrets and variables β†’ Actions, and add the following secrets:

    Secret Name Value
    KEY_STORE Content of the base64 encoded keystore file
    KEY_STORE_PASSWORD Keystore password
    KEY_PASSWORD Key password
    KEY_ALIAS Key alias (vandcloud)
  5. GitHub Actions Workflow

    The workflow will automatically use these secrets to sign Android builds. The relevant section in the workflow looks like this:

    - name: Decode Keystore
      run: |
        $bytes = [System.Convert]::FromBase64String("${{ secrets.KEY_STORE }}")
        [IO.File]::WriteAllBytes("android/app/keystore.jks", $bytes)
      shell: powershell
    
    - name: Create keystore properties file
      run: |
        echo storePassword=${{ secrets.KEY_STORE_PASSWORD }} > android/key.properties
        echo keyPassword=${{ secrets.KEY_PASSWORD }} >> android/key.properties
        echo keyAlias=${{ secrets.KEY_ALIAS }} >> android/key.properties
        echo storeFile=keystore.jks >> android/key.properties
      shell: bash
  6. Push Changes and Trigger Build

    # Make your code changes
    git add .
    git commit -m "Your changes"
    git push origin main

    This will trigger the GitHub Actions workflow to build and release your version.

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a 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.

πŸ‘¨β€πŸ’» Author

Hossein Pira

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped with the project
  • Inspired by the need for a comprehensive API directory and testing tool