<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Qais Patankar</title>
    <description>The latest articles on DEV Community by Qais Patankar (@qaisjp).</description>
    <link>https://dev.to/qaisjp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F96705%2F40f8dd3a-7501-4aa9-99f4-080aa9782274.jpeg</url>
      <title>DEV Community: Qais Patankar</title>
      <link>https://dev.to/qaisjp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qaisjp"/>
    <language>en</language>
    <item>
      <title>The Marauder's App</title>
      <dc:creator>Qais Patankar</dc:creator>
      <pubDate>Wed, 20 May 2020 12:25:02 +0000</pubDate>
      <link>https://dev.to/qaisjp/the-marauder-s-app-130k</link>
      <guid>https://dev.to/qaisjp/the-marauder-s-app-130k</guid>
      <description>&lt;h2&gt;
  
  
  My Final Project
&lt;/h2&gt;

&lt;p&gt;Find free spaces in university labs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;find out if a machine is free, occupied, or turned off&lt;/li&gt;
&lt;li&gt;find out how long any occupied machine has been logged in for (in case someone forgot to log off)&lt;/li&gt;
&lt;li&gt;find your friends! (so you don't need to study alone... or so you &lt;em&gt;can&lt;/em&gt; study alone)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Killed by covid-19. Because now nobody is on-site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://mapp.betterinformatics.com/demo"&gt;http://mapp.betterinformatics.com/demo&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/compsoc-edinburgh"&gt;
        compsoc-edinburgh
      &lt;/a&gt; / &lt;a href="https://github.com/compsoc-edinburgh/mapp"&gt;
        mapp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🗺️📡💃 The Marauders App helps you find rooms with free machines in university labs and helps you find your friends. It does this by SSHing into every machine and dialling home.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
&lt;a href="https://mapp.betterinformatics.com" rel="nofollow"&gt;The Marauder's App&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;This is now a monorepo containing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/compsoc-edinburgh/mapp/master//cmd/mapp-worker"&gt;mapp-worker&lt;/a&gt; to send information to the backend&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/compsoc-edinburgh/mapp/master//website"&gt;website&lt;/a&gt; to display machine information&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/compsoc-edinburgh/mapp"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I built it (what's the stack? did I run into issues or discover something new along the way?)
&lt;/h2&gt;

&lt;p&gt;Frontend uses: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bootstrap 4&lt;/li&gt;
&lt;li&gt;JavaScript (and unfortunately, jQuery)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Backend uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python / Flask&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Go (for the SSH bot, that &lt;code&gt;finger&lt;/code&gt;s every machine)&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some tricky things include working around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uni breaking the &lt;code&gt;finger&lt;/code&gt; command&lt;/li&gt;
&lt;li&gt;a bug where some users will still have processes running after they log off, making it harder to determine if someone is logged on / how long they have been logged on for&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also integrated with the university's authentication system, so I built a library called '&lt;a href="https://github.com/qaisjp/gosign"&gt;gosign&lt;/a&gt;' to make it easier for others to integrate CoSign authentication into their own systems.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/qaisjp"&gt;
        qaisjp
      &lt;/a&gt; / &lt;a href="https://github.com/qaisjp/gosign"&gt;
        gosign
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      CoSign interface written in Go
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
gosign: CoSign library for Go &lt;a href="https://goreportcard.com/report/github.com/qaisjp/gosign" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/efdd35a4980e0e84138c561f050013ba9630a98d/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f716169736a702f676f7369676e" alt="Go Report Card"&gt;&lt;/a&gt; &lt;a href="https://godoc.org/github.com/qaisjp/gosign" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/325f28c1016d797a01638bc3711f9d19532d5f40/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f716169736a702f676f7369676e3f7374617475732e737667" alt="GoDoc"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;gosign is an &lt;strong&gt;experimental&lt;/strong&gt; library that provides an interface to a CoSign daemon. It works well, but the API might change in the future.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogin.org" rel="nofollow"&gt;CoSign&lt;/a&gt; is a "secure single sign-on web authentication system".&lt;/p&gt;
&lt;p&gt;This only maintains a living connection and can handle the &lt;code&gt;CHECK&lt;/code&gt; command (this project was created for a "CoSign filter"). There are no plans to support further protocol
commands. This library is only built to support CoSign protocol version 2 (in use as of Cosign v2.x). Contributions are welcome.&lt;/p&gt;
&lt;h2&gt;
Example&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Creating a CoSign client&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-go"&gt;
&lt;pre&gt;&lt;span class="pl-s1"&gt;client&lt;/span&gt;, &lt;span class="pl-s1"&gt;err&lt;/span&gt; &lt;span class="pl-c1"&gt;:=&lt;/span&gt; &lt;span class="pl-s1"&gt;gosign&lt;/span&gt;.&lt;span class="pl-s1"&gt;Dial&lt;/span&gt;(&lt;span class="pl-c1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="pl-s1"&gt;gosign&lt;/span&gt;.&lt;span class="pl-s1"&gt;Config&lt;/span&gt;{
  &lt;span class="pl-s1"&gt;Address&lt;/span&gt;: "&lt;span class="pl-s1"&gt;www&lt;/span&gt;.&lt;span class="pl-s1"&gt;ease&lt;/span&gt;.&lt;span class="pl-s1"&gt;ed&lt;/span&gt;.&lt;span class="pl-s1"&gt;ac&lt;/span&gt;.&lt;span class="pl-s1"&gt;uk&lt;/span&gt;:&lt;span class="pl-c1"&gt;6663&lt;/span&gt;"
  &lt;span class="pl-s1"&gt;Service&lt;/span&gt;: "&lt;span class="pl-s1"&gt;betterinformatics&lt;/span&gt;.&lt;span class="pl-s1"&gt;com&lt;/span&gt;"
  &lt;span class="pl-s1"&gt;TLSConfig&lt;/span&gt;: &lt;span class="pl-c1"&gt;&amp;amp;&lt;/span&gt;&lt;span class="pl-s1"&gt;tls&lt;/span&gt;.&lt;span class="pl-s1"&gt;Config&lt;/span&gt;{
    &lt;span class="pl-s1"&gt;ServerName&lt;/span&gt;:         "&lt;span class="pl-s1"&gt;www&lt;/span&gt;.&lt;span class="pl-s1"&gt;ease&lt;/span&gt;.&lt;span class="pl-s1"&gt;ed&lt;/span&gt;.&lt;span class="pl-s1"&gt;ac&lt;/span&gt;.&lt;span class="pl-s1"&gt;uk&lt;/span&gt;"
    &lt;span class="pl-s1"&gt;Certificates&lt;/span&gt;:       []&lt;/pre&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/qaisjp/gosign"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>octograd2020</category>
    </item>
  </channel>
</rss>
