Skip to content
This repository was archived by the owner on Jun 16, 2023. It is now read-only.

gareth618/graph-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphBot

Dream Team:

  • Iulian Oleniuc
  • Elisabeta Dima

Aplicația este compusă din trei module principale:

  1. aplicație grafică: Aici putem desena grafuri care apoi să fie stocate în baza de date sau să fie exportate în format PNG sau SVG.
  2. bot discord: Aici putem selecta un graf din baza de date pe care mai apoi să rulăm diverși algoritmi.
  3. spring spring: El se ocupă de rularea algoritmilor pe grafuri și de transformarea acestora în poze pentru discord, oferind API-uri pentru celelalte două module.

gui bot bot

🎨 Aplicația grafică

În stânga avem un panel pătratic în care putem desena un graf astfel:

  • Dând click într-un punct liber, acolo se creează un nod nou.
  • Dând click într-un punct ocupat de un nod, acesta va fi (de)selectat pentru crearea ulterioară a unei muchii.
  • Când avem două noduri selectate, se va crea o muchie de la primul la al doilea și se vor deselecta.
  • Dacă muchia exista deja, atunci se va completa de la tastatură textul aferent muchiei.

În dreapta-sus avem două butoane pentru cele două tipuri de export-uri. Fișierele rezultate vor fi salvate în folder-ul Downloads. În dreapta-jos avem un buton pentru salvarea grafului în baza de date și unul pentru crearea unui nou graf.

🤖 Bot-ul pentru Discord

Comenzile încep cu $ spațiu:

  • select graph: Selectează un graf din baza de date pentru a lucra cu el.
    • ⬅️ 🆗 ➡️
    • no graphs to choose from
    • user ${nickname} chose graph ${id}
  • run ${alg}: Rulează algoritmul dat pe ultimul graf selectat și afișează pașii acestuia sub forma unui șir de poze.
    • dfs from ${src}, bfs from ${src}, kruskal
    • step ${i} of ${n} + poză
    • ⏪ ⬅️ ➡️ ⏩
    • no graph selected

🗄️ Server-ul Spring

Comunică cu baza de date PostgreSQL și oferă următoarele API-uri pentru celelalte două module:

  • POST /graphs Dai graful ca JSON pentru a fi inserat în baza de date. Folosit de aplicația grafică.
  • GET /graphs Primești vectorul de grafuri ca JSON. Folosit de bot.
  • GET /algo/:alg/:id?source=${arg} Primești un vector de grafuri ilustrând etapele algoritmului alg rulat pe graful id cu eventualul argument arg. Folosit de bot.

Bot-ul va converti singur grafurile în poze:

{
  id: int
  nodes: [
    {
      x: int
      y: int
      color: enum
    }
  ]
  edges: [
    {
      node1: int
      node2: int
      text: string
      color: enum
    }
  ]
}

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy