Agile Methodology

This is my personal guide on how to implement Agile methodology into a company.

Firstly, the workflow needs to be set-up. There are tools that can be used in order to establish the workflow.

Trello and Github integration

Introduction

Trello is used to represent the state of our Github repositories. One Github repo = One Trello Board. Always use Trello as the immediate go to when wanting to know what to do.

We use lists to divide our Trello board into sections. Each section represents the state of our tasks. The sections are divided as follows: General Backlog, Backlog, In Progress, For Revision and Done.

Each task that we have to complete in our application can be represented as a card.

Backlog

At the start of each sprint we take tasks from the general backlog and put them into the weekly backlog. Once we define the tasks in the weekly backlog, they do not change for that week. Each team member assigns themselve to a card. When a user assigns themselve to a card then a branch in Github must also be made. The branch name must resonate with the card, ie same name.

In Progress

When a team member is working on a task then it must be in the “In Progress” list. A team member is allowed to attach a git branch and a pull request to the card. A pull request does not mean to merge the work into the master branch. A pull request is often attached, so that tests are CircleCI can start to run. A branch should only be merged when it’s corressponding card is in the “For Revision” list. While you are working on your task attach, all the resources that were used to complete the complete your assignment (Links to videos, online tutorials etc). This will help when you want to remember how you did a certain task.

Testing

For Revision

When a team member has completed a task then the card must be moved from “In Progress” to “For Revision”. The card must have the branch and a pull request attachment on it as well, for direct access. A fellow Reviewer can decide to pass your work or ask for a review depending on whether s/he thinks that there could be more improvements. Pull requests are how other people are able to contribute to your work.

Done

The team member who reviewed the card is responsible for moving the card from “For Revision” to “Done”.

Conclusion

So far we have discussed just Trello and Github. Trello is used to represent the state of our application. It represents the truth, of our application it’s current state.

Slack

However, we can throw Slack into the mix. Slack is used to communicate with those in your team. Slack can also be used notify developers about the state of the Trello card. With slack you can sign on into your Slack workplace.

CircleCi (Continuous Integration and Continuous Deployment)

When you push code to Github, you can use the CircleCI tool to ensure that the code you push to Github repository, passes all of the tests and is hence production ready. When the tests pass on CircleCI then you can tell CircleCI to run a deploy script on your server which will checkout out the code from the Github repository and will automatically deploy your code onto the Server.

Server

You can use a Ubuntu Server to serve your users on the WWW. You can set up your servers remotely or in-house. Using cloud based companies such as Digital Ocean can improve proficiency. Once you have acquired a Server. Then you can install the relevant web hosting software, Tomcat and Nginx to host your application.

Advertisements

Having difficulty running a deploy script ssh on the Server.

You can ssh into a Server without a password by turning off the password authentication on the config file.

1) Nano into etc/ssh/config file local terminal, actually this might be in the Computer’s command line. Because you can login a ubuntu server hosted on Digital Ocean from the Website. The website gives you access to the Ubuntu machine.

2) Inside the /etc/ssh/config file turn the password authentication off

3) Then write ssh-copy-id root@46.101.34.160 into your local client terminal. This copies the ssh key to the server. We can do this because we set the password to be off.

4) Inside the /etc/ssh/config file turn the password authentication back on.

How to deploy a React.js application

Create an app with create-react-app.

Get an account with Digital Ocean.

SSH into the Droplet.

  • ssh root@your-ipaddress
  • Then install nginx: 1) apt-get update 2) apt-get install -y nginx

Once nginx is installed:

  • Remove symlink to default config
  • rm /etc/nginx/sites-enabled/default

Then with Vim

  • vim /etc/nginx/sites-available/nameofyourapp

paste this contents into “nameofyourappp”

server {
root /var/www/;
listen 80;
location / {
}
}

Create a Symllink

  • ln -s /etc/nginx/sites-available/nameofyourapp /etc/nginx/sites-enabled/nameofyourapp

Reload nginx

  • nginx -s reload

Apex cargo Project System info

Git Rebase

 

We use a git rebase when someone in our team has merged with the remote master branch, and we are working on a feature locally. This means that our local branch is out of date from the one on the server.

Two branches:

-> Master branch

-> feature/UiDashboard

Go to the Local master branch. When your on the Local master then pull it from the remote origin master branch.

Switch to the feature/UiDashboard branch. Then type into the terminal:

git rebase master

Push existing project to another repo on Github

-> We want to do this when we want to have a history of commits.

-> We open the terminal and go to the directory

-> Type nano .git/config into the terminal. Where the project is located.

-> In the [“remote origin”] change the url manually to the Github url that the repo will be. Then we type ctrl + o to (write out ) the file. Followed by CTRL+ X to exit the nano view.

 

Cucumber is a tool it is not a programming language.

Xamarin – sets for deploying an android application

In the Android project click on Android_manifest.xml. Once you do that you can edit the “Required permissions” section.

In my project I am using the Device’s camera as well as the Camera’s internet (WIFI)

under required permission I clicked:

1) AccessCoarseLocation (Read online that this is default)

2) AccessFineLocation (Read online that this is default)

3) Camera

4) Internet

Screen Shot 2018-02-10 at 15.09.16

 

Once I deployed the App, I has difficulty trying to switch the App back to deployment mode. I was unable to deploy the app to my physical mobile device.

 

FIX:

I changed both the Application and the end of the Package Name from WeActive to WeActiveApp.

However, I recommend keeping the Package name the same. Only change the Application Name. It should still deploy.

.NET Standard 2.0 and .NET Core

The .Net Standard library, think of it as an interface. A library which is generic, consisting of interfaces and classes, and is implemented differently in .Net Core and Mono framework.

When I worked in the delivery company, we created standard .net libraries which were then imported by the .NET core Application.

Unable to make work with .Net standard version 1.0 because they took out a lot of API’s which they have now put back in .Net standard version 2.0.

Net standard 2.0 can be shared amongst xamarin and asp.net web application.

Compatibility with Windows and Mac

Visual Studio for Mac Version 7.1

It is possible to work on the same project from either a Windows or a Mac.