Portfolio II Weekly Blogs

Hello everyone! I’ve decided to properly organised my blog and categorise all the Portfolio II weekly blogs under the Portfolio II Module tag. Then, I will be giving a rough outline of what has went on throughout the weeks. Before that, I will link you to the sections/blog posts that were meant for certain weeks.

Introduction, Sprint planning & Sprint #1 (Weeks 1-3)

Project Fosterships!

Sprint #1 Update (Week 4)

Progress for Sprint #1 (Week 4)

Sprint #1 Completion (Week 4)

Completion of Sprint #1! – Project Fosterships

Sprint #2 – The BYTE Hackathon (Week 5)

We’re done with the Byte Hackathon!

Sprint #3 – Upgrade! (Week 6-7)

PF – Week 6 & 7!! (PF = Project Fosterships)

The above shows off the past blogs and updates I’ve written for the said weeks or sprints. Today’s update is with regards to the progress of Sprint #3, and if we’re keeping on track with regards to the timeline below.

As you see above, we aimed to complete sprint 2 during the Hackathon, and if time permits… we’d have worked on the next sprint along with further refinement of the application (Weeks 6-9). I have to say, so far we’ve been on track.

Recently last week, we had also done a quick sprint retrospective which was summarised on the Trello board —> https://trello.com/c/PFnqH4Bp. These were some of the comments we took out from the Hackathon’s sprint. With that, we proceeded to plan for our next sprint and the rest. We’ve greatly added several requirements that we feel are parts of the actual core product. You can see these products on our Trello board again.

Coming to our next part, one of the main few features that we added, since time permits was to have a back-end web application to create the events. Instead of having everything done on a mobile-backend. This allowed for the events/objects/variables to be created within the cloud database first, and then allowed for the java application (android app) to be linked up to it. Overall, the smooth transition for event organisers and event attendees.

To conclude, I’ve listed out all the previous blog posts so as to collate it up, along with talked about how far we are in relation to the first timeline we came up with, and finally, the generalised thoughts on the new features.

How to set up Travis-CI on a Android Project

Hello everyone, I’m super excited to help you out with installing Travis-CI. You might have some questions before we start!

What in the World is Travis-CI?
Don’t worry! Travis-CI is simply a CI (continuous integration) service to help you build/compile and test your projects. (mainly on github).

Is it hard to set up?
Absolutely not. It’s just a single yml (a data serialization language for configurations) file and some clicking here and there. You only need to set up .travis.yml so travis-ci knows how exactly to test your code, and in what conditions! Although it took me several tries to get my .travis.yml working.. here are some things to note!

Things to take note:
Travis may not work on every sort of android project (you really have to customize the configuration file accordingly… it might take you several tries to set it up as well. The simpliest thing like an image with a different signature type might totally just fail the test.

The travis.yml file that is at the end of this blog post may not be the same as your final intented one, so do make sure to make the appropriate changes to yours!

Let’s get started!
To get started, you’ll need a Travis-CI account, or you can log in via Github. I’ll skip this section and move on to the more important ones!

Next up, make sure you select the repository you want to put this on. I believe it has to be public, but i’m sure you can set it up for members within github organisations only.

Placing your (.travis.yml) file into your root directory of your project (in this case if it’s an android project –> where your build.gradle is (here is a picture of where mine is..)

Now, all you need to do is  add a travis.yml file to trigger an inital build and see if it passes, if it doesn’t just check the logs.. It looks like this at the end, (PS, if you can’t trigger the build make sure you enable auto-build for push in your travis-ci project settings!)

or like this…

Although, you can see that Travis tells you the error and you can fix it. If you are working in a team, it helps to be able to self-test every last bit of code in a different environment so that you know your teammate will be getting a working copy, or not…  Don’t worry if you get this problem though… just look up and see what’s going on!

Once you’re done, whenever a teammate commits and pushes the code… travis automatically picks up your latest repository version and tests (by reading how from your .travis.yml file!).. and you can see if it succeds or not! (PS: Travis also knows to cancel your tests whenever you update a readme.md file!)

You’re done! Congratulations on setting up your travis-ci project! If you require any help at all please feel free to email me @ brian(at)bchewy.com

My .travis.yml file! : https://raw.githubusercontent.com/bchewy/Project-Fosterships/master/.travis.yml

Useful documentation to customize your .travis.yml file :  https://docs.travis-ci.com/user/languages/android/

How to start, stop and connect to your Microsoft SQL Server with HeidiSQL

Hello everyone, after trying for numerous hours to connect to my MSSQL Server installed via the Visual Studio Installer on my Windows VM with HeidiSQL. I just couldn’t help but post a quick and detailed guide on how you can do the same. I have credited the information that helped me below!

Step 1 : Look for your MSSQL Server’s name (If you’ve installed it with Visual Studio like me… (Open up > SQL Server Object Explorer)

In my case, the MSSQL’s server name is “MSSQLLocalDB”

Step 2: Start MSSQL Server

Command 1 : "C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" start MSSQLLocalDB
OUTPUT:
LocalDB instance "MSSQLLocalDB" started.

The above command helps you start your MSSQL Server and allows you to check information (like pipe information)

Step 3: Check for your pipe information with the following command

Command 2 : "C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" info MSSQLLocalDB
OUTPUT : 
Name: MSSQLLocalDB
Version: 13.1.4001.0
Shared name:
Owner: DESKTOP-UT2AN59\Brian Chew
Auto-create: Yes
State: Running
Last start time: 11/27/2018 8:40:16 PM
Instance pipe name: np:\\.\pipe\LOCALDB#D42B8DEB\tsql\query

As you can see above, my instance pipe name is “np:\\.\pipe\LOCALDB#D42B8DEB\tsql\query

Step 4: You’re done, so stop the MSSQL Server and navigate to HeidiSQL and use the following settings! (remove np:)

To stop the server: use the following command! (PS: You won’t be able to connect to your server if it’s down… so just remember!)

Command 3: "C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" stop MSSQLLocalDB
OUTPUT:
LocalDB instance "MSSQLLocalDB" stopped.

You’re set! Now you’ve successfully connected to your MSSQL Server with HeidiSQL and can make full use of HeidiSQL for any MSSQL stuff! Credits: here

 

 

Ruby on Rails 5

Hello everyone! I am currently learning ruby on rails for my project, and this is to help me learn better. I will explain each command below after listing it out!

rails g/generate

to generate something in rails

rails generate migration AddXtoY

to generate a migration to add email to user table (strict convention of naming the migration … Read more)

rake db:migrate         OR        rails db:migrate

to migrate the database after modification (from migration files > db/migrations/* )

rake db:reset

to reset the database and work on all migrations again (delete all then create)

Some Ruby On Rails 5 Conventions

  1. Migrations have to have the proper name (AddXtoY, etc)
  2. Partials have to be _name.html.erb (named in this order)

3.     Found https://gist.github.com/iangreenleaf/b206d09c587e8fc6399e

As of right now, this commands help me to see and do the basic stuff. I will edit this post and add on most stuff as time goes by. I’ll always be learning more!

Last updated 1 December

PF – Week 6 & 7!! (PF = Project Fosterships)

We’re starting on Sprint 3! Altogether, we’re doing pretty well as a team thus far, and we’ve come together recently in a meeting and discuss the plans and what to work on moving forward in the next few sprints. As expected, we’ve added several new function and requirements into our final MVP. Below is a picture of our trello board, which will show what we’ve changed since the last meeting.

As you can see, we’ve organized the trello board to a general format (from Meetings & standups to general tasks, user stories which are not assigned and the Sprint 3 tasks). As seen, we’ve also added the total number of story points for that current sprint at the very top of sprint 3’s user stories. This helps us to gain an overlook when managing the project from an Agile perspective.

To Conclude, Week 6 and Week 7 has been a lot of project management and just to gauge where we’re at. We’ve worked and met up for two sprint planning meetings along with a single sprint retrospective to conclude everything. Lastly, for my part, I will also be developing the Android Application and the back-end with ruby on rails 5. It will be an awesome project!

We’re done with the Byte Hackathon!

We’re finally done with the byte hackathon! The everyday grind was an uplifting experience! For the 3 days, I set my mind to make sure I had the correct mindset through all days. Work on, and complete a proper prototype to present!

My Team and I made sure all parts of the prototype had worked, from the main activity screens right down to every single line of code, constantly user-testing with different values, inputs and from a different angle. We made sure that the live demo was perfect. Although It wasn’t, I’m sure My team and I gave it our best shot.

Below is a simple one slide elevator pitch for you (the readers!) to find out more about what Project Fosterships is about.

Amongst the feedback, we were given from many lecturers and friends… one stood out. The Idea could work! We intend to make the idea work by applying the iterative process of an agile sprint to the use. We’d get feedback from the product owner –> review –> work on it!

All in all, the BYTE Hackathon was an amazing experience. We came in as the second runner-up and I truly believe it was a worth-while experience. (Below are some snippets of how our project looks like)

IF you have any feedback or questions about the project, Feel free to let us know! (You can contact me @ brian(at)bchewy.com) Here’s a picture of my team at the Hackathon!

From left to right: Mr. Ng Poh Oon, Daniel, Myself, Eshwar, and Malcolm

Completion of Sprint #1! – Project Fosterships

We’ve finally completed our very first agile sprint. It was truly a learning experience. Although it was fairly weird to get started on the story-points and user stories compared to previously when we had listed down the tasks and began to start work on it soon after.

The first sprint, as a team was fairly tough although we have begun to gain momentum and have quickly learnt the ropes of mobile app development from one of our teammates, Daniel. I’ve assisted with the development of the booking screen. One of our most important parts of the app! To allow for event organisers to make use of the booking screen to book their event and eventually make use of our game app as competitive fun.

Below is a picture on what we’ve done with the Trello board, yet again. Since my team is not satisfied with the user stories as some of it may seem like duplicates or messy… We’ve come together to readjust the user stories and our story points. I’ve circled and underlined the cards!

All in all, I’m looking forward to the next sprint, where it’s all prep to quickly work on our prototype for presentation during the BYTE Hackathon! I have also attached a screenshot of our burnup chart, which helps mark our progress!

Progress for Sprint #1 (Week 4)

Hello yall!

For sprint #1, we’ve started to do some development by bootstrapping a native Android application. For this week, we’re intending to do a sprint review and sprint-retrospective to help us check in at the progress of our sprint.

We’re looking to do a burnup chart, which will help us look at the progress along with the ideal “progress” that we’ll be working on.

We will be following the above template as shown above. On top of that… we’ll also plan for the next sprint.

  1. Getting feedback from the previous sprint
  2. Plan the next set of work for the next sprint (iteration planning meeting)
  3. Make sure the user-stories are planned for the next sprint (story-planning meeting)
  4. Look for areas of improvement (mini-retrospective)

We will have a story-planning meeting at the start and have feedback session and iteration planning along with the mini-retrospective at the end of the stand-up meeting.

Recently, we’ve also started development on the Android Application by starting to develop and design the different activity layouts, along with instantiating the database and seeding it with fake-data and instantiating the different buttons, text-boxes and more.

All in all, progress looks to be on track, and we hope to develop the game-concept into our prototype as soon as possible by the end of this week. Once again, you can look at what we’ve been doing on trello (https://trello.com/b/jFPJdUKb/project-fosterships).

Project Fosterships!

Hello everyone!

I’m working on a project with a team of four guys, where our product aims to be an innovative solution for social interaction. Project Fosterships is an idea to help foster worthwhile relationships with groups of people who attend camp/events by breaking the ice while promoting a sense of belonging amongst themselves.

Following this we’ve prepared for our first sprint, as you can see with the picture below… it is our assigned board space.

As you can see, this is our first sprint, we’ll be working on the game-concept and mainly the login page for our product. As for project management… we’ve decided to make use of Trello as our main project management tool. You can access our trello board –> here!

I’ll briefly explain about our trello board here! (and just for progress-tracking… I will update trello every week!)

As you can see, we have a simple info board for us to update each other on the clarity of the project, along with the deadlines which will tell us the different deadlines we’ve set with clear countdown timers shown. Furthermore, we’ve also added a card list for risk/opinions we’ve heard and revised through with the group members, and or other people.

Sprint #1

As for our first sprint, we’ve planned to start on the game-concept and the login parts. This is to help hopefully present our game with a proof of concept to the lecturers.

After the inception deck, we’re planning… we’ve also made sure that our product backlog is clear and what the scope is actually about. In addition to what we’ve done… we’ve also started on the inception deck slides, along with a simple inception deck document that will go briefly into the details about our project.

To keep up to date with us: https://trello.com/b/jFPJdUKb/project-fosterships 

The Docker Guide!

Docker is an awesome tool! and this is my guide on how I use it for development, and or other fun things you can do with docker!

Docker is a containerisation tool as explained in the previous post. Here are some of the Docker Commands that I’ve used to help start, etc!

docker ps - shows all active docker containers
docker ps a - shows all active/inactive docker containers
docker start *name* - starts the docker container with the *name* eg: docker start mussql - starts the docker container with sql
docker pull *name* - pulls docker *name* from dockrehub, etc...
docker build -t testapp:v1 - builds your docker image based on your Dockerfile. (look at: https://docs.docker.com/engine/reference/commandline/build/#options) there are other flags like --no-cache etc!

What’s a dockerfile? : A docker file is simply just a set of instructions for docker to build images automatically.

I hope the above commands have helped you understand docker a little better.  You can download it for windows, or Mac-os and try it out yourself here : https://www.docker.com/get-started 

Thanks for taking your time to read!
Brian