forked from nihilist/blog-contributions
283 lines
13 KiB
HTML
283 lines
13 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
<link rel="shortcut icon" href="../../../../../../assets/img/favicon.png">
|
|
|
|
<title>Collaborative Project Management (Kanban in Gitea)</title>
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
<link href="../../assets/css/bootstrap.css" rel="stylesheet">
|
|
<link href="../../assets/css/xt256.css" rel="stylesheet">
|
|
|
|
|
|
|
|
<!-- Custom styles for this template -->
|
|
<link href="../../assets/css/main.css" rel="stylesheet">
|
|
|
|
|
|
|
|
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
|
<![endif]-->
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<!-- Static navbar -->
|
|
<div class="navbar navbar-inverse-productivity navbar-static-top">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand-productivity" href="\index.html">The Nihilism Blog</a>
|
|
</div>
|
|
<div class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav navbar-right">
|
|
|
|
<li><a href="/about.html">About</a></li>
|
|
<li><a href="/blog.html">Categories</a></li>
|
|
<li><a href="https://blog.nowhere.moe/donate.html">Donate</a></li>
|
|
<li><a href="/contact.html">Contact</a></li>
|
|
</ul>
|
|
</div><!--/.nav-collapse -->
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<!-- +++++ Posts Lists +++++ -->
|
|
<!-- +++++ First Post +++++ -->
|
|
<div id="productivity2">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-lg-offset-2">
|
|
<a href="../index.html">Previous Page</a>
|
|
<h1>Collaborative Project Management (Kanban in Gitea) </h1>
|
|
<img src="0.png" class="imgRz">
|
|
|
|
</div>
|
|
</div><!-- /row -->
|
|
</div> <!-- /container -->
|
|
</div><!-- /grey -->
|
|
|
|
<!-- +++++ Second Post +++++ -->
|
|
<div id="productivity3">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-lg-offset-2">
|
|
<h2><b>What tools can i use ? </b></h2>
|
|
<p>Let's say you have a project with too many todolists for you to complete in one month like in our example from this <a href="../microworkflow/index.html">previous tutorial</a>. While this kind of todolist organisation may work for individual work, this may not be ideal for collaborative work, where let's say you have 10 people that want to work on your project.</p>
|
|
<p>Rather than literally sending them your todo list text files over chat, you guessed it, you need a better, more serious solution. If you are familliar with Git (which is a distributed version control system, used to track versions of files), you may be thinking Github already, it is the biggest service for hosting open source code online, <a href="https://github.blog/news-insights/company-news/github-and-microsoft/">but the problem is that it was acquired by Microsoft in 2018.</a> So if you're like me and you don't want your repositories taken down whenever microsoft feels like it (like what happened to <a href="https://www.eff.org/deeplinks/2023/04/update-tornado-cash?language=el">Tornadocash</a>), you need to put your repositories elsewhere:</p>
|
|
|
|
<img src="2.png" class="imgRz">
|
|
<p>Therefore to stay in line with our OPSEC requirements we need to use the FOSS, self-hostable alternative: Gitea. We'll use our <a href="https://git.nowhere.moe/">Gitea instance</a> for this tutorial, but you can do the same on your own gitea instance.</p>
|
|
|
|
</div>
|
|
</div><!-- /row -->
|
|
</div> <!-- /container -->
|
|
</div><!-- /white -->
|
|
|
|
<div id="productivity2">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-lg-offset-2">
|
|
<h2><b>Creating the repository</b></h2> </br> </br>
|
|
<p></p>
|
|
<p>First you need to register (feel free to use a throwaway email if you want), and then you need to create your first repository:</p>
|
|
<img src="1.png" class="imgRz">
|
|
<img src="3.png" class="imgRz">
|
|
<p>Now here we create our collaborative project repository:</p>
|
|
<img src="4.png" class="imgRz">
|
|
<p>Then to you can create your readme file and the first commit in it, with the tutorial that's showcased:</p>
|
|
<img src="5.png" class="imgRz">
|
|
<pre><code class="nim">
|
|
[ mainpc ] [ /dev/pts/13 ] [~/Documents]
|
|
→ mkdir my-collaborative-project
|
|
|
|
[ mainpc ] [ /dev/pts/13 ] [~/Documents]
|
|
→ cd my-collaborative-project
|
|
|
|
[ mainpc ] [ /dev/pts/13 ] [~/Documents/my-collaborative-project]
|
|
→ vim README.md
|
|
|
|
[ mainpc ] [ /dev/pts/13 ] [~/Documents/my-collaborative-project]
|
|
→ cat README.md
|
|
welcome to my collaborative project!
|
|
|
|
[ mainpc ] [ /dev/pts/13 ] [~/Documents/my-collaborative-project]
|
|
→ git init
|
|
git checkout -b main
|
|
git add README.md
|
|
git commit -m "first commit"
|
|
git remote add origin https://git.nowhere.moe/nihilist/my-collaborative-project.git
|
|
git push -u origin main
|
|
hint: Using 'master' as the name for the initial branch. This default branch name
|
|
hint: is subject to change. To configure the initial branch name to use in all
|
|
hint: of your new repositories, which will suppress this warning, call:
|
|
hint:
|
|
hint: git config --global init.defaultBranch <name>
|
|
hint:
|
|
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
|
|
hint: 'development'. The just-created branch can be renamed via this command:
|
|
hint:
|
|
hint: git branch -m <name>
|
|
Initialized empty Git repository in /home/nihilist/Documents/my-collaborative-project/.git/
|
|
Switched to a new branch 'main'
|
|
[main (root-commit) c567662] first commit
|
|
1 file changed, 1 insertion(+)
|
|
create mode 100644 README.md
|
|
|
|
<b>Username for 'https://git.nowhere.moe': nihilist
|
|
Password for 'https://nihilist@git.nowhere.moe':yourpassword</b>
|
|
|
|
Enumerating objects: 3, done.
|
|
Counting objects: 100% (3/3), done.
|
|
Writing objects: 100% (3/3), 250 bytes | 250.00 KiB/s, done.
|
|
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
|
|
remote: . Processing 1 references
|
|
remote: Processed 1 references in total
|
|
To https://git.nowhere.moe/nihilist/my-collaborative-project.git
|
|
* [new branch] main -> main
|
|
branch 'main' set up to track 'origin/main'.
|
|
|
|
</code></pre>
|
|
<p>And from here as you can see, we have our README.md file thats visible from the repository:</p>
|
|
<img src="8.png" class="imgRz">
|
|
<p>Now let's say you have multiple todolists like we previously saw (just exclude the "master todolist" (titled 0,txt) that is to be considered an index to list the other todolists), you can consider those as "issues" from now on.</p>
|
|
<pre><code class="nim">
|
|
[ mainpc ] [ /dev/pts/4 ] [~/todo lists]
|
|
→ cat 0.txt
|
|
-Project Opsec (243 -> 211)
|
|
-Privacy Category (2112)
|
|
<b>-Linux Host OS Task (21121.txt)</b>
|
|
-Anonymity Category (2113)
|
|
-Deniability Category (2114)
|
|
<b>-Veracrypt Task (21121 -> 21141.txt)</b>
|
|
<b>-Deniable VMs Task (21141 -> 21142.txt)</b>
|
|
|
|
-Project Infrastructure (24)
|
|
<b>-setup VPS (241)</b>
|
|
<b>-create the blog (241 -> 242)</b>
|
|
<b>-officially announce the blog is accepting contributions (242 -> 243.txt)</b>
|
|
|
|
</pre></code>
|
|
|
|
<p>Below you have the example of a detailed todolist:</p>
|
|
<pre><code class="nim">
|
|
[ mainpc ] [ /dev/pts/4 ] [~/todo lists]
|
|
→ cat 21142.txt
|
|
-Deniable VMs todo list, not Task (21141 -> 21142)
|
|
-To be explained:
|
|
- What is the usecase ?
|
|
- What tools are going to be used ?
|
|
- Why do we need Veracrypt ?
|
|
- Why do we need Whonix ?
|
|
-To be showcased:
|
|
- How to create the hidden volume
|
|
- How to put the Whonix VM inside the hidden volume
|
|
- How to use the emergency shutdown script as a non-root user
|
|
- How to start the emergency shutdown script with a cinnamon keyboard shortcut
|
|
|
|
</pre></code>
|
|
<p>so let's create an issue for it in gitea:</p>
|
|
<img src="9.png" class="imgRz">
|
|
<img src="10.png" class="imgRz">
|
|
<p>In the title of the issue i like to mention the Category of the issue, followed by the todolist title, and in the description i mention the list of tasks that must be done to complete the issue:</p>
|
|
<img src="11.png" class="imgRz">
|
|
<p>And from there, you can create the rest of the issues for your project aswell in the same way, and see them listed here:</p>
|
|
<img src="12.png" class="imgRz">
|
|
|
|
</div>
|
|
</div><!-- /row -->
|
|
</div> <!-- /container -->
|
|
</div><!-- /white -->
|
|
|
|
|
|
<!-- +++++ Second Post +++++ -->
|
|
<div id="productivity1">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-lg-offset-2">
|
|
<h2><b>Kanban Project Management</b></h2> </br> </br>
|
|
<p>Now when you have alot of issues (let's say over a 100 issues) it's going to be hard to keep track of all of them by default. To help with the status tracking, you can setup a kanban project board:</p>
|
|
<img src="6.png" class="imgRz">
|
|
<img src="7.png" class="imgRz">
|
|
<img src="13.png" class="imgRz">
|
|
<img src="14.png" class="imgRz">
|
|
<img src="15.png" class="imgRz">
|
|
<img src="16.png" class="imgRz">
|
|
<img src="19.png" class="imgRz">
|
|
<p>The default, and most popular Kanban setup is by having the <b>Backlog / Todo / Doing / Done</b> columns.</p>
|
|
<img src="17.png" class="imgRz">
|
|
<p>Now to make sure your issues appear in your project board, you need to make sure that they are in the project board like so:</p>
|
|
<img src="18.png" class="imgRz">
|
|
<p>once you've made sure all of your issues are in your project, you can drag and drop them in either column to easily keep track of their status:</p>
|
|
<img src="20.png" class="imgRz">
|
|
<p>You can change the default columns <b>(backlog / todo / doing / done)</b> to adapt it to your project, for my projects for instance i like to have these columns: <b>(to be brainstormed, to be assigned, assigned (doing), to be reviewed, completed)</b>:</p>
|
|
<img src="21.png" class="imgRz">
|
|
<p>Now you can customize your issues further with labels. For instance i like to have labels describing the difficulty of each issue: <b>"Simnple / Doable / Complex"</b> and labels to describe if the issue is supposed to be an <b>improvement</b>, or if it is under <b>external review</b>. you can create the labels here:</p>
|
|
<img src="22.png" class="imgRz">
|
|
<img src="23.png" class="imgRz">
|
|
<img src="24.png" class="imgRz">
|
|
<img src="25.png" class="imgRz">
|
|
<img src="26.png" class="imgRz">
|
|
<p>once the labels are added to each issue, you can see the overall progress of the project:</p>
|
|
<img src="28.png" class="imgRz">
|
|
<p>Now this is a small example, but if you want to see a real sized-project, check out the Opsec project i have on this <a href="https://git.nowhere.moe/nihilist/blog-contributions/projects/1">project board</a>: </p>
|
|
<img src="29.png" class="imgRz">
|
|
<p>And that's it! now you know how to handle a long-term large project. If you want to check out how i welcome collaborations on my opsec blog, check out the tutorial i made <a href="../../opsec/contribute/index.html">here</a>.</p>
|
|
|
|
</div>
|
|
</div><!-- /row -->
|
|
</div> <!-- /container -->
|
|
</div><!-- /white -->
|
|
|
|
<!-- +++++ Footer Section +++++ -->
|
|
|
|
<div id="productivityb">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-4">
|
|
<h4>Nihilism</h4>
|
|
<p>
|
|
Until there is Nothing left.</p></br></br><p>Creative Commons Zero: No Rights Reserved</br><img src="\CC0.png">
|
|
|
|
</p>
|
|
</div><!-- /col-lg-4 -->
|
|
|
|
<div class="col-lg-4">
|
|
<h4>My Links</h4>
|
|
<p>
|
|
|
|
<a target="_blank" rel="noopener noreferrer" href="http://blog.nowhere.moe/rss/feed.xml">RSS Feed</a><br/><a target="_blank" rel="noopener noreferrer" href="https://simplex.chat/contact#/?v=2-7&smp=smp%3A%2F%2FL5jrGV2L_Bb20Oj0aE4Gn-m5AHet9XdpYDotiqpcpGc%3D%40nowhere.moe%2FH4g7zPbitSLV5tDQ51Yz-R6RgOkMEeCc%23%2F%3Fv%3D1-3%26dh%3DMCowBQYDK2VuAyEAkts5T5AMxHGrZCCg12aeKxWcpXaxbB_XqjrXmcFYlDQ%253D&data=%7B%22type%22%3A%22group%22%2C%22groupLinkId%22%3A%22c3Y-iDaoDCFm6RhptSDOaw%3D%3D%22%7D">SimpleX Chat</a><br/>
|
|
|
|
</p>
|
|
</div><!-- /col-lg-4 -->
|
|
|
|
<div class="col-lg-4">
|
|
<h4>About nihilist</h4>
|
|
<p style="word-wrap: break-word;"><u>Donate XMR:</u> 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8</p></br><p><u>Contact:</u> nihilist@contact.nowhere.moe (<a href="https://nowhere.moe/nihilist.pubkey">PGP</a>)</p>
|
|
</div><!-- /col-lg-4 -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Bootstrap core JavaScript
|
|
================================================== -->
|
|
<!-- Placed at the end of the document so the pages load faster -->
|
|
|
|
</body>
|
|
</html>
|