0% found this document useful (0 votes)
383 views

Report of A 6 Month Internship at Go-Groups LTD, Buea: Faculty of Engineering and Technology

The document summarizes a 6-month internship report submitted by Serkwi Bruno Ndzi to the University of Buea in partial fulfillment of the requirements for a Bachelor of Engineering degree in Computer Engineering. The internship was completed at Go-Groups Ltd in Buea, Cameroon under the supervision of Mr. Nnouka Stephen. During the internship, Serkwi worked on two projects, gaining experience with technologies like backend development, web frontend development, testing, and agile methodologies. He also participated in various extracurricular activities organized by Go-Groups.

Uploaded by

Cham Raul
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
383 views

Report of A 6 Month Internship at Go-Groups LTD, Buea: Faculty of Engineering and Technology

The document summarizes a 6-month internship report submitted by Serkwi Bruno Ndzi to the University of Buea in partial fulfillment of the requirements for a Bachelor of Engineering degree in Computer Engineering. The internship was completed at Go-Groups Ltd in Buea, Cameroon under the supervision of Mr. Nnouka Stephen. During the internship, Serkwi worked on two projects, gaining experience with technologies like backend development, web frontend development, testing, and agile methodologies. He also participated in various extracurricular activities organized by Go-Groups.

Uploaded by

Cham Raul
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

UNIVERSITY OF BUEA REPUBLIC OF CAMEROON

PEACE-WORK-FATHERLAND
P.0 BOX 63,
Buea, South West Region
CAMEROON
Tel: (237) 3332 21 34 / 3332 26 90
Fax: (237) 3332 22 72

FACULTY OF ENGINEERING AND TECHNOLOGY

DEPARTMENT OF COMPUTER ENGINEERING

REPORT OF A 6 MONTH INTERNSHIP AT GO-GROUPS LTD,


BUEA

Internship Report Submitted to the Department of Computer Engineering, Faculty of


Engineering and Technology, University of Buea, in Partial Fulfilment of the
Requirements for the Award of the Bachelor of Engineering (B.Eng.) Degree in
Computer Engineering

By:
SERKWI BRUNO NDZI
Matriculation Number: FE17A073
Option: Software Engineering

Professional Supervisor: Supervisor:


Mr. Nnouka Stephen Mr. Sop Deffo

[email protected] [email protected]
Go-Groups ltd Buea University of Buea

Academic Year: 2020/2021


Table of Contents

Table of Contents ................................................................................................................... i

Dedication ............................................................................................................................ iii

Acknowledgment.................................................................................................................. iv

List of Tables .........................................................................................................................v

List of Figures ...................................................................................................................... vi

List of Abbreviations ........................................................................................................... vii

Chapter 1: Introduction ...........................................................................................................1

1.1 Definition of internship ............................................................................................1

1.2 Goals and Objectives ................................................................................................1

1.3 Internship application and posting ............................................................................1

1.4 The company ............................................................................................................2

1.4.1 About Go-Groups ..............................................................................................2

1.5 Vision and Values of Go-Groups ..............................................................................2

1.6 Structure of Go-Groups ............................................................................................3

Chapter 2: Internship activities ...............................................................................................4

2.1 First day of internship ...............................................................................................4

2.2 Department of internship ..........................................................................................4

2.3 Familiarizing with company technologies and values ...............................................4

2.4 Start of Internship Project 1 ......................................................................................6

2.4.1 Definition of problem and project goal ..............................................................6

2.5 Envisaged product’s Architecture .............................................................................7

2.6 Methodology of realizing project ..............................................................................9

2.7 Tools used for implementation .................................................................................9

2.7.1 Implement Backend functionality first ............................................................. 10

2.7.2 Implement corresponding functionalities on web frontend ............................... 11

2.8 Suspension of Internship Project 1 and Start of Project 2 ........................................ 11


i
2.8.1 Definition of problem ...................................................................................... 12

2.8.2 Phase 1 (writing unit and integration tests for PayAmGo Sandbox Service) ..... 12

2.8.3 Phase 2 (Improve on user interface of sandbox) ............................................... 13

2.9 Resumption to original internship project ............................................................... 14

2.10 Close of internship project ...................................................................................... 14

2.11 Relationship with others ......................................................................................... 14

Chapter 3: Extracurricular Activities..................................................................................... 15

3.1 Monthly outings ..................................................................................................... 15

3.2 Working Sessions with Go-Group’s General Manager and Technical Manager....... 15

3.3 Lunch and Learn..................................................................................................... 15

3.4 Social Media Marketing of Go-Waka ..................................................................... 16

Chapter 4: Difficulties and challenges encountered ............................................................... 17

4.1 Technical Challenges.............................................................................................. 17

4.2 Non-Technical challenges....................................................................................... 17

Chapter 5: Conclusion and Recommendation ........................................................................ 19

References ............................................................................................................................ 20

Appendices ........................................................................................................................... 21

ii
Dedication
To my parents Mr. and Mrs. Serkwi whose love for me has been my motivation.

iii
Acknowledgment
I will like to appreciate my supervisor, Mr. Sop Deffo for his patience in walking me through
my report and correcting the errors I made often too frequently. My sincere appreciation also
goes to Mr. Nnouka Stephen my academic supervisor for his timely inputs and suggestions
during my internship which helped me reshape my ideas for a better internship experience. I
deeply thank Mr. Michael Boyo, general manager of Go-Groups ltd, Mr. Tanko Edward, the
technical manager, Mr. Che Lewis, Go-Group’s administrative manager, Mr. Obiasong Frank
and Mr. Takougang Dieudonne, despite their busy schedules, they devoted time to help me
out each time I was in need of their assistance. I cannot leave out my siblings who have been
very supportive throughout this journey. I am grateful to Engineer Wepngong Benaiah for all
the assistance he has been giving me from the very start. Finally, I appreciate other interns
with whom I was at Go-Groups ltd and Go-Groups ltd staff as a whole most especially Mr.
Ewang Clarkson for his counsel.

Above all else, I thank the Omniscient God, for being my supreme guide and guard.

iv
List of Tables
Table 1: Go-Groups micro-services used by cash contribution service ....................................8

Table 2: Tools used in project ............................................................................................... 10

Table 3: Test Cases on PayAmGo Sandbox ..........................................................................13

v
List of Figures
Figure 1. Organigram of Go-Groups ltd ..................................................................................3

Figure 2. Illustration of the agile software development life cycle ...........................................5

Figure 3. Use case diagram of contribution service .................................................................6

Figure 4. Sequence Diagram of Internship project 1 ................................................................7

Figure 5. Product Architecture ................................................................................................8

Figure 6. Test Driven Development ...................................................................................... 10

vi
List of Abbreviations
API: Application Programming Interface
CI: Continuous Integration
CD: Continuous Deployment
DBMS: DataBase Management System
H2: Hypersonic 2
HTTP: HyperText Transfer Protocol
IT: Information Technology
JWT: Json Web Token
NPM: Node Package Manager
REST: Representational State Transfer
UI: User Interface
XAF: Central African CFA Franc

vii
Chapter 1: Introduction
1.1 Definition of internship
An internship is a professional learning experience that offers meaningful, practical work
related to a student's field of study or career interest (^, What is an internship, 2018). It is a
period when a student decides to spend time with professionals in a bid to learn and have a
mastery of skills of the professional world.

1.2 Goals and Objectives


This internship was taken for the following reasons
 To gain new skills in the engineering field by working on real world projects.
 To learn and be familiarized with top notch technologies related to software design
and implementation.
 To improve on the knowledge of engineering concepts by applying them in a
closely monitored environment.
 As a preparation for the transition from academia to the job world.
 As a requirement for acquisition of a bachelor’s degree in Computer engineering.

1.3 Internship application and posting


Prior to the internship, applications were written and submitted at 3 companies, all in Buea.
Each application consisted of a handwritten application letter, a resume, a school attendance
certificate, and a school recommendation letter. Two of these applications were accepted, that
is at Go-Groups ltd and Zepstra. Go-Groups ltd’s invitation was honored over the other.
This choice of Go-Groups over Zepstra was prompted by two main reasons:
 Go-Groups has a product (Go-Student) (Go-Groups, 2014) which is well known and is
in use by several universities around Cameroon, and so there is a lot which one can
learn from there as concerns solving real world problems.
 Secondly, I was part of a training session organized by Go-Groups and developed a
deep craving to know more about the technologies it used in its products and so saw
an internship there as a perfect opportunity to build skills in those technologies.

1
1.4 The company
1.4.1 About Go-Groups
Go-Groups ltd is one of the leading Software companies in the Silicon Mountain (Borno,
2016). It is located at Malingo Street of Molyko, Buea in the South West region of Cameroon.
This company started in 2012. Two years later, in 2014, it was registered as a legal
business entity in Cameroon. It started off with the Go-Student platform which is in use at the
University of Buea as well as other renowned universities around Cameroon.
Some services offered by Go-Groups ltd include:
 School management software solutions,
 Database design and implementation,
 Web and mobile application development, etc. (Go-Groups, 2014)

1.5 Vision and Values of Go-Groups


Go-Groups ltd has as vision to lead in advancing the use of computer technology in the face
of scarce resources. Its mission is to ease the burden and improve on the quality of life of
ordinary people by using computer programming and technology to resolve challenges of
their daily living, especially in resource-limited settings through advance planning, renovation
and innovation.

To accomplish this mission, Go-Groups has honesty, respect, responsibility, reliability,


renovation and innovation as its core values (Go-Groups, 2014).

2
1.6 Structure of Go-Groups
Go-Groups ltd has the following administrative organization

Figure 1. Organigram of Go-Groups ltd (Go-Groups, 2014)

Go-Groups ltd, being a Software company employs state of the art technologies in order
to deliver quality and relevant products to all its clients. These technologies
include Laravel and Spring Boot, for its backend REST API’s, angular 8+ for web frontend,
ionic and ReactJs for mobile apps, Docker for containerized deployment, maven and NPM for
package management and as build tools. Concourse CI is employed as CI/CD server and git
(with GitLab) is used for version control and also complementing the CI/CD
server. Go-Groups uses Microsoft teams for team and internal communication.

3
Chapter 2: Internship activities
2.1 First day of internship
This internship started on the 1st of September 2020. It started with a meeting
between Go-Group’s assistant technical manager, Mr. Obiassong Frank and all of the interns
in the company; five in number. Mr. Obiassong welcomed everyone and then went on to
drill all the interns present, on the company, its organization and its core values. During
the meeting, the structure of the internship was elaborated upon. Directions were given on:
 who to contact whenever need arose,
 what ought to be done during the internship period and 
 what was not allowed for interns, as well as the privileges, rights and duties which an
intern was to have in the course of the internship.

Finally, the work expected to be achieved by each intern was defined and explicitly explained.
The rest of the day was allowed for the interns to familiarize themselves with the company’s
environment.

2.2 Department of internship


Go-Groups ltd has several departments as earlier mentioned. This internship was assigned to
be carried out in the technical department, under the supervision of Mr. Nnouka Stephen, one
of the company’s senior software engineers who doubles as the company’s assistant
administrative manager.

2.3 Familiarizing with company technologies and values


The first month of internship, that is from September 2nd to the 30th was spent studying the
company’s technologies, mainly angular 8 and also in getting used to the way things were
done at the company. During the internship period, I started work daily at 8:00am and closed
at 5:00pm from Mondays to Fridays, except on Wednesdays when work ended at 3:00pm
Every Tuesday, meetings were held with the entire staff where I explained the tasks I will be
carrying out during the week. And on Fridays, meetings were again held in which I explained
how I had carried out those tasks and the difficulties faced in executing those tasks.
After a month of studying angular 8, work began on the assigned project. Development of the

4
project was done following the agile methodology of software design and development,
which is illustrated below.

Figure 2. Illustration of the agile software development life cycle (sauterv, 2016)

Every Wednesdays, meetings were held with the internship project’s owner, Mr. Michael
Boyo, with whom details about the project, expected future features and recommendations
and corrections for work already done were discussed on. After such meetings, the
development process either continued with adding new features to the software product or
modifying previously implemented features, to suite the project owner.

This internship project had already been defined and the main internship task was that of
implementing a cash collection and distribution service for one of the company’s new
projects. The project was broken down into stories and each study was further broken down
into executable tasks. These stories and tasks were well documented on Pivotal Tracker, a
project planning tool which encourages the agile methodology (sauterv, 2016). On each day
of internship, 2-4 of such tasks were picked and executed.

5
2.4 Start of Internship Project 1
On 5th October 2020, the first lines of code for the internship project were written. The
development phase started off slowly and with small tasks like changing colors and fonts of
UI elements and modifying form input fields, then gradually steepened to more demanding
tasks like implementing entire modules for given functionalities.

2.4.1 Definition of problem and project goal


After keenly reading the stories documented on pivotal tracker, the following use case
diagram was formulated.

Figure 3. Use case diagram of contribution service

6
These use cases and actors interact as illustrate in the following sequence diagram

Figure 4. Sequence Diagram of Internship project 1

2.5 Envisaged product’s Architecture


The contribution service was built following the Client-Server architecture. The web client
was built in Angular 8 and the Backend Server built with Spring Boot. The Backend server
was designed to interact with some of Go-Group’s microservices.

Service Role
- JWT Authentication Server Handle authorization and authentication of users on
the system. This is JWT based authentication server.
This server issued a private key-public key pair to
the contribution service. Each time a user wanted to
be authenticated or access a protected resource, the
user requested for a token from this authentication
server, then made a request to the contribution
service with the token. The contribution service will

7
verify the validity of the token using its private key
and either grant or deny access to the protected
resource.
- Email Notification Assist in sending designated email notifications to
Microservice system users.

- Payment Aggregator To handle the all contributions made for campaigns.


(PayAmGo)
- File Storage Service To handle storage of receipts of payments made
within the system.
Table 1: Go-Groups micro-services used by cash contribution service

These components and the communication among them are illustrated below.

Figure 5. Product Architecture

The contribution service REST API, written with Spring Boot made use of the following
technologies:
8
- MySQL: MySQL database was the primary storage all REST API’s data, including
contributions and users. It was used in the production environment.
- H2 database: An in-memory database was used as the database of the application in
the development environment (to store data needed to run unit and integration tests).
- JUnit: This framework was employed for writing unit tests in collaboration with
Mockito for mocking dependencies of code while unit testing the contribution service.

2.6 Methodology of realizing project


After having a clear understanding of the project and the features of the product to be built at
the end of the internship period, the development environment was setup. The project
repositories (one for the web interface and another for the backend API) were cloned form
GitLab into the local machine.

2.7 Tools used for implementation


sn Category Name Usage
1. Operating System Ubuntu Installation of IDE’s, database
management systems and package
managers
2. Automation tools bash Write scripts to daily start setup
development environment.
3. IDE Intellij IDEA Write Spring Boot code and tests
for the Contribution service API.
VS Code Write angular code in TypeScript
for the angular web client of the
contribution service.
4. DBMS MYSQL (Workbench) Provide interface to manage
database and entities of the
contribution service
5. Package managers NPM Automatic dependency
installation and management for
the cash contribution Angular web
client.

9
Maven Automate build and management
of dependencies of the Spring
Boot backend API
Table 2: Tools used in project

2.7.1 Implement Backend functionality first


Writing the code for the backend REST API client was done strictly following the Test
Driven Development design pattern. That is daily when tasks were picked from pivotal
tracker to be executed, tests were first written for the functionalities to implement for that day,
following the tasks’ descriptions on pivotal tracker. As such the assurance that a task was
achieved depended on whether or not the tests written for that task passed.

After tests were written, then came time to write the actual REST API code. The code was
continually refactored until all the test cases written passed.

Figure 6. Test Driven Development (vskills, 2015)

When all tasks under a story on pivotal tracker were completed, the code was pushed to
GitLab, this triggered a build process. A Concourse CI server configured for the project by

10
the Technical Manager, Mr. Tanko Edward immediately pulled the code from GitLab, tested
it by running all the tests written at development and deployed the code if all of the tests
passed. If there were any test failures, the build stopped and only resumed when the errors
had been corrected.

2.7.2 Implement corresponding functionalities on web frontend


Once a functionality was implemented on the REST API, the corresponding functionality
was implemented on the angular client of the contribution service. Like the REST API, the
frontend’s code also resided on a GitLab repository (separate from the backend’s repository).
After completing a functionality (a story), the code written was pushed to GitLab from
whence the concourse CI/CD server again pulled the changes, then built and deployed the
frontend application.

This process of writing REST API code, pushing, then writing frontend code and pushing
continued for 2 weeks, after which the project owner, Mr. Michael Boyo would come in to
test and give his comments on what should be done next, or what should be adjusted before
continuing to newer features.

2.8 Suspension of Internship Project 1 and Start of Project 2


On the November 13th 2020, one month after beginning to build the cash contribution service
defined as the main internship project, a request was made by the company’s
Technical Manager, for unit tests and integration tests to be written for a service which had
been built shortly before then. As a result, the development of the previously
defined internship project was suspended and a new task of writing tests for the service
was commenced immediately.

At the time of suspension, on the cash contribution service, a user could:

1. Create a campaign on the system.


2. A created campaign could be approved and as such become active to receive
contributions.

11
2.8.1 Definition of problem
The service for which tests were to be written was a sandbox service for
the PayAmGo payment aggregator which is the major payment aggregator used on
the Go-Student platform. During the internship period, there was hand-full of software
application projects being developed by Go-Groups ltd, which employed PayAmGo to handle
all payments within those applications. Each of these projects was developed following the
agile methodology and so several system tests were performed on those applications, which
in turn put a high overhead on the PayAmGo payment aggregator, as it was
receiving and handling a lot traffic from the development environment. There thus arose a
need to construct a separate service to simulate payment transactions in the development
environment of all company projects and only migrate to the PayAmGo payment aggregator
once the applications under development were completed or were running on the
development server. Evidently, the existence of such a service was very crucial, reason why
work had to be suspended from the previously defined internship project in favor of testing
the PayAmGo sandbox. Also following one of the company’s core values of thoroughly
testing each of their products before putting it to use, whether by the public or internally by
the company’s staff, the sandbox definitely had to be tested and quickly so as not to
hinder the progress of other projects which depended on the PayAmGo payments aggregator.

2.8.2 Phase 1 (writing unit and integration tests for PayAmGo


Sandbox Service)
For the following 2 weeks, (December 1st - December 13th) unit and integration tests were
written for the various modules of the PayAmGo sandbox application, under the supervision
of the Mr. Tanko. The PayAmGo sandbox had been designed following the same API
specifications as the PayAmGo application, so though the API specification document was
not readily available to ease formulating test cases and scenarios, previous experience using
PayAmGo payment aggregator on Go-Student platform was a vital tool in defining test
scenarios and test cases.

The following test plan was created and used in order to effectively and fully test this service.
The test cases are not outlined, but in all, 24 test cases were written.

12
Test Scenario Test Cases Duration Comments
1. Initiating a - Initiating a payment (3days)
payment from an unauthorized
application
- Initiating a payment
from an authorized
application with
inconsistent data
- Initiating payment from
authorized application
with consistent data.
2. Selecting a - (1day)
payment channel
3. Simulating a (2days)
payment
4. Registering (3days)
simulation state
Table 3: Test Cases on PayAmGo Sandbox

As indicated in the plan above, it took 9 working days, to write test cases for the sandbox
service, on the 10th day, the tests were all run together and any bugs picked by the tests were
corrected and the code pushed to GitLab for review and deployment by the technical
manager.

2.8.3 Phase 2 (Improve on user interface of sandbox)


Once the tests were written and validated, a second task was assigned on the PayAmGo
sandbox service still, which was that of embellishing its UI. This took another 2 weeks to be
completed, and by the 28th of December 2020, the PayAmGo sandbox application was ready
for use in simulating PayAmGo payment transactions. This second part of making UI
improvements was a tougher than the previous, given that I had less experience with
designing and implementing UI than with writing tests for applications. None the less, with
the help of Figma and reference to the PayAmGo application, a UI was designed which was
more enhanced than what was initially there at development. After the design was done with

13
Figma, next was the implementation phase. The key technologies used in order to implement
the interface were Spring Boot, Thymeleaf and bootstrap 3.

2.9 Resumption to original internship project


When the sandbox was approved by the project owner after asserting that it met the then
desired specifications, I returned to my initially assigned internship project, which also
depended on the PayAmGo sandbox application as did the company’s other projects. Upon
resumption, my first task was that of integrating the PayAmGo sandbox service to the
contribution service and adding the functionality enabling community members to make
contributions for a campaign. After implementing this functionality, the last phase of this
project was adding a functionality to permit a designated cashier transfer all funds raised for
a campaign to its beneficiary on demand. This phase took the greatest time (about a month)
to complete, owing to the security complications involved on transferring money. And also
the mathematical overhead in managing payment charges involved in the transfers.

2.10 Close of internship project


By February 5th 2021, the required minimal viable product was completed and handed over to
the project owner. From then till the end of the internship period, extensive testing was done
on the product and based on the feedback from him, adjustments were continually made on
the developed system. Daily he we would have testing sessions with him and as he comments,
we note the comments to effect those changes in preparation for the next day of testing.

2.11 Relationship with others


During the internship, I learnt to better get along with the company’s staff, this was
facilitated by the numerous meetings held with them and also the monthly outings. At the
start of internship, I was scared of sharing with them, but as days unfolded, the lead engineers
drew closer and stronger friendship ties began being built with them.

14
Chapter 3: Extracurricular Activities

This internship was not only composed of activities centered around software engineering,
but also included leisure sessions and other educative sessions.

3.1 Monthly outings


Once every month, the interns joined the company’s staff in their outing. These outings were
opportunities for the interns to bond more socially among themselves and with the
company’s staff.

3.2 Working Sessions with Go-Group’s General Manager and


Technical Manager
Working with the General Manager of Go-Groups, Mr. Michael Boyo was a very impactful
experience. Away from the retrospective meetings during which once in a while, he took time
to counsel us, there was a meeting held with him in which he took time to elaborate on
entrepreneurship. I grasped a lot, listening to him explain why some IT startups fail, not long
after they have set out.

There was also a meeting with the Go-Group’s technical manager, Mr. Tanko Edward. He
devoted quality time to talk with each intern. He asked me of my plans as a computer
engineer and helped me make concrete plans as to what to make of my career as a computer
software engineer and how I can effectively manage my time in order to achieve more.

3.3 Lunch and Learn


The company also organized one “Lunch and Learn” session during the internship period.
Lunch and learn is an internal capacity building seminar for all the company’s workers.
During such seminars, one of the staff with some vital lecture which can grow the company
or its employees is given the opportunity to drill the entire company staff with that lecture. I
was privileged to attend one on January 20th 2021. This Lunch and Learn session was based
on “Social Media and branding”. I attended the session and learnt a lot with regards to how to

15
appropriately use social media platforms to expose myself to opportunities as well amass new
skills in the IT domain.

3.4 Social Media Marketing of Go-Waka


In February, I was involved in publicizing one of Go-Group’s latest products, Go-Waka, an
online bus ticketing system. This was a platform to master social media marketing. This
involved sharing fliers and posts about Go-Waka on social media platforms like Facebook,
LinkedIn and WhatsApp. This marketing campaigns were done under the supervision and
direction of the Go-Group’s marketing assistant and customer support departments.

16
Chapter 4: Difficulties and challenges encountered

This internship was a very enriching venture, thanks to both the good moments and the
few challenges encountered. For the most part, it was a smooth internship, since the
company’s staff was always ready to give directions and suggestions each time those were
needed. Notwithstanding, some hurdles were encountered in the course of the internship.
These can be broadly divided into technical related and non-technical related upheavals.

4.1 Technical Challenges


 Handling money in multiple currencies. The project required a vast manipulation of
money in many currencies. Consequently, one of the challenges faced was how to
handle multiple currencies without any errors. Resolving this was proving to be
difficult given the time scheduled to complete to complete the project, so instead of
handling multiple currencies, the scope of the project was reduced to handle only the
XAF for a start.

4.2 Non-Technical challenges


Apart from technical challenges, there were also some few non-technical issues which arose
in the course of the internship. These were:

 I had a hard time getting familiarized with some of Go-Groups ltd’s cultures and
inculcating some of her values like innovation. My approach to solving this was based
on my conviction that getting used to those cultures was difficult because that was the
first time of being such an environment. This approach was that of patiently watching
and imitating and as days went by, the cultures were becoming part me too.
 Poor task reporting skills. At Go-Groups ltd there are weekly meetings at the start and
end of each week, attended by both all staff and all interns. In these meetings each
person tells the entire company body what they achieved for the just ended week or
what they intend achieving for the upcoming week. This was a new practice and my
reports were mostly either incomplete or incomprehensible. To resolve this, I resorted
to paying closer attention to the reports of the company’s staff and following their
approach strictly to structure and present my weekly reports.

17
 The duration of internship was not well understood. When the internship started, I
thought the internship was for 6 months and was to run from September 2020 to
February 2021 ending. But before the end of February, I was called back at schooled.
This brought some confusion between the company’s administration and I.
Subsequently, to solve this, the school administration could rather reduce the
internship period to 5 months, to fit the academic year’s calendar.

18
Chapter 5: Conclusion and Recommendation

In February, the internship came to an end. Although the end of the internship was abrupt, it
was necessary. The expectation was that the internship would end by the end of February,
given that it was to last for six months (beginning from September). Notwithstanding, at the
moment of termination of internship, the goals set for the internship were about 80% attained.

The internship was taken to gain new practical and theoretical skills in engineering while
practicing what had already been gained at school. This was a great success. By the end of the
internship, I had a firm grip on API design and implementation with Spring Boot, database
design and implementation with MySQL, web user interface implementation with angular and
Bootstrap and other soft skills like presentation, assiduity, punctuality and proper time
management. I was also exposed to a great deal of state of the art technologies, including
Docker and Docker Swarm, pivotal tracker and Microsoft teams.

Through these technologies and practice, not only do I have knowledge on software
development life cycles, I can bring a software project from idea to minimal viable product
following the agile methodology of software development. These technologies and skills also
helped me better understand the client-server architecture and consequently I can build and
deploy client-server applications, with clients written in angular 8 or bootstrap and the servers
in Java (Spring Boot).

Conclusively, the stay at Go-Groups ltd was an impactful experience. A lot was learnt, from
essential software design concepts to team etiquettes and a host many other soft skills. And
though there were some challenges, the advice to any person going in for an internship is that
they should prepare their mind that challenges will definitely arise and as such they should be
ready to quickly adaptations to whatever changes may be necessary within the internship
period and in their new environment.

19
References
^. (2016, April 15). Cameroon's high-tech hub. Retrieved December 10, 2020, from
https://www.bbc.com/news/av/business-36054263/cameroon-s-drive-to-become-the-n
ew-home-of-innovation

^. (2018, July 4). What is an internship. Retrieved October 17, 2020, from
https://careers.umbc.edu/employers/internships/what-is-an-internship/

Apastyle.apa.org. (2016). Sample Student Paper. Sample Annotated Student Paper in APA
Style, 1-7. Retrieved February 8, 2021

Benaiah, W. N. (2016). Development of Business Enterprise Resource Planning System.


Internship Report, Buea.

Borno, S. (2016, April 15). Silicon Mountain. Retrieved January 16, 2021, from
https://afrohustler.com/cameroon-silicon-mountain-startups-bbc-world-news-mustwat
ch

Clarkson, E. (2018). Design and implementation of a time table generation system. 8-20.

Go-Groups. (2014, January 1). Go-Groups Website. Retrieved January 5, 2021, from
Go-Groups Website: https://www.go-groups.net

Julien, B. (2014, June 9). It's Here: Docker 1.0. Retrieved February 4, 2021, from
https://blog.docker.com/2014/06/its-here-docker-1-0

Nico, T. P. (2020). Internship report at Go-Groups Buea. Buea.

Nkwetta, A. J. (2016). A report on a two month internship at camtel kumba. Buea.

Phillip, W., Dave, S., Josh, L., Stephane, N., Rob, W., Andy, W., . . . Scot, F. (2012). Spring
Boot Reference Documentation.

sauterv. (2016, June 3). Agile Methodology and System Analysis. Retrieved January 10, 2021,
from umsel.edu: https://www.umsl.edu/~sauterv/analysis/Agile Methodology and
System Analysis.htm

Spring. (2017, August 1). docs.spring.io. Retrieved February 8, 2021, from docs.spring.io:
https://docs.spring.io/spring-framework/docs/current/reference/pdf/testing.pdf

vskills. (2015, October 8). Understanding TDD. Retrieved January 22, 2021, from vskills.in:
htts://www.vskills.in/certification/tutorial/tdd-2

20
Appendices
- Silicon Mountain: Name referring to the ecosystem of IT startups and companies in
and around the Fako Division of Buea. (Borno, 2016)
- Docker: A set of platform as a service products that use OS level virtualization to
deliver software in packages called containers. (Julien, 2014)
- Docker swarm: A Docker container orchestration tool allowing for the management
of containers deployed across multiple machines

21

You might also like