CodersHub Inc
ProjectsContactHire Me
CodersHub Inc LogoCodersHub Inc

A collection of practical, open-source projects designed to solve real-world developer problems.

Quick Links

All ProjectsContactGitHub Organization

Resources

Source CodeReport IssuesAbout Creator

Stay Updated

Get notified about new projects and updates. No spam, ever.

By subscribing, you agree to our privacy policy.

ยฉ 2025 CodersHub Inc. All rights reserved.

Privacy PolicyTerms of Service
Made withbySwapnil Ingle
Back to Projects

Quazaar

โšก Quazaar: High-performance Go WebSocket server for secure remote command execution, real-time music player control, and app launching on Linux.

Languages Used
GoC#JavaScriptShellHTMLPowerShellCSSVBScript
Technologies
Go
View Source

โšก Quazaar

Real-time music player integration with WebSocket remote control for Linux.

Note: This project is in a developmental phase. Expect bugs and breaking changes. Refer to the beta branch for active changes.


๐Ÿ“ฑ Android App Update: Beta version is out! Download Quazaar App v0.1.0-beta For using the app with the server, refer to docs/beta/README.md.


๐Ÿ“š Documentation

For the complete project documentation, including architecture, development journey, and detailed guides, please visit:

๐Ÿ‘‰ Project Documentation & Journey ๐Ÿ‘ˆ


๐ŸŽฏ Features

  • Remote Command Execution: Control your PC from any device on your network.
  • Real-time Music Display: Shows currently playing track with album artwork using playerctl.
  • WebSocket Communication: Fast, bidirectional communication between devices.
  • Secure Command Allowlist: Only pre-approved commands can be executed.
  • Modern Web Interface: Clean, responsive UI that works on desktop and mobile.
  • Auto-updating Music Info: Track information refreshes every 1 second.

๐Ÿš€ Quick Start

Prerequisites

  • Go 1.16 or higher

  • playerctl (for music integration)

    # Arch Linux sudo pacman -S playerctl # Ubuntu/Debian sudo apt install playerctl

Installation & Run

  1. Clone the repository

    git clone https://github.com/codershubinc/Quazaar.git cd Quazaar

  2. Install dependencies

    go mod download

  3. Build the server

    go build -o quazaar ./cmd/server

  4. Run the server

    ./quazaar

The server will start on ws://0.0.0.0:8765/ws (default).

๐Ÿ“‚ Where to look next

  • docs/PROJECT_DOCUMENTATION.md โ€” Start Here! Full project overview and journey.
  • docs/ โ€” Full integration guides, API reference, and troubleshooting.
  • internal/spotify/ โ€” Spotify integration and token management.
  • temp/web/ โ€” Example web client for manual testing.

๐Ÿค Contributing

Contributions and issues are welcome โ€” please open a GitHub issue or PR. See CONTRIBUTING.md for details.

๐Ÿ“„ License

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


Made with โค๏ธ by Swapnil Ingle โ€ข @codershubinc

All rights reserved.

Contributing to Quazaar

Thank you for your interest in contributing to Quazaar! We welcome contributions from the community. This document provides guidelines and information for contributors.

๐Ÿš€ Ways to Contribute

Report Issues

  • Use GitHub Issues to report bugs, request features, or ask questions
  • Check existing issues first to avoid duplicates
  • Provide detailed information including:
    • Steps to reproduce
    • Expected vs actual behavior
    • Environment details (OS, Go version, etc.)
    • Error messages/logs

Submit Pull Requests

  • Fork the repository
  • Create a feature branch from main
  • Make your changes
  • Test thoroughly
  • Submit a pull request with a clear description

Improve Documentation

  • Fix typos or unclear explanations
  • Add missing documentation
  • Create tutorials or examples
  • Update API documentation

๐Ÿ› ๏ธ Development Setup

Prerequisites

  • Go 1.21 or higher
  • Git
  • (Optional) playerctl for music integration testing

Setup Steps

  1. Clone and setup

    git clone https://github.com/codershubinc/Quazaar.git cd Quazaar go mod download

  2. Build the project

    go build -o quazaar ./cmd/server

  3. Run tests

    go test ./...

  4. Run the server

    ./quazaar

๐Ÿ“ Code Style Guidelines

Go Code

  • Follow standard Go formatting (go fmt)
  • Use gofmt and goimports for consistent formatting
  • Follow Go naming conventions (camelCase for private, PascalCase for exported)
  • Write clear, concise comments for exported functions/types
  • Use meaningful variable and function names
  • Keep functions small and focused on single responsibilities

Commit Messages

  • Use clear, descriptive commit messages
  • Start with a verb in imperative mood (e.g., "Add", "Fix", "Update")
  • Keep first line under 50 characters
  • Add detailed description if needed

Examples:

Add Spotify artist WebSocket handlers - Implement getArtistInfo and followArtist WebSocket endpoints - Add proper error handling for API failures - Update frontend with artist controls

Code Structure

  • Keep packages focused and modular
  • Use internal/ for private packages
  • Follow the established project structure
  • Add tests for new functionality

๐Ÿงช Testing

Unit Tests

  • Write tests for new functions and methods
  • Use Go's built-in testing framework
  • Place test files alongside source files (e.g., handler_test.go)
  • Aim for good test coverage

Integration Tests

  • Test WebSocket connections and message handling
  • Test API endpoints
  • Use the provided test scripts in tests/

Manual Testing

  • Test with the web client in temp/web/
  • Verify functionality across different browsers
  • Test on different operating systems if possible

๐Ÿ”„ Pull Request Process

  1. Create a branch from main:

    git checkout -b feature/your-feature-name

  2. Make your changes following the guidelines above

  3. Test thoroughly:

    • Run existing tests: go test ./...
    • Build successfully: go build ./cmd/server
    • Test manually with the web client
  4. Update documentation if needed:

    • Update README if adding new features
    • Add API documentation for new endpoints
    • Update changelog
  5. Commit your changes:

    git add . git commit -m "Add your descriptive commit message"

  6. Push and create PR:

    git push origin feature/your-feature-name

    Then create a pull request on GitHub

  7. Address feedback from reviewers and make necessary changes

๐Ÿ“‹ Pull Request Checklist

Before submitting a PR, ensure:

  • Code builds successfully (go build ./cmd/server)
  • All tests pass (go test ./...)
  • Code follows style guidelines (go fmt, go vet)
  • No linting errors (golangci-lint run if available)
  • Documentation updated if needed
  • Commit messages are clear and descriptive
  • Changes tested manually
  • No sensitive information committed

๐ŸŽฏ Areas for Contribution

High Priority

  • Bug fixes and stability improvements
  • Security enhancements
  • Performance optimizations
  • Better error handling

Medium Priority

  • New features and integrations
  • UI/UX improvements
  • Documentation improvements
  • Test coverage expansion

Low Priority

  • Code refactoring and cleanup
  • New themes and customization options
  • Additional platform support

๐Ÿ“ž Getting Help

  • Issues: Use GitHub Issues for bugs and feature requests
  • Discussions: Use GitHub Discussions for questions and general discussion
  • Documentation: Check the docs/ folder for detailed guides

๐Ÿ“œ Code of Conduct

Please be respectful and constructive in all interactions. We follow a standard code of conduct to ensure a welcoming environment for all contributors.

๐Ÿ™ Recognition

Contributors will be acknowledged in the project documentation and release notes. Thank you for helping make Quazaar better!


Made with โค๏ธ by the Quazaar community

Project Structure
  • .env.example
  • .github
    • workflows/
      • go.yml
  • .gitignore
  • CONTRIBUTING.md
  • README.md
  • favicon.ico
  • go.mod
  • go.sum
  • start.sh
  • LICENSE/
  • assets/
    • images/
      • android-app-v0.1.0-home.png
      • android-app-v0.1.0-settings.png
      • quazaar.png
      • spotify-no-bg.png
      • spotify.png
  • cmd/
    • server/
      • main.go
  • docs/
    • _meta.json
    • API_TESTING_GUIDE.md
    • AUTH_COMPLETION_PLAN.md
    • AUTH_SYSTEM.md
    • BROADCAST_UPGRADE.md
    • COMPLETE_FLOW.md
    • FIX_SUMMARY.md
    • IMPLEMENTATION_CHECKLIST.md
    • IMPROVEMENT_GUIDE.md
    • MAIN.md
    • MAIN.mdx
    • PLAYER_COMMANDS.md
    • POLLER.md
    • PROJECT_STRUCTURE.md
    • README_AUTH.md
    • README_TESTING.md
    • RECHECK_REPORT.md
    • SETUP_COMPLETE.md
    • SPOTIFY_README.md
    • TESTING_SETUP.md
    • TESTING_VISUAL_GUIDE.md
    • todo.txt
    • VISUAL_GUIDE.md
    • warning.txt
    • WEBSOCKET.md
    • WINDOWS_TESTING_GUIDE.md
    • beta/
      • CREATE_USER_ON_SERVER.md
      • QUAZAAR_ANDROID_APP_v0.1.0-beta.md
      • README.md
      • RELEASE_v0.0.1.3.md
    • changelog/
      • CHANGELOG_v0.0.1.0.md
      • CHANGELOG_v0.0.1.1.md
      • CHANGELOG_v0.0.1.2.md
      • CHANGELOG_v0.0.1.3.md
      • CHANGELOG_v0.1.4.md
      • README.md
  • internal/
    • api/
      • router.go
    • auth/
      • auth.go
      • handlers.go
    • banner/
      • banner.go
    • db/
      • db.go
      • tokens.go
    • fileshare/
      • api.go
      • file_url_handler.go
    • media/
      • artwork.go
      • media_info_dbus.go
      • media_info_windows_stub.go
      • media_info_windows.go
      • media_info.go
      • spotify.go
      • volume_controls.go
    • middleware/
      • auth.go
    • player/
      • commands.go
      • handlers.go
    • poller/
      • handler.go
      • poller.go
    • spotify/
      • router.go
      • SPOTIFY_INTEGRATION.md
      • spotify.go
      • websocket_handler.go
      • artist/
        • api.go
        • artist.go
        • ws.go
      • auth/
        • api.go
        • user.go
      • config/
        • config.go
      • devices/
        • api.go
        • manager.go
      • tokens/
        • exchange.go
        • store.go
    • system/
      • app_launcher.go
      • bluetooth_info.go
      • handlers.go
      • wifi_info.go
    • websocket/
      • channel.go
      • handler.go
      • websocket.go
  • pkg/
    • helpers/
      • err.go
      • generate_random_string.go
      • request_log_handler.go
      • request.go
      • spawn_processes.go
      • store_file.go
    • models/
      • auth_models.go
      • server_response.go
      • spotify_models.go
  • release/
    • blitz_v0.0.1.0
    • blitz_v0.0.1.1
    • blitz_v0.0.1.2
    • quazaar_v0.0.1.3_linux_x64
    • quazaar_windows_v0.0.1.3_x64.exe
    • blitz/
    • blitz_backup/
    • quazaar/
  • tests/
    • quazaar-test.exe
    • README.md
    • test_api.sh
    • test_auth_complete.sh
    • test_auth.sh
    • test_windows_api.sh
*.go 50*.md 36*.png 5*.sh 5*.exe 2*.txt 2*.0 1*.1 1*.2 1*.example 1*.github 1*.gitignore 1*.ico 1*.json 1*.mdx 1*.mod 1* (no ext) 1*.sum 1*.yml 1 Total 113

Project Details

Repository
Quazaar
Created At
November 2, 2025

( 1 month ago )

First Commit
November 2, 2025

( 1 month ago )


Tagline
โšก Quazaar: High-performance Go WebSocket server for secure remote command execution, real-time music player control, and app launching on Linux.
Languages
GoC#JavaScriptShellHTMLPowerShellCSSVBScript
Technologies
Go

File Counts

*.go 50*.md 36*.png 5*.sh 5*.exe 2*.txt 2*.0 1*.1 1*.2 1*.example 1*.github 1*.gitignore 1*.ico 1*.json 1*.mdx 1*.mod 1*.sum 1*.yml 1
Total 112