A Deep Dive:
Forest For Life.

Project page

Brief Description

Forest For Life is a university team project, where as a team of 5, we designed and developed an informative website. The website consisting of various forms of content, alongside a fun and interactive game, with the goal of informing the public about the issues of climate change and deforestation.

As a team, we were given just under 3 months to develop a project, starting from nothing. As such, we were required to do the following:

With all the tasks to do laid out, it was daunting at first. However, once tasks were split up into sprints, using the Agile methodology, my confidence in delivering an exceptional product as a team grew.

My Contributions

Establish Roles

Server-side lead:
It was decided as a team that my role would be server-side lead, with me being responsible for the website as a whole, including establishing the website requirements, design, development and testing. With this, I led a team of 3 (including myself), while the remaining members of the team were tasked with the game side.

Establish a Project Plan

As a team, we decided it would be best to operate using the Agile methodology, incorporating sprints into our workload to better manage time. With this, as a team, we created an excel spreadsheet and set soft deadlines for all stages of the project.

Establish Requirements

As a team, we held 3 meetings for an extended period to discuss and state all the functional and non-functional requirements for both the website and game. To assist us, I created 2 user personas, delving into, and analysing our intended user base.

Design

Considering system architecture, I created a UML diagram for the website during the early stages of the design process to assess how the website will function. From this, myself, and the server-side team established the pages we would have featured within the website, as well as the access rights required for each page. Equally distributing the workload, each member of the server-side team was then allocated pages to make early-stage designs. Once all designs were assessed and agreed upon as a team, we moved to development.

Development

It was decided as a team that each member of server-side would develop and incorporate their agreed upon page designs, as the workload was already equally distributed from the design stage. As such, I was tasked with developing the following pages (as I designed these pages):


Unfortunately, due to scheduling, the vast majority of the development stage took place over the December to January period. Taking this into account, it was decided during the design of the project plan that the team would work throughout this period with a 1.5-week break for the Christmas and the New Year holidays. Within early to mid-December, all members of the team travelled home and as such, team communication shifted to online.

During the December to January period, while documenting my progress to the team, it became apparent that communication was becoming less and less frequent, reaching a point where I was unable to receive a reply to any of my communication attempts. Alongside this, when reviewing the projects repository, it also became apparent that no development (other than my own) was occurring on the server-side. Following a week with no change, I took it upon myself to develop the other pages, once the pages I was responsible for were complete. As a result of this, when evaluating the repository at the end of development, I committed 66 of the total 81 commits, or roughly 81% of commits.

Testing

As a result of the setback in development, testing was unfortunately shortened considerably, considering the deadline fast approaching. As such, test cases were created and assessed through user input and actions, for both the website and game. Reflecting on this, while this was by no means good or adequate testing, at the time, it was the best that could be done.

How It Was Developed

Django

During the early stages, after the team decided to create a website, it was essential to choose the technology. After careful analysis, Django was chosen as no one in the team had any web development knowledge and the framework offered full-stack development opportunities; alongside this, everyone in the team were proficient in Python.

Please note that various API's were utilised for the development of the website, however, discussion and analysis of them have been omitted to allow for a more concise post.

Closing Note

This was both the biggest project I have been apart of, as well as my first experience working within a team for an extended period of time. Reflecting, I truly enjoyed the experience and I believe that it helped to shape me into a better developer from the lessons I learnt.

Please note that while this post is lengthy, various information has been omitted in an attempt to make the post as concise, and yet still informative at the same time. Taking this into account, if clarification over certain aspects or further information is requested, I would be more than happy to do so. If this statement applies, please feel free to contact me using any of the options available to you from the home page.

Thank you for taking the time to read this.

- Nathan