Skip to content

DotaBuddy is an open-source project designed to enhance the Dota 2 experience by providing insightful statistics, real-time match analysis, and personalized recommendations. Our goal is to help players and streamers make better decisions and improve their gameplay.

Notifications You must be signed in to change notification settings

gbrlstr/dotabuddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DotaBuddy

DotaBuddy is an open-source project designed to enhance the Dota 2 experience by providing insightful statistics, real-time match analysis, and personalized recommendations. Our goal is to help players and streamers make better decisions and improve their gameplay using the Stratz API and GraphQL.

πŸš€ Features

  • Player Statistics: Get detailed insights into your gameplay.
  • Real-time Current Match: Track hero information from the current match.
  • Match History: View player match history.
  • Settings: Customize your app settings.
  • Community-Driven: Built for and by the Dota 2 community.

πŸ“Έ Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

πŸ› οΈ Installation

Clone the repository

git clone https://github.com/GabrielCSTR/dotabuddy.git

Install dependencies

npm install

Development

npm run dev

Build

# For Windows
npm run build:win

# For macOS
npm run build:mac

# For Linux
npm run build:linux

πŸ“‚ Project Structure

.editorconfig
.env
.eslintignore
.eslintrc.cjs
.gitignore
.npmrc
.prettierignore
.prettierrc.yaml
dev-app-update.yml
electron-builder.yml
electron.vite.config.ts
package.json
postcss.config.js
README.md
tailwind.config.js
tsconfig.json
tsconfig.node.json
tsconfig.web.json
.vscode/
    extensions.json
    launch.json
    settings.json
build/
    entitlements.mac.plist
    icon.icns
    icon.ico
    icon.png
resources/
    icon.png
    logo.png
src/
    main/
        dota2-events.json
        dota2-gsi.ts
        ...
    preload/
        ...
    renderer/
        ...

Key Files and Directories

  • src/main: Contains the main process code for Electron, including event handlers and configurations.
  • src/preload: Contains the preload scripts that are executed before the renderer process is loaded.
  • src/renderer: Contains the renderer process code, including Vue components, pages, and assets.
  • build: Contains build-related files, such as icons and entitlements.
  • resources: Contains static resources like images and icons.
  • .vscode: Contains VSCode-specific settings and configurations.

πŸ“œ Key Scripts

  • start: Starts the Electron application in preview mode.
  • dev: Starts the Electron application in development mode.
  • build: Builds the Electron application for production.
  • format: Formats the code using Prettier.
  • lint: Lints the code using ESLint.
  • typecheck: Runs TypeScript type checks for both Node and web configurations.

πŸ”‘ Environment Variables

  • RENDERER_VITE_STRATZ_KEY: API key for Stratz integration.

🌐 API Integration

Steam API

  • getPlayerSummary: Fetches player summary from Steam API.
  • getOwnedGames: Fetches owned games from Steam API.

OpenDota API

  • getSteamID32: Converts SteamID64 to SteamID32.
  • getHerosOpenDota: Fetches hero data from OpenDota API.
  • getPorfileOpenDota: Fetches player profile from OpenDota API.

Stratz API

  • makeGraphQLProfileRequest: Makes a GraphQL request to fetch player profile data from Stratz API.
  • makeGraphQLHerosRequest: Makes a GraphQL request to fetch hero data from Stratz API.
  • makeGraphQLGetPlayerBestHeroes: Makes a GraphQL request to fetch player's best heroes from Stratz API.

🎨 Styling

  • Tailwind CSS: Used for utility-first CSS styling.
  • PrimeVue: Used for UI components.

🀝 Contributing

We welcome contributions from the community! If you’d like to help improve DotaBuddy, follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Commit your changes (git commit -m "Add new feature").
  4. Push to your branch (git push origin feature-name).
  5. Open a pull request.

Please check our Contributing Guide for more details.

πŸ› οΈ Tech Stack

  • Frontend: Vue 3, TypeScript, Tailwind CSS
  • Other Tools: Socket.IO, OpenDota API, Stratz API, Dota2 GSI

πŸ“„ License

This project is licensed under the MIT License.

πŸ“ž Contact

Have any questions or suggestions? Feel free to reach out:


πŸš€ DotaBuddy is powered by the passion of the Dota 2 community. Let's build something amazing together!


Feel free to make new PR or submit any ideas.


πŸ™ Acknowledgment

  • Stratz team for providing a great GraphQL API.
  • Inspired by the DotaBuddy.

About

DotaBuddy is an open-source project designed to enhance the Dota 2 experience by providing insightful statistics, real-time match analysis, and personalized recommendations. Our goal is to help players and streamers make better decisions and improve their gameplay.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published