Skip to content

Commit

Permalink
Merge pull request #738 from nearbeach/documentation
Browse files Browse the repository at this point in the history
Documentation
  • Loading branch information
robotichead authored Jan 22, 2025
2 parents 329cd71 + 6c0c878 commit def907f
Show file tree
Hide file tree
Showing 5 changed files with 130 additions and 3 deletions.
4 changes: 2 additions & 2 deletions docs/000-about/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ Currently NearBeach has the ability to;
* Sprint Functionality
* Request for Changes (RFC)


For more information, please read the :ref:`basic_usage_index`.
We recommend reading :ref:`nearbeach_flow` first to get an understanding of how each of the different modules will work
with each other. Once you are ready to use NearBeach, please read the :ref:`basic_usage_index`.
Binary file added docs/000-about/flow/nearbeach-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
112 changes: 112 additions & 0 deletions docs/000-about/nearbeach-flow.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
.. _nearbeach_flow:

==============
NearBeach Flow
==============

What is NearBeach Flow?
=======================

What is NearBeach Flow? We have several beliefs when it comes to project management;

* Things always go wrong
* Quoting is really hard and no one gets it correct
* User requirements/User stories are lost

We have structured NearBeach so the following modules are all separate modules;

* Requirements/Requirements Items
* Projects/Tasks
* Kanban Board
* Sprints
* Request For Change

The structure of NearBeach is setup in this manner, so you can pick and choose your flow between each of the different
modules. For example, you might not have any user requirements, and just use the task functionality in NearBeach. This
is perfectly fine for any small and quick tasks. Then there are some projects that have a lot of user requirements.
These requirements should be stored in NearBeach, where they can be broken down into smaller requirement items. Relevant
projects/tasks/kanban cards can then be connected to the original requirement items.

The following diagram best describes the entrance points for NearBeach, and the final exit point.

.. image:: flow/nearbeach-flow.png
:width: 800
:alt: The NearBeach flow diagram.


How Does It Work
================

User Requirements
-----------------

Requirements are a helicopter view of the project at hand. For example;

* Building a new site for Client X
* Rebranding merchandise
* Implementing a new ticketing system

For each smaller and detailed user story, you should use requirement items. For example;

* Implementation of the new API to accept payments
* Deployment of the CI/CD pipeline
* Creation of a new page for the Product X

Once you have laid out in your requirement, and requirement items, you can easily create Projects/Tasks to link back to
each requirement item. One requirement item could have multiple projects/tasks. It is not defined as a 1-to-1
relationship.

For example, the requirement item "Creation of a new page for the Product X" can have the following tasks;

* Photography and Images of new product X for page
* Design of new web page for product X
* Construct the CSS for new web page for product X
* Frontend build of the new web page for product X

As you can see, each task is required for this user story. However the tasks themselves are completely different and
usually tackled by different departments. The photographer usually does not tackle the frontend code for the web page.


Projects/Tasks
--------------

Though projects and tasks are similar in NearBeach, there is one small definition difference. Tasks are considered to be
small and quick tasks, where projects can be more complicated, and thus can be broken down into smaller tasks.

For example we have the following project "Setup new EC2 Instance for webserver", which will contain the following
tasks;

* Setup EC2 server on AWS
* Install required LAMP stack + Required Software
* Setup Firewall on EC2

So that small project has a bunch of smaller tasks.

**Question:** What if I am the only one who does this project?

**Answer:** How you utilise NearBeach is up to you. You can easily not create any of the extra tasks, and just keep it as a
a single project. That will work perfectly fine, however we recommend splitting up projects if they start getting large,
or there are multiple people involved. That way you can assign responsibilities at the task levels.


Kanban Boards
-------------

For users who like to see things visually we have implement a Kanban board. The kanban board is customisable, where
users can defined each column and level. Users will also be able to create cards, or link in existing tasks/projects.


Request For Change
------------------

The Request For Change module in NearBeach is designed to;

* Describe the change you want to implement
* Describe the risk of the change
* Describe the implementation and back-out plan of the change
* Describe the test plan of the change
* Detail to the end user, when the change is happening and the process around that change

The request for change also has "Change Tasks", which are a single task done at a certain point in the change process.
These change tasks can be assigned to a user, with a QA to sign off. The RFC functionality in NearBeach can be used to
track these changes as it is applied.
16 changes: 15 additions & 1 deletion docs/003-administration-tasks/manage-users.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,18 @@ Removing User from system

8. Remove all groups and permissions the user has. This will effectively remove them from the system. They will not be able to log into NearBeach

9. Un-tick the "User Active" tick box and then save
9. Un-tick the "User Active" tick box and then save

NearBeach does not recommend deleting users. As a delete command will cause a cascade of deletes, and will delete any object that has been modified by the user, or created by them. This will result in data loss.

If the user will need to go through a deletion process, brought on by GDPR (General Data Protection Regulation), we are currently writing functionality to tackle this. The functionality will;

#. Rename the user - and remove any credentials, and reset user's password.

#. Profile pictures will be delete from the blob storage

#. The system will remove any object assignments to the user

#. The system will migrate any "Change User" or "Creation user" records to a user id of choice.

The user is essentially dead information at this point, without the need of a destructive delete.
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Welcome to NearBeach. We are a small community of developers trying to make tool
:caption: 🚀 About

Features </000-about/features>
NearBeach Flow </000-about/nearbeach-flow>


.. toctree::
Expand Down

0 comments on commit def907f

Please sign in to comment.