Internship Cover Combined
Internship Cover Combined
Internship Cover Combined
INTERNSHIP REPORTS
BY:
AFRIITECH Bamenda.
Name of supervisors:
1
TABLE OF CONTENTS:
ACKNOWLEDGMENTS. .................................................................................................................................. 1
TABLE OF CONTENTS: ................................................................................................................................... 2
SUMMARY. .................................................................................................................................................... 1
CHAPTER 1: ................................................................................................................................................... 2
1.1. Introduction. ................................................................................................................................. 2
1.2. Brief history and details of the Organization. ............................................................................... 2
1.3. Objectives of Internship. ............................................................................................................... 2
CHAPTER 2: ................................................................................................................................................... 4
2.1. Description of Internship and Activities........................................................................................ 4
2.2. Major projects carried out. ........................................................................................................... 4
2.3. Web programming; Tic tac toe game and Snake game. ............................................................... 7
CHAPTER 3: ................................................................................................................................................... 9
3.1. Problems faced during internship and General Observation. ...................................................... 9
3.2. Recommendations. ....................................................................................................................... 9
CONCLUSION............................................................................................................................................... 10
REFERENCES. ............................................................................................................................................... 11
2
SUMMARY.
This is a report on my Internship at AFRIITECH Cameroon during the holidays. This report does
not detail the activities which were carried out daily, rather it gives an overview of my
accomplishments and what I learned over the course of the internship.
1
CHAPTER 1:
1.1. Introduction.
Going on internship is a chance for every student to go out to an institution and apply what they
learn in school in a real world. It is a chance to get acquainted with how companies carry out their
day-to-day tasks and get hands on experience on how the job market is like, while gathering
enough experience.
Internship also lets you:
● Work in a professional environment.
● Enhance my skills and abilities.
● Help to find my areas of interest.
● Increase my level of confidence.
● Gain hands on experience
● Build good networks.
● Knowing and working with people who share the same interest and vision.
● Enhancing Career opportunities.
On this occasion, I had the chance to carry out my internship at AFRIITECH (African Institute for
Information Technology).
1.2. Brief history and details of the Organization.
AFRIITECH is a subsidiary company of Further Solutions Group. It was founded in 2008. Further
Solutions Group has as its mission to help business executives get the most out of their technology
investments. Further solutions Group offers services such as Security Management, Network
Security and firewall installation, Web Services, Database management.
AFRIITECH as a school under Further Solutions Group undergo courses for those interested in
learning. The carryout IT Certification programs such as Computerized accounting, Graphics
designing, web design and development. Professional Certifications such as; Ethical Hacking and
Counter measures, Oracle e business, Oracle database and ministration, Big data and internet of
things, CISCO certified network associate/Professional, Microsoft Dot net programming and many
others.
Reputation.
Further Solutions Group is a well-established organization. In its 11 years of existence, it has
managed to partner with major tech giants such as CISCO, Microsoft, Oracle, and many others.
They also have training contracts with some large companies in and around the country such as.
CAMCULL, BAPCCUL, CATTUC, PERENCO, International Labour Organization.
2
However, the objectives were modified during my time at AFRIITECH as we had covered quite little in
school to be able to apply them. So, the internship was another learning curve, though in a different
direction. Different direction in the sense that we got tutoring from people who were already workers,
so I learned much about what I need to fit in the technology world.
3
CHAPTER 2:
2.1. Description of Internship and Activities.
I was on internship with about 40 other interns. There we were separated into two groups. The
networking students and the Programming students. I was in the programming section. While we
didn’t go out and carry out many real solutions for organizations, I certainly did learn a lot during
my time at AFRIITECH. So, it was more of an all-round study schedule and no outdoor tasks for
organizations, but I did complete some individual project there.
We had a timetable which was adequately followed. 4 General courses were covered namely:
● Oracle Database Management Systems
● Excel VBA Programming
● Web development and design
● Software Programming (Dot net programming with C sharp).
Unfortunately, not enough was covered during my time there due to certain uncontrollable
challenges such as occasional lockdowns and so on.
Nonetheless, tasks were assigned to us, and I managed to complete most if not all.
Some tasks which we carried out included A stock management system using excel VBA, building
a calculator using c sharp and some graphical user interface, some websites mimic, and a simple
snake game using html CSS and JavaScript.
Going to AFRIITECH knowing nothing about Excel VBA and C Sharp but being able to
accomplish the above tasks, is a testament to the work which I did there and how much I learned
during my time there.
2.2. Major projects carried out.
As Previously Stated, we were assigned about 5 major projects to carry out. Below is a brief review
of my work.
1. Excel VBA Stock Management System.
We were tasked here to create a system for a small stock management store using Excel
VBA. The system was to contain a stock in section where the storekeeper inputs new
products with their unique product ids, A stock out system which will manage which
products have been bought and how much of each product is left in stock,
4
Figure A
Figure B
Figure C
Figure 3: C is the stock list page where the products in the database are stored.
5
Figure 4: the database which contains the items which are Figure 5: the supplies database which holds
currently in stock. information about all the shops suppliers.
Figure D is the database which contains the items which are currently in stock.
Figure E is the supplies database which holds information about all the shops suppliers.
The above images are just a few images of the resulting outcome of my work with excel VBA.
However, the project was not complete due to certain circumstances.
2. Graphical user interface (GUI) Calculator with Microsoft C Sharp and Dot Net
Framework.
At AFRIITECH we were introduced to the C sharp programming language with the
powerful Microsoft dot net framework. We used the visual studio IDE to write, compile
and run our programs. The main project we had to do in this domain was to make a smart
GUI calculator which I did. Some of the images of the calculator are displayed below.
6
Figure (Figure G).
Figure G
It is quite unfortunate that I was unable to
complete the whole module for the analog
build which is just a subset of the digital
calculator.
Figure F Figure G
Figure6: F shows the digital calculator with an analogue switch which Figure 7: shows a supposed analogue calculator with an
when toggles, display the analogue calculator error message on display.
Figure H
Figure I
7
Figure J Figure K
Then the next task was the tic-tac toe game. Quite popular game where there are two distinct
characters in a mostly 3 by 3 matrix like format. They play until one user has a string of 3 of the
same characters in a row of column, that user wins. Let’s see how it is like.
Figure L Figure M
Figure 3: part of the source code for tic-tac toe game. Figure 4: tic-tac toe game running.
8
CHAPTER 3:
3.1. Problems faced during internship and General Observation.
I had a general observation of AFRIITECH which was all good. The environment was quite neat,
quiet and user friendly, having very neat and accessible toilets. We cleaned our classroom/lab
every weekend which made the environment neat and health. Also, there was a constant supply of
electricity at AFRIITECH due to the presence of their standby generator in case of power failure.
There were slight concerns like the supervisors being unclear in their instructions sometimes.
Challenges were also present, like the 3 weeks lockdown period. Those issues are only slight and
didn’t cause a major problem though.
3.2. Recommendations.
I would recommend for the school to put more emphasis on the practical part of studies as we went
into the internship without ever visiting a lab in school. That made it hard for us to be really helpful
and productive to the organization.
9
CONCLUSION
Overall, I enjoyed my time on internship. It was a time where I met new people which we
bonded together to help each other grow in the tech world. Learning the power of our everyday
computer applications like MS Excel is something I would probably not have had an idea on just
yet, if not for AFRIITECH. The working experiences shared by our supervisors too was very
inspiring and it only pushed me to work harder. Learning a new and modern programming
language too was a big plus for me. Then very important, little tips given us by our supervisors
will go a long way in helping and inspiring me more. I would say, even though I didn’t complete
most of my main projects while on internship, the internship as a whole was a big Success for me.
10
REFERENCES.
Websites
11
SECTION B:
YEAR TWO
REPUBLIC OF CAMEROON REPUBLIQUE DU CAMEROUN
GO-IMMIGRATION GO-IMMIGRATION
TOPIC:
CUSTOMER MANAGEMENT SYSTEM USING A
WEB APPLICATION
i
DEDICATION
I dedicate this first to the God almighty for always being by my side, to my father for
the financial and moral support, to my mother, friends and rest of the family.
ii
ACKNOLEDGEMENT
It is popularly said that one that one cannot tie a bundle. A report of this nature cannot
be realized by myself but with the assistance of others.
It will be very wrong to be ungrateful about all the efforts that people around me put in
support given me throughout my internship. This academic work could not be done
solely by personals efforts. For these reasons, my sincere gratitude goes to the following
personalities who have been a moral or financial assistance towards the success of this
academic internship:
- The almighty God who gave me strength and courage
- The head of department of computer engineering of NAHPI of the university of
Bamenda Dr. NDUKUM Pascaline
- The CEO of Go – Immigration for accepted me in the structure.
iii
TABLE OF FIGURES
iv
EXECUTIVE SUMMARY
The internship was carried out at Go-Immigration Yaoundé from the 09th August to the
2nd of October in the frame work of my training at NAHPI Bamenda. The internship
had as term CUSTOMER MANAGEMENT SYSTEM USING A WEB
APPLICATION. During my internship, work was done at the Go-Immigration office,
in which main role was to understand how the structure works and to which personnel
it was linked. All through the internship effort has been made to put in practice some
theoretical notions that have been learned both at school and during research at home
and on the field. This report subdivided into three chapters. In the first chapter the
enterprise is presented as a whole, the hierarchy and how they interact, the second
chapter summarizes the weekly activities that have been done during the internship, last
but not least chapter three talking about presents researches and solutions that were
encountered.
v
CHAPTER 1: OVERVIEW OF THE ORGANIZATION
1.1 INTRODUCTION
Internship is offered by company across the year to enable young or less experience
individuals to enable them to learn and judge their interest capabilities and capacity in
a chosen professional area. Internship gives the opportunity to understand how
experience is acquire through services. It trains students to do a particular job over and
over, and it is by doing a piece of work continuously that experience is acquired.
Exposes students in terms of interaction and concentration to a broader scope. It also
links you to a better future based on more persons that you may be able to interact with.
In the lines that follow we’ll be discussing about the company organization and history.
1
OBJECTIVES OF GO IMMIGRATION
- Allow candidates to know their possibility of obtaining their travel document in a
reliable, complete and fast way.
- Provide our candidates with available and competent staff in order to satisfy the
client.
- Provide as much information as possible to our customers so that they can choose
the most advantageous destination.
- Be transparent in all the actions taken on your file thanks to a technology that inform
the customer in real time of all the actions carried out in his file.
- Set reasonable fees for irreproachable quality of service.
- Help the client in his new destination to adapt to the new and foreign environment.
CONTACT US
Located in the heart of the city of Yaoundé a few meters from the central post office,
adjacent the tax building opposite Montesquieu College Mvog-Ada.
Phone: (237) 699 827 207
OUR SERVICES
Canada
Full procedure for applying for Temporary Residence.
- student study permit, with or without scholarship
- Student work permit
- Application for temporary residence for tourists
- Application for temporary residence for workers
Application for permanent residence
- Permanent residence in Quebec
- Permanent residence through the Express Entry channel
- Family reunion
Other services
- Make an appointment at the CRDV
- Submission of various online requests
- Equivalence of diplomas
- Comparative evaluation
US
2
- Full student and visitor visa application process
- Making appointments,
- Invitation
- Scholarships
EUROPE
- Complete short / long stay visa application procedure
- Baccalaureate equivalence
- invitations
ASIA
- Complete short / long stay visa application procedure
- invitations
- Scholarships
What we can bring you with our working method
- The first service we can provide you with is to inform you of the percentage chance
that your procedure will be successful, through the evaluation of your profile. This
evaluation is crucial, it takes 48 working hours. It is the first step in our
collaboration.
- Our services range from the assessment of your chances of obtaining the visa, to
reception in the country of destination, through the complete preparation of the
file.
Fees and terms of payment
- The fixed fees depend on the type of visa requested and the country of destination.
They are paid in installments.
- Payment is made either by bank transfer, transfer or cash. Bank details will be
given to you when signing the contract.
Our destinations
- Canada. _ For this destination, the different possible applications are: permanent
residence, temporary resident visa application, study permit, student work permit,
asylum application.
- The countries of the Schengen zone, USA, China, Turkey, Morocco, Tunisia.
For this area, we process visa applications for students, for tourists, for traders.
- It should be noted that all of these destinations for students offer scholarship
opportunities. We are a great help for applicants
3
4
Selection Of Canadian Immigrants
Before explaining the process, we must begin by defining what immigration means for
Canada. We will do this by explaining what Canadian policy is in this area.
Thereafter, we will explain to you the immigrant selection process, the two laws that
govern this selection, the different categories of candidates, as well as the evaluated
criteria.
You will then be able to understand how the selection of immigrants is carried out by
the government authorities and will have the answers to the questions that we are most
often asked in our practice or during our conferences. Canada is a country that
encourages immigration. For several years, the objective has been around 250,000
immigrants per year (this is a global quota, because there is no quota per country). For
2007, this objective is also 250,000 people. These data only include people who obtain
permanent residence. Those who only come to work or study are not counted.
To highlight these figures, it should be noted that this means that one new immigrant
arrives each year for every 150 Canadians, or nearly 0.75% of the total population.
This therefore demonstrates a real government desire to increase the number of
inhabitants of Canada, in order to allow better economic and social development of
the country. Indeed, Canada is a larger country than the United States, but has almost
ten times fewer inhabitants.
Even if the immigration policy is favorable, Canada does not allow anyone interested
to settle on its territory. Indeed, the number of applications greatly exceeds the
possibilities of acceptance, since the country must be able to absorb and promote the
integration of a good number of new inhabitants each year.
It is for this reason that selection grids have been developed. Thus, the candidates are
chosen according to a set of criteria, corresponding to the needs of the country. These
selection grids, as we will see in detail later, have the particularity of being clear,
objective and above all, of applying in the same way to all candidates, regardless of
5
their country of origin. Indeed, in its Immigration Act, Canada guarantees to persons
seeking permanent admission to the country the objective processing of their
application, in accordance with the provisions of the Canadian Charter of Rights and
Freedoms.
There are two different laws that govern the selection of immigrants to Canada. Under
an agreement with the federal government, the province of Quebec was able to
develop its own law, as well as its own selection criteria, for immigrants destined for
its territory.
For the rest of the country, federal la w applies. It is therefore the candidate's intended
place of residence that will determine the selection grid that will apply to their file.
The selection criteria and their weighting are different from one law to another. It is
therefore not uncommon for a candidate to have a positive file under Quebec law,
while his file is negative under federal law and vice versa.
In addition, each of the two laws allows the candidate to choose the category under
which he wishes to be evaluated. The applicant is also free to determine who, husband
or wife, will act as principal applicant.
Hence the importance of the preliminary report that we write for each potential
candidate since it takes all this data into account.
Eligibility conditions
Note that there are three essential eligibility conditions which, if not met, will cause
the rejection of the candidate's immigration file, regardless of the excellent score
obtained under the selection grids:
1. Record Criminal record:
Any criminal record leads to a systematic refusal of the immigration application.
There are certain nuances if the offenses go back more than 5 years or if the
offenses are punishable by way of summary proceedings. By explaining the case in
detail in the questionnaire for report, we will be able to assess the cases accurately
taking into account these nuances.
2. State of health:
The candidate, as well as his dependents, must not suffer from any serious or
contagious disease. A medical examination is required on this subject after
acceptance of the file. Doubts about this or that disease? By explaining the case in
detail in the report questionnaire, we can assess the situation or refer you to a
licensed physician before your procedure begins.
6
3. Living expenses:
The candidate must arrive in Canada with a sum of money allowing him to meet
his needs, as well as those of his dependents, during the first 3 or 6 months of his
installation. This sum varies according to the number of dependents, as well as the
intended place of residence (the report that we give to our clients indicates the
exact sum required).
4. Government fees
a. Government fees for immigration applications are not the same for Quebec and
for Canada. Indeed, the fees required by the Canadian government are always
payable, regardless of the intended place of residence (Quebec or other), while
the fees required by the Quebec government are only payable for applications
whose intended place of residence is located in Quebec.
Thus, for an application destined for Quebec, you will have to pay the Quebec
government fees when the application is submitted and, after acceptance, pay
the application processing and landing fees to the Canadian government. Please
note that business class fees are slightly higher.
b. Canadian government fees:
Non-refundable fees payable when the application is submitted: $825 per adult
and $225.00 per child under nineteen.
c. Landing fee: Fee payable after acceptance: $500 per adult and no fee for
children.
5. Info-Immigration
Did you know that both the Quebec law and the Canadian law allow the candidate
to choose the best category applicable to his situation? There are 3 categories and 4
different sub-categories. We make this choice with you before submitting your
application.
Do you know that the laws of Quebec and Canada allow the candidate to choose
the profession that will benefit him the most among all those he has occupied
during his professional career? We make this choice with you before submitting
your application.
Did you know that to immigrate to Quebec or Canada you must have a sum of
money to meet your needs during the first months of your arrival? This minimum
amount varies according to the jurisdiction (Quebec or federal), the region of
settlement and the number of dependents. Your report will establish the necessary
amounts applicable to your situation.
Did you know that the only disqualifying factors for an application intended for
7
Quebec are the absence of a high school diploma and/or the fact of not having the
minimum amount required to ensure your financial autonomy? Age, English or
celibacy are therefore not disqualifying factors.
Do you know that, through us, you avoid the pre-selection stage required by the
authorities? Indeed, we can go directly to the filing of your official request. You
save months on the duration of your immigration procedure.
Do you know that we have established our fees so that no financial compromise
affects the processing of files? We are however among the cheapest!
Do you know that the vast majority of people who immigrate to Canada have
never been here and have no family here? They come to work there and settle there
permanently. We provide installation guides for most parts of the country.
Did you know that in the event of a refusal, you have a very short time to contest
the decision and request a review? Through us, our lawyers deal with it by
invoking relevant legal arguments. No additional fees are required.
Do you know that case law has authorized the splitting of the tasks of a profession
in order to determine others, inherent or included, which would allow the
candidate to be accepted? We determine these professions from your file before
submitting your application.
Do you know that it was following the presentation to the National Assembly of
Quebec of a brief in parliamentary committee by the leaders of ACCESS
CANADA that the long delays for the Maghreb, then in force, were denounced by
the media and that this resulted in the minister's undertaking to correct the
situation?
Did you know that the selection of immigrants by Quebec and by Canada is done
by a system of points awarded on objective factors? Often, a few tips can improve
or make a case positive. We give you all this advice before submitting your
application.
8
all the relevant advice to increase the score of your file.
Do you know that outside Quebec, there are economically prosperous francophone
regions that are looking for immigrants? This is an interesting alternative to better
choose your place of installation. We provide all the information and
documentation required in this regard.
Did you know that since the implementation in March 2012 of the selection based
on the area of training, the Quebec Ministry of Immigration has returned nearly
10,000 files to their sender? Nothing beats an experienced firm.
Do you know that given the number of files that Quebec receives; the decision was
made to return to the sender any file deemed incomplete? This return is made by
ordinary mail from Canada to the country of origin despite all the risks of loss of
important documents. With us, all your mail arrives in Canada!
The evaluation of all these criteria makes it possible to obtain a total. If this total
exceeds the minimum threshold provided for the candidate's category, the
candidate is accepted. If the total is not sufficient, it will be refused.
1. Skilled workers:
These are people who want to settle permanently in Canada to work, but who do not
have no family in the country. These candidates must obtain 67 points out of a
potential of 100 points. The criterion of demand in the profession is no longer
decisive.
If so, then there is a second assessment we do against the Express Entry program
selection grid. This grid makes it possible to obtain a total. If your total offers
possibilities, then we must have your diploma assessed by an accredited Canadian body
9
and you must pass the language tests required by the federal government. For the
Federal it is the TEF or the IELTS (also valid for Quebec) which are to be passed for
the 4 skills: Comprehension, Speaking, Writing and Reading. Once this is done, we
submit your profile and wait for an extraction of candidates to be favorable to you.
Since June 2017, this program has been modified for the benefit of French speakers.
Thus, a person with a perfect command of French, having a good diploma and aged
between 18 and 36 could have every chance in this selection sub-grid evaluated on 1200
points.
The Ministry of Immigration then carries out monthly extractions for several thousand
files each time. According to file extractions for the last 6 months of 2017, you need to
obtain nearly 435 points to be selected. Each profile is obviously different but your
initial report will contain the analysis of this selection sub-grid and the number of points
at which you arrive. You will thus know precisely your chances of acceptance under
this program.
A file submitted under this program remains in the Department's file bank for one (1)
year and it should be noted that federal government fees will only be payable if the file
is selected.
When a candidate is selected, he must then provide the requested documents within 60
days and then undergo his medical examinations and security screening.
2. Assisted Relatives:
These applicants are in the same situation as independent immigrants, but have a close
relative living in Canada. They must get 67 points out of a potential 100 points.
3. Self-employed:
These people will come to Canada to make a significant contribution to cultural,
sporting or artistic life, or they may also be cases of industrialized farmers.
4. Entrepreneurs:
These are candidates wishing to settle in Canada to create or buy a business or a
business employing approximately two employees, other than themselves and their
dependents. A minimum asset of $300,000.00 is required. This type of permanent
resident visa is conditional on the completion of the business project within a
given period of time.
5. Investors:
These candidates will come to invest in Canada, passively, which implies that they
will have neither a business project to present nor a company to create. This
subcategory allows for the simplest acceptance of all. To enter this category, a
candidate must hold, and not invest, assets greater than C$800,000 and have 3 years of
management experience, either on their own account or as an executive.
Criteria
10
(applicable for the sub-category of skilled immigrant workers and assisted parents):
The criteria and their maximum weighting are listed below. You will notice that there
is only one eliminating factor, experience, which must be at least one year. All other
criteria are not eliminatory. That is why, for example, immigrants can arrive in
Canada without speaking English or French, if they obtain their points through the
other criteria. It should be noted that unlike the following Quebec evaluation grid, the
federal government evaluates single and married people in the same way:
1. Education on 25 points: This is the educational level reached by the candidate. All
types of degrees and academic diplomas are provided for in the regulations and each
of them receives a specific score.
2. Experience out of 25 points: This is the number of years of experience that the
candidate has accumulated in the profession mentioned, with a minimum level of 0, A
or B according to the National Classification of Professions.
3. Age out of 10 points: The candidate will receive 0 to 10 points for this criterion,
depending on whether or not they are in the age group considered ideal. It is not a
disqualifying factor. Thus, even if the candidate falls completely outside the age group
considered ideal, his candidacy may be accepted provided that he succeeds in
accumulating his points according to the other criteria.
4. Languages out of 20 points: Canada evaluates the country's two official languages
equally, namely French and English, regardless of the intended place of residence.
Both languages are therefore treated on an equal footing. The candidate will only
indicate the language with which he feels most comfortable and it is the latter which
will serve as the basis for the evaluation of his linguistic knowledge.
5. Reserved professions with validation on 10 points: These are the rare cases
where the foreign candidate holds an assured job, validated by the Canadian
government authorities.
11
The system is based on the same principle as at the federal level. The law determines
categories and sub-categories of immigrants, each including selection criteria. The
criteria may vary and the points thresholds to be reached are different. For Quebec, the
eliminatory criterion concerns certain types of employment.
1. Skilled workers: These candidates come to Quebec to live and work there. They
must obtain, if they are single, 50 points out of 99 and, if they are married, 59 points
out of 116, since the characteristics of the spouse are evaluated. So, there is no
advantage or disadvantage of being married or single. Candidates with close relatives
in Quebec are evaluated according to the same criteria as independents.
2. Self-employed: These candidates will come to Quebec with the aim of creating
their own job in their trade or profession. They must obtain 44 points out of 81 if they
are single or 51 out of 93 if they are married and must submit a detailed business plan.
4. Investors: These applicants must score 40 points out of 92, regardless of whether
they are married or not. All of their assets (and not the investment) are over
$1,600,000 and they will invest in Quebec passively (without a business to create and
a business project to justify). Through us, it is possible to proceed with a minimum
down payment. We provide, if necessary, more details on this category to people who
request it by fax or telephone.
2. The experience, evaluated on 8 points, must have been acquired within the
framework of an eligible job. It should however be noted that in some cases we can
12
add all the internships and work experiences while in others we must limit ourselves
to very specific periods, certain internships can also be excluded.
5. The candidate's financial autonomy, assessed on only 1 point, is one of the most
important criteria of the entire selection grid since it is eliminatory. In fact, if the
amount declared by the candidate is not sufficient in relation to the minimum set by
the government or if the proof of assets is not satisfactory, the candidate's application
will be automatically rejected even if the whole of his record is excellent. Note that
this amount varies according to the number of dependents and their age.
10. The characteristics of the candidate's spouse is the last criterion of the selection
grid. Out of a maximum of 17 points, it evaluates the spouse's level of French, his
diplomas and his age. For business people (self-employed workers, entrepreneurs and
investors),
11. Validated job offers: Up to 10 points are awarded for this criterion which,
however, affects a very small proportion of candidates.
13
OUR general PROCEDURE
Once the evaluation form has been completed by the candidate via one of the links on
the site go-immigration.com, we assess their profile according to the immigration
programs that are in force in order to determine their eligibility for immigration to one
of our destination countries.
We call the candidate for additional information and to inform him of his eligibility.
If the candidate is eligible, we invite him for a physical or telephone interview with the
consultant, after registration.
At the end of the interview, the candidate will have to make the choice that suits him as
to the immigration program to start.
Finally, the contract will be signed between the firm and the candidate, and the actual
procedure can therefore begin.
14
CHAPTER 2: INTERNSHIP
In this chapter, the different phases of progression of the internship and the impact of
this internship on the training will be presented. Working hours during the internship
were from 9am to 3pm Mondays to Fridays.
2.1 Welcome and Training
We w welcomed and oriented by Mme. OBAME William. They told us what was
required from us by the end of the internship.
In some few days, about a week, we got how the company works and how does each
post interact with the other. Understanding the company was very necessary since we
had to build a software to automate some tasks carried out in the company.
The internship ran 9 hours per days from 8am to 5pm over a period of 2 months from
Monday to Friday. Period during which I was able to acquire more knowledge and apply
on the field all what I got in school.
2.2 Presentation of the IT department
2.2.1 Missions
The IT department as part of its missions is full of many attributes and activities that
have the objectives of:
• Promote and restore the image of Go Immigration;
• Manage IT systems
• Develop and operate postal networks and services
• Guarantee the universal postal service.
2.2.2 Activities of the IT Department
The Go Immigration company is one with a small IT department, not many computers
and equipment recorded. At the IT department we work on client’s files as follows:
- Applying for visa
- Scholarship application
- House and schools searching and much more…
2.2.3 Tasks performed
As aim for this internship we had to automate many of the previous listed tasks. This
said aim included automates emails depending on the customers status, a user account
to help him follow his progress on his own, filtering customers in the database using
different or several fields like name, date of registration, newest, type of customer (On
our customer type we had students, workers and tourist) and customer registration.
Filtering our customers email so as to remove spam and sort out the content, in addition
to all that is the availability of the platform on all platforms say mobile, desktop through
the web interface.
15
2.3 Training Program
The training at Go Immigration was interesting and educative. Below I’ll state the
internship progress for each week. This includes the following:
➢ Week One (1): from 2nd to 6th August
- Getting use to Go Immigration environment and office.
- Meeting the chief of services and CEO.
- Presentation of the room(workshop) designated to intern’s work.
- Impregnation in security, quality and environment.
- The first week of our internship has allowed impregnating me to the different
activities.
- During this week, we were presented to the office personalities and we had talks
about different things done.
➢ Week Two (2): from 09th to the 13th of August
This week has been the starting point of the internship practical work after the
knowledge gained from the first week with the presentation of Go Immigration staff.
During this period, I was given a mentor for better guidance on the field and of
course and explanation of the task which by then I was still to make myself
comfortable to the environment. I collected enough data from their archives both
physical and numerical. What followed was analysis of this data and trying to guess
the path or route the customers followed over the past five (5) years.
➢ Week Three (3): from 16th to the 20th of August
This week we started working on the databases and logic of entities interaction for
the Web application development for the management customer service at Go
Immigration. We tough about different ways we can implement the structure and
path in which customers of Go Immigration move, from the opening of their files
through their flight to their reception and living abroad. During this week I made
use of the OOP (Object Oriented Programming) concepts I learned during my stay
on campus, some of which included inheritance, encapsulation, polymorphism,
aggregation and much more.
➢ Week Four (4): from 23th to the 27th of August
Here we enter into the fourth week of me as an intern at Go Immigration. We got to
the point of implementation of the application. Including the following: - Creation
of a use case and class diagram - State diagram - Decision for the appropriate
framework and technologies to use for the production, then we used python, HTML,
CSS, SASS, JavaScript followed by Django and Vue.js as frameworks then
PyCharm and visual studio code as IDE (Integrated development environment).
Sone of the UML (Unified Modelling Language) exiting diagrams where drawn
during this week. Sone of these diagrams are seen below:
16
Figure 1: Working on the class diagram on draw.io
17
➢ Week Five (5): from 30th of August to the 03rd of September
Front end development of the web application using HTML (Hypertext Markup
Language) and CSS together with SASS and JavaScript. I designed about 17 full
Django templates for the dynamic content display directly from the database. My
Django templates folder, as it is in directory.
18
version existing by the time this report was written), python 3.9 and PyCharm
professional as main IDE.
Django models(database) making! Django models is a simple way for us to write SQL
statement to our database which instantly generates database tables with every proper
configuration done by default by the Django framework.
Verifications and tests were made on the finished product. I used tests and try-except
functions to limit and reduce errors, together with managing server errors and unknown
URLS forwarding to a 404 Page. That took a while because I had to make some few
researches on the way to do. My references and work came from Stack Overflow
website which was of a great help.
Figure 6: An example of errors to be managed in Django (The default Django framework 404 page)
19
➢ Week Eight (8): from 20th to the 24th of September
This week was for me to deploy the full functional app on Heroku website which
is one of the best websites when it comes to dynamic web applications deployment in
languages like: JavaScript, Java, Python and many others on which I have a reduce
knowledge.
20
Figure 8: Search Result interface for the Goim Django Application
21
Figure 10: Sending emails to all customers
22
Figure 12: User profile
23
Figure 14: customer registration process
24
Figure 16: Company user dashboard with customers variation
25
Figure 18: Home page
26
CHAPTER 3: LEARNING OUTCOMES
27
CHAPTER 4: RECOMMANDATION
28
CONCLUSION
This report presents on one hand the activities carried out during my internship at G
Immigration and on the other hand the solution to problems of repetitive tasks carried
out which was the software. The internship undertaken at Go Immigration has allowed
me to impregnate with realities of the enterprise.
1.3 I Liked or Disliked
Likes
- The fact that when the proprietor gives orders to the employees, the orders are
strictly respected.
- With the payment of workers, the proprietor does that on time. This therefore
encourage workers not to quit their jobs.
Disliked
- I disliked the punctuality of some workers; I think some feel too comfortable.
29
SECTION C:
YEAR THREE
REPUBLIC OF CAMEROON REPUBLIQUE DU CAMEROUN
Peace – work - fatherland Paix – travail - patrie
0 UNIVERSITY OF BAMENDA
THE L’UNIVERSITE DE BAMENDA
NATIONAL HIGHER POLYTECHNIC INSTITUTE SUPERIEUR DE
INSTITUTE POLYTECHNIQUE DE BAMENDA
OSSCAMEROON OSSCAMEROON
1
TABLE OF CONTENTS
DEDICATION................................................................................................................ 2
ACKNOWLEDGEMENT .............................................................................................. 3
TABLE OF FIGURES.................................................................................................... 4
EXECUTIVE SUMMARY ............................................................................................ 5
CHAPTER 1: OVERVIEW OF ORGANISATION ...................................................... 1
INTRODUCTION ...................................................................................................... 1
VISION ....................................................................................................................... 1
GOALS ....................................................................................................................... 1
LONG TERM MEASURABLE GOALS .................................................................. 2
CHAPTER 2: INTERNSHIP ......................................................................................... 3
2.1. OBJECTIVES ................................................................................................... 3
2.2. TOOLS AND TECHNOLOGIES..................................................................... 3
2.3. PROJECTS WE WORKED ON ....................................................................... 6
2.4. WELCOME AND TRAINING ........................................................................ 9
2.5. TRAINING PROGRAM .................................................................................. 9
CHAPTER 3: LEARNING OUTCOMES ................................................................... 29
3.1. PERSONAL EXPERIENCES ........................................................................ 29
3.2. PROFESSIONAL’S EXPERIENCES ............................................................ 29
CHAPTER 4: RECOMMANDATION ........................................................................ 30
4.1. AT THE LEVEL OF OSS CAMEROON ...................................................... 30
4.2. AT THE LEVEL OF NAHPI MY SCHOOL AT UNIVERSITY OF
BAMENDA. ............................................................................................................. 30
APPENDIX .................................................................................................................. 31
CONCLUSION ............................................................................................................ 34
1
DEDICATION
I dedicate this first to the God almighty for always being by my side, to my father
for the financial and moral support, to my mother, friends and rest of the family.
2
ACKNOWLEDGEMENT
It is popularly said that one cannot tie a bundle. A report of this nature cannot be
realised by myself but with the assistance of others.
It will be very wrong to be ungrateful about all the efforts that people around me
put in support given me throughout my internship. This academic work could not
be done solely by personal efforts. For these reasons, my sincere gratitude goes
to the following personalities who have been a moral or financial assistance
towards the success of this academic internship:
- The almighty God who gave me strength and courage
- The head of department of computer engineering of NAHPI of the university
of Bamenda Dr. NDUKUM Pascaline
- The CEO of OSS CAMEROON for accepting me in the structure.
3
TABLE OF FIGURES
Figure 1: illustration of points having power failure ............................................ 8
Figure 2: OSS Cameroon building face ................................................................ 9
Figure 3: installing of NodeJs ............................................................................. 11
Figure 4: Downloading from the apt direrctory .................................................. 11
Figure 5: Checking the node version .................................................................. 12
Figure 6: Final view of the podcast..................................................................... 12
Figure 7: code inspection with the tablet device resolution .............................. 31
Figure 8: Search bar under development ............................................................ 31
Figure 9: podcast controller implementation ...................................................... 31
Figure 10: Signaling a power failure through OnACut ...................................... 32
Figure 11: Power failure areas across the Cameroon Teritory ........................... 32
Figure 12: Display of recent power failures in Cameroon ................................. 33
Figure 13: Language translation features implemented successfully ................. 33
4
EXECUTIVE SUMMARY
The internship was carried out at OSS CAMEROON from 1 st March to 31st
August 2022. My internship focus was on the different ways of building softwares
and focusing on the help it can provide to society. In short, I worked on the use
of open source software to solve problems faced by the community.
5
CHAPTER 1: OVERVIEW OF ORGANISATION
INTRODUCTION
OSS Cameroon in its full meaning Open Source Society of Cameroon is an
NGO (Non-Governmental Organisation), a non-profit organisation and an open
source community driven by Cameroonian developers. It was founded in 2018
by five (5) Cameroonians residing in and out of Cameroon. Over the years it has
become a community of over 600 members (Cameroonian developers) who
have come together to help each other excel in their careers and build solutions
to help the community.
Their main goal is to improve the lives of individual members of the society by
reinforcing Cameroonian developers to take up the habit of contributing to
open-source projects and technologies, especially projects with the potential to
enhance the quality of life for our local community. They also promote
mentorship, collaboration and knowledge sharing and ensure a joyful
environment for developers to put their best skill in the service of the society.
VISION
Most of the fields of activity contain a set of problems which can mainly be
solved by Information and Communication Technologies. Our country is
developing, it has a strong need for skills in technical sectors, particularly in
ICT. We want to encourage young people to choose this area of specialisation to
grow the digital ecosystem; popularise tech culture among the population
because the more we will offer solutions to problems encountered daily by the
population, numerous will be those who will develop this attitude to think
digital. Through this initiative, we want to promote the talent and know-how of
Cameroonians by using our technical knowledge to bring solutions to problems
found in our society.
GOALS
➢ Using our technical skills to create applications that solve a specific need in
our society
➢ Encourage collaboration between developers and also encourage the work in
a team.
➢ Share our knowledge because being in a domain that evolves very quickly,
we can learn from everybody regardless of skill level.
1
➢ Mentor / Assist less experienced developers who need to be followed in the
realisation of a project.
➢ Create a friendly environment for developers to progress and work on a
project they are passionate about.
➢ Provide financial assistance to developers who want to improve but lack the
means to afford a laptop, internet connection, working environment, paid
tutorials.
2
CHAPTER 2: INTERNSHIP
In this chapter, the different phases of progression of the internship and the impact
of this internship on the training will be presented. During our internship we had
our working hours scheduled from 8am to 5pm with a break of an hour.
2.1. OBJECTIVES
The main objective of my internship was to gain practical experience in web
development using ReactJS and to learn about software development best
practices. I also set specific goals for myself, such as:
Git: Git is a widely used version control system that allows developers to track
changes to their code and collaborate with others. It is an essential tool for any
software development project, as it allows developers to track their code changes
and collaborate with others in a flexible and efficient way. I used Git to manage
my code and collaborate with other developers on projects and tasks at OSS
Cameroon. I learned how to use Git's basic commands, such as commit, push, and
pull, to track and share my code.
Tailwind CSS: Tailwind CSS is a popular CSS framework that provides a set of
low-level utility classes for building responsive and user-friendly web
applications. Unlike other CSS frameworks that provide a set of pre-designed
components and styles, Tailwind CSS allows developers to build custom styles
4
and layouts using its utility classes. I used Tailwind CSS to style and layout the
components of OSS Cameroon's web application, and I learned how to use its
features, such as responsive design and text and colour utilities, to build
responsive and mobile-friendly interfaces. I found Tailwind CSS to be a flexible
and efficient tool for styling and layout, and I enjoyed the freedom it gave me to
build custom styles and layouts.
Jest: Jest is a popular JavaScript testing framework that allows developers to test
their code and ensure that it is working correctly. It provides a variety of features,
such as snapshot testing and mocking, that make it easy to write and run tests for
complex code. I used Jest to write and run tests for the components and functions
of OSS Cameroon's web application, and I learned how to use its features to build
efficient and reliable tests. I found Jest to be a powerful and user-friendly tool for
testing my code, and I enjoyed the confidence it gave me in the quality and
reliability of my code.
Using these tools and technologies was a challenging but rewarding experience.
I faced several challenges while using ReactJS and other technologies, such as
understanding new concepts and debugging my code. However, I was able to
overcome these challenges through persistence and by seeking help from my
supervisor and colleagues. I also found it helpful to use online resources and
documentation to learn more about the tools and technologies I was using.
One of the most challenging and rewarding aspects of using these tools and
technologies was learning how to work with a team of developers. I had to learn
how to communicate effectively with my team and to collaborate on projects and
tasks. I also had to learn how to manage my code and work with version control
systems like Git. These skills were valuable to me, as they will be important in
my future career as a software developer.
In addition to learning about the tools and technologies I used, I also gained
valuable skills in problem-solving and critical thinking. I learned how to
troubleshoot and debug my code, and how to think creatively and analytically to
solve complex problems. These skills will be useful in any software development
project, and I believe that they will be valuable assets in my future career.
5
Overall, my experience using these tools and technologies during my internship
at OSS Cameroon was valuable and rewarding. I was able to use them to build
and test web applications, and I learned how to use them effectively through
hands-on experience. I am confident that the skills and knowledge I gained will
be useful in my future career as a software developer. In the following sections
of this report, I will describe the skills and knowledge I gained in more detail and
how they will be useful in my future career.
In addition to the tools and technologies I mentioned earlier, I also used other
libraries and frameworks to build and style my applications. Some of the libraries
and frameworks I used include Axios, a JavaScript library for making HTTP
requests, and other utility libraries and frameworks such as Lodash and
Moment.js. I learned how to use these libraries and frameworks effectively
through hands-on experience and guidance from my supervisor and colleagues,
and I found them to be useful tools in my work as a ReactJS developer.
Overall, my experience using these tools and technologies during my internship
at OSS Cameroon was valuable and rewarding. I gained valuable hands-on
experience using them to build and test web applications, and I learned how to
use them effectively through guidance from my supervisor and colleagues. I am
confident that the skills and knowledge I gained will be useful in my future career
as a software developer. In the following sections of this report, I will describe
the skills and knowledge I gained in more detail and how they will be useful in
my future career.
6
shortages. Users can access the website to view the map and to get updates
about ongoing shortages.
7
tailwindCSS all connected to a backend made with python programming
language and the Flask framework.
The OSS Podcasts website may also include a social feature that allows
users to share podcasts and episodes with their friends and followers, and
to discover podcasts recommended by others. Users may also be able to
8
leave ratings and reviews for podcasts, which can help other users
discover and decide which podcasts to listen to.
9
➢ Week One (1): from 31st February to 04th March
● Set up development environment by installing necessary software, such as
Node.js and Git
● Learn the basics of ReactJS by completing a tutorial and reading through
documentation
● Familiarise myself with the company's web application and its codebase
by exploring the code and understanding its architecture
● Meet with my supervisor to discuss the project goals and objectives, as
well as my role and responsibilities as an intern
11
Figure 5: Checking the node version
After the proper installation of the nodeJS package, we verified that it and
moved to learning about Version Control System.
12
For this week we had an existing code base of the previous version of the
podcast.
This code base was migrated into a .old folder and a new file structure
generated(initialise a react js project) from this using the react-create-app
command. The structure gotten was as shown below:
Above is the look of the project with respect to ReactJS structure. After this
we added the background colour gradient of the web app. Using special CSS
attributes and styling, we achieved the correct display as that of the design.
Aside from this we had some images to add at the level of the background
too.
We updated the documentation to the basic content to help other users clone
and make contributions to the project easily.
➢ Week Six (6): from 04th to the 08th of April
Checking on the stability of our progress and code review by other interns and
our project/internship mentor This includes the basic structure of the
functional components. Following this the configuration of the package.json
at the root of the project.
➢ Week Seven (7): from 11th to the 15th of April
13
ReactJS framework being a component oriented framework, we decided to
start this period by initiating the main App component, which contains all the
other components. From here we finally moved to the Header component
together with its style files. The header component is divided into the NavBar
items components(Items), a Logo Component, and a search component.
The Podcast items components were also added as a list display of the items
of the podcast. This was done using a map() function in JavaScript.
In JavaScript, the map() method is a higher-order function that allows you to
apply a function to each element of an array and return a new array with the
modified elements. The map() method is useful for transforming data in an
array, and is often used in conjunction with other functional programming
techniques.
Added tracks to the items of the list, as well from the JSON file. Some other
minor changes included the following:
⚫ Optimising the existing imports of components and dependencies of the
project.
⚫ Added some JQuery for state management in the app. This was for
dropdown effect of the header components
➢ Week Eight (8): from 18th to the 22nd of April
Review of progress of the work we did in the previous weeks.
⚫ Continue working on the main App component and the Header component,
including styling and layout using Tailwind CSS
⚫ Begin working on the Podcast details component, which will display more
detailed information about a specific podcast
⚫ Use React Router to add routing to the web platform, allowing users to
navigate between different pages and components
⚫ Use the React Context API to manage state and data flow in the web
platform, allowing components to access and update data in a consistent
and efficient way
14
⚫ Write tests for the components and features developed during the week,
using Jest and Enzyme
⚫ Collaborate with my team to review and discuss the progress of the project,
and seek feedback and guidance as needed
⚫ Use Git to manage my code and collaborate with other developers on the
project, including committing and pushing my changes to the repository.
15
⚫ Refactor and optimise the codebase to improve performance and
maintainability, using techniques such as code splitting and lazy loading
⚫ Attend a workshop on advanced ReactJS techniques, learning about
topics such as server-side rendering and code splitting
⚫ Collaborate with my team to review and discuss the progress of the
project, and seek feedback and guidance as needed
⚫ Use Git to manage my code and collaborate with other developers on the
project, including committing and pushing my changes to the repository
During this week, we made significant progress on the OSS Podcasts web
platform. The development team was able to work at a fast pace, and we
were able to complete the implementation of the Podcast details component
and the Episode list component. We also used Axios to make API calls to
a server-side API, and we implemented the React Hooks API to manage
state and lifecycle events in the web platform. In addition, we attended a
workshop on advanced ReactJS techniques, and we worked with our team
to review and discuss the progress of the project.
Finally, at the end of this week, we were able to deploy the OSS Podcasts
web platform using GitHub Pages and GitHub LFS as storage. The web
platform is now deployed and viewable at
https://osscameroon.github.io/podcasts.
We are very proud of the work we have done during this internship, and
we believe that the OSS Podcasts web platform is a valuable resource for
anyone interested in discovering and listening to podcasts. We hope that
users will find the platform easy to use and that they will enjoy the wide
range of podcasts that are available.
16
⚫ Continue working on the Episode list component, including
implementing pagination and filtering features
⚫ Begin working on the User profile component, which will allow users to
create and manage their own profiles on the web platform
⚫ Refactor and optimise the codebase to improve performance and
maintainability, including cleaning up unnecessary code and removing
unwanted libraries
⚫ Use the React Context API to manage state and data flow in the web
platform, allowing components to access and update data in a consistent
and efficient way
⚫ Write tests for the components and features developed during the week,
using Jest and Enzyme
⚫ Collaborate with my team to review and discuss the progress of the
project, and seek feedback and guidance as needed
⚫ Use Git to manage my code and collaborate with other developers on the
project, including committing and pushing my changes to the repository.
During this week, we focused on refining and optimising the codebase of
the OSS Podcasts web platform. We worked on the Episode list
component, adding pagination and filtering features to improve the user
experience. We also began working on the User profile component, which
will allow users to create and manage their own profiles on the platform.
We also used the React Context API to manage state and data flow in the
web platform, allowing components to access and update data in a
consistent and efficient way. We wrote tests for the components and
features developed during the week, using Jest and Enzyme, and we
collaborated with our team to review and discuss the progress of the
project. Finally, we used Git to manage our code and collaborate with other
developers on the project, including committing and pushing our changes
to the repository.
During this week, we focused on further improving and optimising the OSS
Podcasts web platform. We continued working on the search feature,
testing and debugging any remaining issues. We also used the React-
Lodash library to optimise and improve the performance of the web
platform, and we used the React-Helmet library to add metadata and SEO
optimizations to the web platform.
18
⚫ Add previous and next buttons to the player, allowing users to easily
navigate between podcasts and episodes
⚫ Use the React-Media library to optimise the player for different media
formats and devices
⚫ Remove JQuery from the project and perform code cleanup, including
removing unnecessary files from version control (such as .idea, .ds_store,
and .vscode)
⚫ Collaborate with my team to review and discuss the progress of the
project, and seek feedback and guidance as needed.
During this week, we focused on completing the dynamic player feature
for the OSS Podcasts web platform. This included debugging any
remaining issues with the player functionality, as well as adding volume
control and mute functionality to the player. We also added previous and
next buttons to the player, allowing users to easily navigate between
podcasts and episodes.
To optimise the player for different media formats and devices, we used
the React-Media library. We removed JQuery from the project and
performed code cleanup, including removing unnecessary files from
version control. We collaborated with our team to review and discuss the
progress of the project, and sought feedback and guidance as needed.
19
⚫ Collaborate with my team to review and discuss the progress of the
project, and seek feedback and guidance as needed.
To optimise the player for different media formats and devices, we used
the React-Media library. We removed JQuery from the project and
performed code cleanup, including removing unnecessary files from
version control. We improved the responsiveness of the web platform for
different device sizes (desktop, tablet, and mobile) and enhanced the user
experience (UX) of the web platform, including removing the Bootstrap
CDN from the index file in the public folder and changing the icon source
to FontAwesome. We also added a Telegram channel button to the web
platform, allowing users to easily join the OSS Cameroon community.
We would have collaborated with our team to review and discuss the
progress of the project, and sought feedback and guidance as needed. We
would have also worked on documentation and user guides for the web
platform, including instructions on how to install and use the web platform,
as well as how to contribute to the project. We would have used Git to
manage our code and collaborate with other developers on the project,
including committing and pushing our changes to the repository.
In the final week of the internship project one(1), we would have finalised
all remaining tasks and features for the web platform, including debugging
and testing any remaining issues. We would have prepared and submitted
the final internship report, including a summary of the tasks and skills
learned during the internship. We would have also written comprehensive
documentation and user guides for the web platform, including instructions
on how to install and use the web platform, as well as how to contribute to
the project. We would have collaborated with our team to review and
discuss the final version of the project, and sought feedback and guidance
as needed.
21
The following set of weeks we were working on the OnACut project as described
above, aimed to provide a web-based map of Cameroon indicating districts, cities,
or regions with issues related to electricity, water, and network services. I was
responsible for delivering the project, and I provided weekly updates on my
progress. Over the course of the 8 weeks. At the end of the internship I was able
to get knowledge of many technologies such as python and flask, tailwindCSS
framework as well as ReactJS further knowledge.
22
For this week we went deeper in the work and each member of the team was
assigned a task to go through for the week. Some of the major tasks listed
below:
⚫ Adding a new prop for alert count. In React, props (short for "properties")
are a way to pass data from a parent component to a child component. Props
are immutable in the child component, meaning that the child component
cannot modify the props it receives.
⚫ Ensuring that the code follows a consistent style guide and is easy to read
⚫ Running code formatting tools like Prettier to automatically fix
formatting issues
⚫ Reviewing each other's code to ensure it is accurate and well-organised
⚫ Discussing any challenges or issues that came up during development
⚫ Providing feedback and suggestions for improvement
⚫ Checking in with each other to stay up-to-date on progress and identify
any potential roadblocks
⚫ Making any necessary updates or adjustments to the project plan based on
progress made so far
➢ Week Eighteen (18): from 27th June to 02th July
The progress of this week below
⚫ Total alerts displayed per regions implemented
⚫ Changing the values of the alerts and getting them directly from the
backend
⚫ Change the page title of the website
⚫ Some code cleanup by deleting the duplicate components
⚫ Adding alert report to drawer
23
⚫ Added route for alert reports and some links to the alert components.
⚫ To add a route for alert reports and links to the alert components in a React
application, you will need to use the react-router-dom library, which
provides the routing functionality for React applications.
The steps below were considered
1. Install react-router-dom by running npm install react-router-dom or
yarn add react-router-dom in your project's directory.
2. Import the BrowserRouter, Route, and Link components from
react-router-dom in the file where you want to set up the routes:
24
⚫ On the OnACut website, the 404 page feature can be used to handle cases
where users try to access pages or URLs that do not exist on the site. This
can occur if a user types in a URL manually, clicks on a broken link, or
tries to access a page that has been removed or moved.
Overall, the use of a 404 page feature can help to improve the user
experience on the OnACut website by providing helpful information and
guidance when users try to access non-existent pages or URLs.
1. Researching FastAPI: Before starting the migration, you may have done
some research on FastAPI to understand its features and benefits and how
it compares to Flask. This could have included reading documentation,
looking at examples, and discussing the decision with your team.
2. Setting up the FastAPI project: You would have needed to set up a new
FastAPI project and configure it to work with the OnACut project. This
could have involved installing the FastAPI library, creating a new project
structure, and defining your API endpoints.
3. Migrating the codebase: Once the FastAPI project was set up, you would
have needed to migrate the existing Flask codebase to FastAPI. This
could have involved refactoring the code to work with the FastAPI
25
framework, making any necessary adjustments to the API design, and
testing the code to ensure it was working correctly.
4. Testing and debugging: As you migrated the codebase to FastAPI, you
would have needed to thoroughly test the code to ensure it was working
correctly and fix any issues that came up. This could have involved
debugging and troubleshooting problems with the code and making any
necessary changes to ensure everything was working as expected.
5. Deploying the updated backend: Once the migration was complete and
the code was tested and debugged, you would have needed to deploy the
updated backend to a production server. This could have involved
configuring the server, setting up any necessary dependencies, and
deploying the code.
These are just a few examples of the steps that might have been involved
in migrating the backend framework of the OnACut project from Flask to
FastAPI. Depending on the specifics of the project and the complexity of
the codebase, there may have been other tasks and considerations as well.
26
⚫ Completing the migration: Once all of the steps above were complete,
you would have needed to finalise the migration and complete any
necessary cleanup or wrap-up tasks. This could have involved conducting
a final round of testing, deploying the updated project to production, and
closing out any open issues or tasks.
27
Overall, writing the report was a valuable and informative experience that
allowed me to reflect on my work during the internship and document my
progress and achievements. I am confident that the report will be a helpful
resource for the team and my evaluators as we continue to move forward on
the project.
28
CHAPTER 3: LEARNING OUTCOMES
29
CHAPTER 4: RECOMMANDATION
30
APPENDIX
31
Figure 10: Signaling a power failure through OnACut
32
Figure 12: Display of recent power failures in Cameroon
33
CONCLUSION
In my internship at OSSCameron, I had the opportunity to work with cutting-edge
technologies in the field of open-source software development. I had hands-on
experience in developing and maintaining several critical projects, which helped me to
improve my technical skills like coding, debugging, testing and in the areas of problem
solving and communication.
One of my key responsibilities was to identify and resolve bugs in the software, which
helped me learn how to troubleshoot and debug code effectively. Additionally, I also
got a chance to attend meetings and interacted with several team members, which
helped me to develop my communication and teamwork skills.
I am extremely grateful for the knowledge and experience I gained during my internship
at OSSCameron. The skills I have learned will be invaluable as I continue to pursue a
career in open-source software development. It was a great opportunity for me to grow
both personally and professionally and I'm thankful for the team's guidance and support
throughout the duration of the internship.
34