Graph database Analysis of the Steam Network
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

236 lines
9.9 KiB

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Jrtechs Steam Friend Graph Project</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  8. <link rel="stylesheet" href="css/bootstrap.css" media="screen">
  9. <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
  10. </head>
  11. <body>
  12. <div class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
  13. <div class="container">
  14. <a class="navbar-brand" href="#">Steam Graph Project</a>
  15. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  16. <span class="navbar-toggler-icon"></span>
  17. </button>
  18. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  19. <ul class="navbar-nav mr-auto">
  20. <li class="nav-item active">
  21. <a class="nav-link" href="index.html">Home <span class="sr-only">(current)</span></a>
  22. </li>
  23. <li class="nav-item">
  24. <a class="nav-link" href="graphs.html">Graphs</a>
  25. </li>
  26. <!--<li class="nav-item">-->
  27. <!--<a class="nav-link" href="profile.html">Profile Look-Up</a>-->
  28. <!--</li>-->
  29. <li class="nav-item">
  30. <a class="nav-link" href="faq.html">FAQ</a>
  31. </li>
  32. </ul>
  33. <ul class="nav navbar-nav navbar-right">
  34. <li>
  35. <a class="nav-link" href="https://jrtechs.net">Blog</a>
  36. </li>
  37. <li>
  38. <a class="nav-link" href="https://jrtechs.me">Resume</a>
  39. </li>
  40. <li>
  41. <a class="nav-link" href="https://github.com/jrtechs">Github</a>
  42. </li>
  43. </ul>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="container">
  48. <br><br><br>
  49. <div id="carouselDiv" class="carousel slide" data-ride="carousel">
  50. <ol class="carousel-indicators">
  51. <li data-target="#carouselDiv" data-slide-to="0" class="active"></li>
  52. <li data-target="#carouselDiv" data-slide-to="1"></li>
  53. <li data-target="#carouselDiv" data-slide-to="2"></li>
  54. <li data-target="#carouselDiv" data-slide-to="3"></li>
  55. <li data-target="#carouselDiv" data-slide-to="4"></li>
  56. <li data-target="#carouselDiv" data-slide-to="5"></li>
  57. </ol>
  58. <div class="carousel-inner">
  59. <div class="carousel-item active">
  60. <img class="d-block w-100" src="img/slider/img1.png" alt="First slide">
  61. </div>
  62. <div class="carousel-item">
  63. <img class="d-block w-100" src="img/slider/img2.png" alt="Second slide">
  64. </div>
  65. <div class="carousel-item">
  66. <img class="d-block w-100" src="img/slider/img3.png" alt="Third slide">
  67. </div>
  68. <div class="carousel-item">
  69. <img class="d-block w-100" src="img/slider/img4.png" alt="Forth slide">
  70. </div>
  71. <div class="carousel-item">
  72. <img class="d-block w-100" src="img/slider/img5.png" alt="Fifth slide">
  73. </div>
  74. <div class="carousel-item">
  75. <img class="d-block w-100" src="img/slider/img6.png" alt="Sixth slide">
  76. </div>
  77. </div>
  78. <a class="carousel-control-prev" href="#carouselDiv" role="button" data-slide="prev">
  79. <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  80. <span class="sr-only">Previous</span>
  81. </a>
  82. <a class="carousel-control-next" href="#carouselDiv" role="button" data-slide="next">
  83. <span class="carousel-control-next-icon" aria-hidden="true"></span>
  84. <span class="sr-only">Next</span>
  85. </a>
  86. </div>
  87. <h1 id="steamgraphanalysis">Steam Graph Analysis</h1>
  88. <p>This is a project that I threw together during the weekend to play around with
  89. gremlin graph database. Currently this project scrapes the steam API for friends
  90. and their friends which can be used to generate a graph. This information is stored
  91. locally in a gremlin server and is then sent to the client via a web socket. </p>
  92. <p><img src="Diagram.svg" alt="Diagram" width="100%" /></p>
  93. <div class="d-flex justify-content-center">
  94. <p><iframe width="560" height="315" src="https://www.youtube.com/embed/WJfo9bU0nH8" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>
  95. </div>
  96. <p>This project is in the VERY early stages of development and is far from finished.
  97. If you are lucky, you will find it live at <a href="http://jrtechs.student.rit.edu/friendsOfFriends.html">http://jrtechs.student.rit.edu/friendsOfFriends.html</a>.
  98. It is still being actively developed and does not have permanent hosting so there is a %60
  99. chance at any time that you will be able to access it. </p>
  100. <p><img src="exampleGraph.png" alt="Graph" /></p>
  101. <h1 id="bugs">Bugs</h1>
  102. <ul>
  103. <li>Tends to crash w/o telling user if you provide an invalid steam id</li>
  104. </ul>
  105. <h1 id="todo">TODO</h1>
  106. <ul>
  107. <li>Include a steam name to steam id lookup</li>
  108. <li>Dockerize this entire environment</li>
  109. <li>Connect the gremlin/janus server to a HBase server for persistent storage</li>
  110. <li>Make the graphs look better -- possibly switch from sigma.js to d3</li>
  111. <li>Get the java web socket to work with ssh -- currently does not work with wss</li>
  112. <li>Make more graphs to provide more insights
  113. <ul>
  114. <li>Most common friends of friends -- will show you people you may know</li>
  115. <li>Graph of a larger chunk of the steam community</li>
  116. <li>...</li></ul>
  117. </li>
  118. <li>Write more documentation on how the system as a whole works.</li>
  119. <li>Write blog post on what I learned during this project. </li>
  120. </ul>
  121. </div>
  122. <!-
  123. ┈┈╱▔▔▔▔▔╲┈┈┈HM┈HM
  124. ┈╱┈┈╱▔╲╲╲▏┈┈┈HMMM
  125. ╱┈┈╱━╱▔▔▔▔▔╲━╮┈┈
  126. ▏┈▕┃▕╱▔╲╱▔╲▕╮┃┈┈
  127. ▏┈▕╰━▏▊▕▕▋▕▕━╯┈┈
  128. ╲┈┈╲╱▔╭╮▔▔┳╲╲┈┈┈
  129. ┈╲┈┈▏╭━━━━╯▕▕┈┈┈
  130. ┈┈╲┈╲▂▂▂▂▂▂╱╱┈┈┈
  131. ┈┈┈┈▏┊┈┈┈┈┊┈┈┈╲┈
  132. ┈┈┈┈▏┊┈┈┈┈┊▕╲┈┈╲
  133. ┈╱▔╲▏┊┈┈┈┈┊▕╱▔╲▕
  134. ┈▏ ┈┈┈╰┈┈┈┈╯┈┈┈▕▕
  135. ┈╲┈┈┈╲┈┈┈┈╱┈┈┈╱┈╲
  136. ┈┈╲┈┈▕▔▔▔▔▏┈┈╱╲╲╲▏
  137. ┈╱▔┈┈▕┈┈┈┈▏┈┈▔╲▔▔
  138. ┈╲▂▂▂╱┈┈┈┈╲▂▂▂╱┈
  139. If you are seeing this monkey that means that you are interested in my
  140. code. Yay!! If you are not here to hack me ... you should really consider
  141. contributing to some of my public projects on github.
  142. https://github.com/jrtechs
  143. -->
  144. <!-- Footer -->
  145. <footer class="text-center">
  146. <div class="footer-above">
  147. <div class="container">
  148. <div class="row">
  149. <div class="footer-col col-md-4">
  150. <h3>Location</h3>
  151. <p>Rochester Institute of Technology
  152. <br>1 Lomb Memorial Dr, Rochester, NY 14623</p>
  153. </div>
  154. <div class="footer-col col-md-4">
  155. <h3>Around the Web</h3>
  156. <ul class="list-inline">
  157. <li class="list-inline-item">
  158. <a class="btn-social btn-outline" href="https://www.youtube.com/c/JrtechsNet">
  159. <i class="fa fa-fw fa-youtube"></i>
  160. </a>
  161. </li>
  162. <li class="list-inline-item">
  163. <a class="btn-social btn-outline" href="https://github.com/jrtechs">
  164. <i class="fa fa-fw fa-github"></i>
  165. </a>
  166. </li>
  167. <li class="list-inline-item">
  168. <a class="btn-social btn-outline" href="http://jrtechs.net">
  169. <i class="fa fa-fw fa-wordpress"></i>
  170. </a>
  171. </li>
  172. </ul>
  173. </div>
  174. <div class="footer-col col-md-4">
  175. <h3>About This Website</h3>
  176. <p>Check out the source code for this website on my
  177. <a href="https://github.com/jrtechs">github</a>.</p>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="footer-below">
  183. <div class="container">
  184. <div class="row">
  185. <div class="col-lg-12">
  186. <p class="m-0 text-center text-white"><a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC-BY-SA 4.0</a> <script type="text/javascript">
  187. document.write(new Date().getFullYear());
  188. </script> Jrtechs</p>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </footer>
  194. <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
  195. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
  196. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
  197. </body>
  198. </html>