{"id":27005547,"url":"https://github.com/life-experimentalist/hivexplore","last_synced_at":"2026-01-18T08:32:50.089Z","repository":{"id":281493109,"uuid":"945109137","full_name":"Life-Experimentalist/HiveXplore","owner":"Life-Experimentalist","description":"HiveXplore is a beginner-friendly app built on Hive blockchain that introduces newcomers to decentralized social media without technical barriers. With simplified authentication, intuitive posting tools, and guided experiences, it serves as an educational gateway for blockchain beginners while making participation in the ecosystem accessible.","archived":false,"fork":false,"pushed_at":"2025-03-11T08:16:32.000Z","size":578,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-04T07:16:03.129Z","etag":null,"topics":["blockchain","caching","content-platform","cryptocurrency","dapp","decentralized","flask","hive-blockchain","hivesigner","keychain","markdown","python","real-time","restful-api","social-media","sqlite","web-application"],"latest_commit_sha":null,"homepage":"https://hivebuzz.onrender.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Life-Experimentalist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-08T17:20:27.000Z","updated_at":"2025-04-03T15:46:46.000Z","dependencies_parsed_at":"2025-03-09T14:28:39.594Z","dependency_job_id":null,"html_url":"https://github.com/Life-Experimentalist/HiveXplore","commit_stats":null,"previous_names":["life-experimentalist/hivebuzz","life-experimentalist/hivexplore"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Life-Experimentalist%2FHiveXplore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Life-Experimentalist%2FHiveXplore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Life-Experimentalist%2FHiveXplore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Life-Experimentalist%2FHiveXplore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Life-Experimentalist","download_url":"https://codeload.github.com/Life-Experimentalist/HiveXplore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135141,"owners_count":20889421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","caching","content-platform","cryptocurrency","dapp","decentralized","flask","hive-blockchain","hivesigner","keychain","markdown","python","real-time","restful-api","social-media","sqlite","web-application"],"created_at":"2025-04-04T07:16:05.702Z","updated_at":"2026-01-18T08:32:50.019Z","avatar_url":"https://github.com/Life-Experimentalist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HiveBuzz\n\nA modern interface for interacting with the Hive blockchain.\n\n## Service Previews\n\nHiveBuzz supports automatic service previews for pull requests using Render. This allows you to preview changes before merging them into the main branch.\n\n### How to Use Service Previews\n\n#### Automatic Previews\n\nBy default, all pull requests will generate a service preview. The preview URL will be posted as a comment on your pull request once the deployment is complete.\n\nTo skip generating a preview, include one of the following strings in your pull request title:\n- `[skip preview]`\n- `[skip render]`\n- `[preview skip]`\n- `[render skip]`\n\n#### Manual Previews\n\nIf manual previews are configured, you need to explicitly request a preview by including `[render preview]` in your pull request title.\n\n#### Using the Preview\n\nEach pull request gets its own isolated preview environment with a unique URL. Preview URLs follow this format:\n```\nhttps://pr-{PR_NUMBER}.hivebuzz.onrender.com\n```\n\nPreview environments have the following characteristics:\n- They use the same configuration as the main deployment (environment variables, etc.)\n- They are automatically updated when you push new commits to the PR\n- They are automatically deleted when the PR is merged or closed\n\n### For Developers\n\nPreview environments set the `IS_PULL_REQUEST` environment variable to `true`, which your code can detect to modify behavior specifically for previews.\n\nExample:\n```python\nimport os\n\n# Check if running in a preview environment\nis_preview = os.environ.get('IS_PULL_REQUEST') == 'true'\n\nif is_preview:\n    # Use test database or mock services\n    DATABASE_URL = os.environ.get('TEST_DATABASE_URL')\nelse:\n    # Use production database\n    DATABASE_URL = os.environ.get('DATABASE_URL')\n```\n\n## Additional Documentation\n\nFor more information about HiveBuzz, please see the following resources:\n- [Installation Guide](./docs/installation.md)\n- [API Documentation](./docs/api.md)\n- [Contributing Guidelines](./CONTRIBUTING.md)\n\n## Overview\n\nHiveBuzz is a decentralized social media application built on the Hive blockchain. It provides multiple secure authentication methods (Hive Keychain, HiveSigner, and HiveAuth), allows users to browse blockchain content, create posts, and manage Hive wallet functions—all through an intuitive interface with customizable themes.\n\n## Features\n\n- **Multi-method Authentication**:\n\t- ✅ Hive Keychain browser extension integration\n\t- ✅ HiveSigner OAuth-like authentication flow\n\t- ✅ HiveAuth mobile QR code authentication\n\n- **Blockchain Data Reading**:\n\t- ✅ View trending, hot, and new posts from the Hive blockchain\n\t- ✅ Browse user profiles with reputation and account details\n\t- ✅ Examine wallet balances and transaction history\n\n- **Transaction Broadcasting**:\n\t- ✅ Create and publish posts directly to the Hive blockchain\n\t- ✅ Vote on content using Hive Keychain\n\t- ✅ Power up/down HIVE and transfer funds between accounts\n\n- **Additional Features**:\n\t- Responsive design with light/dark theme toggle\n\t- User preferences stored locally\n\t- Content caching for improved performance\n\t- Post and comment rendering with markdown support\n\n## Website for HiveBuzz\n- **FullFills the Three Main Criteria's:**\n\n1. *Login* using Hive Keychain, Hive Signer, or Hive Auth.\n\n![alt text](auth1.jpg)\n\n2. *Broadcasting transactions* on the Hive chain.\n\n![alt text](transaction3.jpg)\n\n3. *Reading transactions* from the Hive chain.\n\n![alt text](data2.jpg)\n\n\n\n## Hive APIs Used\n\nHiveBuzz leverages multiple Hive blockchain APIs for additional functionality:\n\n1. **`condenser_api.get_accounts`**: Fetches user profile data\n2. **`condenser_api.get_content`**: Retrieves post and comment content\n3. **`condenser_api.get_discussions_by_trending`**: Gets trending posts\n4. **`condenser_api.get_discussions_by_created`**: Gets newest posts\n5. **`condenser_api.get_discussions_by_hot`**: Gets hot posts\n6. **`database_api.find_accounts`**: Searches for user accounts\n7. **`account_history_api.get_account_history`**: Retrieves user activity history\n8. **`rc_api.find_rc_accounts`**: Gets resource credit information\n9. **`bridge.get_ranked_posts`**: Fetches ranked posts (via Hivemind)\n10. **`bridge.get_discussion`**: Gets full discussion threads\n\n## Technology Stack\n\n- **Backend**: Python with Flask framework\n- **Frontend**: HTML, CSS, JavaScript\n- **Storage**: SQLite for caching and user preferences\n- **Blockchain Integration**: Hive Keychain, HiveSigner API, HiveAuth\n- **APIs**: Hive blockchain API, dbuzz API integration\n\n## Project Structure\n\n```\nHiveBuzz/\n├── app.py                 # Main Flask application\n├── config.py              # Configuration settings\n├── database.py            # Database operations\n├── session_manager.py     # User session management\n├── requirements.txt       # Python dependencies\n├── static/                # Static assets\n│   ├── css/               # Stylesheets\n│   ├── js/                # JavaScript files\n│   │   ├── hive-keychain.js  # Keychain integration\n│   │   ├── hiveauth.js    # HiveAuth integration\n│   │   ├── hivesigner.js  # HiveSigner integration\n│   │   └── posts.js       # Post management\n│   └── img/               # Image assets\n├── templates/             # HTML templates\n│   ├── base.html          # Base template\n│   ├── login.html         # Authentication page\n│   ├── posts.html         # Post listing page\n│   ├── wallet.html        # Wallet management\n│   └── profile.html       # User profile page\n└── utils/                 # Utility modules\n\t\t├── hive_api.py        # Hive blockchain API client\n\t\t├── hivesigner.py      # HiveSigner utilities\n\t\t├── hiveauth.py        # HiveAuth integration\n\t\t├── markdown_utils.py  # Content formatting\n\t\t└── posts_cache.py     # Post caching system\n```\n\n## Authentication Methods\n\n### 1. Hive Keychain\n\nUsers can securely authenticate using the Hive Keychain browser extension, which signs a challenge without exposing private keys:\n\n```javascript\nwindow.hive_keychain.requestSignBuffer(\n\t\tusername,\n\t\t`Login to HiveBuzz: ${challenge}`,\n\t\t\"Posting\",\n\t\t(response) =\u003e {\n\t\t\t\tif (response.success) {\n\t\t\t\t\t\t// Authentication successful\n\t\t\t\t}\n\t\t}\n);\n```\n\n### 2. HiveSigner\n\nOAuth-like authentication flow where users are redirected to HiveSigner to approve the application:\n\n```javascript\n// HiveSigner authentication redirect\nconst authUrl = HiveSigner.getAuthUrl(username, state);\nwindow.location.href = authUrl;\n```\n\n### 3. HiveAuth\n\nMobile-friendly authentication via QR code scanning:\n\n```javascript\n// Generate HiveAuth QR code\nconst authData = await hiveAuthInstance.getAuthData();\nQRCode.toCanvas(document.getElementById('hiveauth-qrcode'), authData.login_url);\n```\n\n## Reading Data from Hive\n\nHiveBuzz reads data from the Hive blockchain through several methods:\n\n```python\n# Get user profile data\nhive_api_client = get_hive_api()\nuser_data = hive_api_client.get_account(username)\n\n# Fetch trending posts\ntrending_posts = posts_cache.get_posts(\n\t\tfeed_type=\"trending\",\n\t\ttag=tag_filter,\n\t\tlimit=20\n)\n\n# Get account history/transactions\nhistory = hive_api_client.get_account_history(username, limit=20)\n\n# Get wallet balances\nwallet_data = hive_api_client.get_wallet_data(username)\n```\n\n## Broadcasting Transactions\n\nUsers can broadcast various transactions to the Hive blockchain:\n\n```javascript\n// Vote on content\nHiveKeychainHelper.requestVote(username, author, permlink, weight)\n\t\t.then(response =\u003e {\n\t\t\t\tif (response.success) {\n\t\t\t\t\t\t// Vote successful\n\t\t\t\t}\n\t\t});\n\n// Create a post\nconst operations = [\n\t\t[\"comment\", {\n\t\t\t\tparent_author: \"\",\n\t\t\t\tparent_permlink: mainTag,\n\t\t\t\tauthor: username,\n\t\t\t\tpermlink: permlink,\n\t\t\t\ttitle: title,\n\t\t\t\tbody: body,\n\t\t\t\tjson_metadata: JSON.stringify({ tags: tags })\n\t\t}]\n];\n\nwindow.hive_keychain.requestBroadcast(\n\t\tusername,\n\t\toperations,\n\t\t\"posting\",\n\t\tresponse =\u003e {\n\t\t\t\t// Handle response\n\t\t}\n);\n```\n\n## Setup Instructions\n\n### Prerequisites\n- Python 3.9 or higher\n- pip (Python package manager)\n- A modern web browser with Hive Keychain extension installed (optional)\n\n### Installation Steps\n1. Clone the repository:\n\t ```bash\n\t git clone https://github.com/Life-Experimentalist/HiveBuzz\n\t cd HiveBuzz\n\t ```\n\n2. Create and activate a virtual environment:\n\t ```bash\n\t python -m venv venv\n\t source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\t ```\n\n3. Install dependencies:\n\t ```bash\n\t pip install -r requirements.txt\n\t ```\n\n4. Create a .env file in the root directory:\n\t ```\n\t SECRET_KEY=your-secret-key\n\t HIVESIGNER_APP_NAME=your-hivesigner-app-name\n\t HIVESIGNER_CLIENT_SECRET=your-hivesigner-client-secret\n\t APP_URL=http://localhost:5000\n\t ENVIRONMENT=development\n\t ```\n\n5. Initialize the database:\n\t ```bash\n\t python -c \"import database; database.init_db()\"\n\t ```\n\n6. Run the application:\n\t ```bash\n\t flask run\n\t ```\n\t The application will be available at http://localhost:5000/\n\n## Database Management\n\nHiveBuzz uses SQLite for database storage:\n\n```bash\n# Initialize the database\npython -c \"import database; database.init_db()\"\n\n# Create a database management tool\npython db_manager.py init\n\n# Show database statistics\npython db_manager.py stats\n\n# Clear expired sessions\npython db_manager.py clear-sessions\n```\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgements\n\n- Hive blockchain developers and community\n- dbuzz platform team\n- All contributors to this project\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flife-experimentalist%2Fhivexplore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flife-experimentalist%2Fhivexplore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flife-experimentalist%2Fhivexplore/lists"}