0% found this document useful (0 votes)
260 views65 pages

Intenship Report 2019 PDF

The document is an internship report submitted by 5 electrical engineering students from Woldia University who completed internships at YottaLab Software Development from November 2018 to February 2019. It details their activities and lessons learned. They declare the report contains their original work and is compiled based on the guidelines provided. It acknowledges the support received from their advisors and YottaLab staff during the internship. The 4-chapter report provides an overview of YottaLab, the students' work activities and workflow, benefits gained in skills, and conclusions with recommendations.

Uploaded by

yeshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
260 views65 pages

Intenship Report 2019 PDF

The document is an internship report submitted by 5 electrical engineering students from Woldia University who completed internships at YottaLab Software Development from November 2018 to February 2019. It details their activities and lessons learned. They declare the report contains their original work and is compiled based on the guidelines provided. It acknowledges the support received from their advisors and YottaLab staff during the internship. The 4-chapter report provides an overview of YottaLab, the students' work activities and workflow, benefits gained in skills, and conclusions with recommendations.

Uploaded by

yeshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

WOLDIA UNIVERSITY

FACULTY OF TECHNOLOGY
DEPARTMENT OF ELECTRICAL AND
COMPUTER ENGINEERING
COMPUTER STREAM
INTERNSHIP REPORT
HOSTING COMPANY: YOTTALAB SOFTWARE DEVELOPMENT
DURATION OF INTERNSHIP: November 4/2018 – February 4/2019 G.C

PREPAREDBY:
NAME ID. No
1. Alazar Melese---------------------------0484/07
2. Yeshareg Gebrie-------------------------1479/07
3. Yosef Lakew-----------------------------1409/07
4. Yisak Worku-----------------------------1501/07
5. Tilahun Workie--------------------------1426/07

ADVISORS NAME:
1. Mr. Ali Yimam
2. Mr. Elias Girma
3. Mr. Getasew Bante
SUBMITED TO: DEPARTMENT OF ELECTRICAL AND COMPUTER
ENGINEERING
WOLDIA, ETHIOPIA
SUBMISSION DATE: 19/06/2011 E.C
Declaration
We declare that we are a 5th year Electrical and Computer Engineering students
specializing Computer Engineering in Woldia University and we have taken our internship
experience in YottaLab software development company for a period of time from
November, 2018 GC – February, 2019 GC. We clarify that the internship report is prepared
by us and contains our original work and compiled based on the guideline provided by our
science and technology coordinating office as far as our information is concerned.
In our internship period, the report and the project are written with regarding to our tasks
and daily activities in the company and observation in each department. All writings in this
document contain things that are done by our concerted effort.

Name of students Signature Date

1. Alazar Melese
2. Yeshareg Gebrie
3. Yosef Lakew
4. Yisak Worku
5. Tilhun Workie

Name of academic advisor Signature Date


Mr. Ali Yimam

Mr. Elias Girma

Mr. Getasew Bante

Name Company supervisor Signature Date


Solomon Tsetadirgachew

i
Acknowledgement
The internship period is completed successfully through the great effort and help of staff
workers that is done in website design. In addition to our activity, there were many
individuals who participate a lot to make our internship period successful from the
beginning to the end. Among those the first is Biniyam and selam who are the project
manager that gives contentious description about the project and outline the schedule to
accomplish the work on time, share their experience about the work, and who take the
responsibility from placement to the hosting company to the completion of the internship
period. They stand on the side of us at any time we need them, second one of the employee
Amare who gave us the way how to do each specific work and error correction, third senior
manager Solomon who continually check our activities whether it full fills the requirement
or not. Last but not least our advisors who traveled 520 km from Woldia to Addis Ababa,
which is the city where our hosting company is found and telling us how important was
participating in this kind of project advising us how to use this internship experience to
become an entrepreneur after our graduation.

ii
Executive summary
This report consists the brief history and profile of our hosting company including the main
technologies used to develop the given project. The hosting company’s organizational
structure and detail work flow of activities in each section and the overall systems of the
organization. During internship we were able to understand the company competitive
strength and dedications of both the management and employees in every fate of
organization operations. In addition to the overall benefit that we gained during the
internship is in terms of improving and upgrading the practical skill, theoretical knowledge,
team playing skills, leadership skills, work ethics, entrepreneurship skills and interpersonal
communication skills.
This internship final report has four chapters. The first chapter deals about the brief history,
vision, mission and objectives of YottaLab software development and about organizational
structure. The second chapter is, the main overview of activity performed in the company
and work flow. While the third chapter explains about the benefit acquired in terms of
improving practical skills, improving our interpersonal communication skills and
improving leadership skills and challenge faced. Chapter four which is the last chapter of
the report that contains conclusion and recommendation. Below the whole chapters
reference and appendices are found.

iii
Table of Figures
Figure 2. 1: software engineering layers ........................................................................................................9
Figure 2. 2: Use case diagram of marketing task .........................................................................................14
Figure 2. 3: Class diagram of marketing task...............................................................................................15
Figure 2. 4: Sequence diagram of Marketing task........................................................................................15
Figure 2. 5: activity diagram of the marketing task .....................................................................................16
Figure 2. 6: State machine diagram of the Marketing task system ..............................................................17
Figure 2. 7: Collaboration diagram of the marketing task ...........................................................................18
Figure 2. 8: Component diagram of the marketing system ..........................................................................19
Figure 2. 9: Sequence diagram of Finance task............................................................................................20
Figure 2. 10: sequence diagram of order task ..............................................................................................21
Figure 2. 11: Database design of the system in work bench ........................................................................22
Figure 2. 12: one to many relationships between budget and budget plan...................................................23
Figure 2. 13: work flow of departments .......................................................................................................29
Figure 2. 14: Product lists ............................................................................................................................30
Figure 2. 15: searching mechanism in product list .......................................................................................31
Figure 2. 16: Form for customer product registration ..................................................................................32
Figure 2. 17: Drop down box without entering search query .......................................................................32
Figure 2. 18: Form after inserting query in the box .....................................................................................32
Figure 2. 19: System displaying product not found message .......................................................................33
Figure 2. 20: Customer product priority list .................................................................................................33
Figure 2. 21: Error message after order is clicked for Samsung galaxy s6. .................................................34
Figure 2. 22: Form after assign marketing personnel button is clicked. ......................................................34
Figure 2. 23: Form for supplier data registration .........................................................................................35
Figure 2. 24: System restricting the marketing personnel to register purchase price first. ..........................35
Figure 2. 25: Form for purchase price registration .......................................................................................36
Figure 2. 26: Budget check List ...................................................................................................................37

iv
List of tables
Table 1: Tasks and person maintaining the task.............................................................................................8
Table 2: methods, tools and techniques we taught .......................................................................................11

v
Table of Contents
Declaration ..................................................................................................................................................... i
Acknowledgement ........................................................................................................................................ ii
Executive summary ..................................................................................................................................... iii
Table of Figures ........................................................................................................................................... iv
List of tables .................................................................................................................................................. v
List of Acronyms ....................................................................................................................................... viii
Chapter One .................................................................................................................................................1
1. Background of the organization..............................................................................................................1
1.1. Brief history and Establishment of the organization .....................................................................1
1.2. Mission ...............................................................................................................................................1
1.3. Vision ..................................................................................................................................................1
1.4. Objectives of company ......................................................................................................................1
1.4. Product and Main services provided ..........................................................................................2
Chapter two ..................................................................................................................................................6
2. Overall internship experience and specific work ..................................................................................6
2.1. Why this company? ......................................................................................................................6
2.2. The section we had been working ...............................................................................................7
2.3. Work flows in the sections we were working .............................................................................7
2.4. Work tasks we have been executing ...........................................................................................8
2.5. Objective ...................................................................................................................................8
2.6. Types of methods, tools, and techniques we taught, we have been using while performing
our tasks ....................................................................................................................................................9
2.6.1. Introduction ..........................................................................................................................9
2.6.2. Methods ...............................................................................................................................11
2.6.3. Tools ....................................................................................................................................11
2.6.4. How we applied the above method, tools, techniques to our tasks ................................13
2.7. Challenges and problems we have been facing and measures we took to solve them ..........23
2.8. Result and discussion .................................................................................................................25
2.9. Type of recommendation we have made regarding the identified problem .........................37
Chapter three ..............................................................................................................................................39
3. Overall benefits we gained from the internship ..............................................................................39
3.1. Overall benefits...........................................................................................................................39
3.2. Practical skills .............................................................................................................................39

vi
3.3. Theoretical knowledge ...............................................................................................................40
3.4. Improving industrial/firm problem solving capability ...........................................................40
3.5. What we gained in terms of improving our team work skills ................................................41
3.7. Work ethics issues, industrial/work psychology and related issues .......................................42
Chapter four ...............................................................................................................................................44
4. Overall conclusion and recommendation for the company ............................................................44
4.1. Conclusion ...................................................................................................................................44
4.2. Recommendation for the company ...........................................................................................44
References ...................................................................................................................................................45
Appendices ..................................................................................................................................................46

vii
List of Acronyms

CAD----------------------------------Computer-aided design
CAE----------------------------------Computer-aided engineering
CASE--------------------------------Computer aided software engineering
CPV---------------------------------Check payment voucher
ERP---------------------------------------Enterprise resource planning
FTA---------------------------------------Fund transfer application

HTML------------------------------Hypertext markup language


IDE----------------------------------integrated development environment
KPAs---------------------------------kea processes areas
MIS---------------------------------------Management information system

OS-----------------------------------Operating System
PHP---------------------------------Hypertext pre processor
PLC-----------------------------------Private limited company
SDLC-------------------------------Software development life cycle
SQL---------------------------------Structural query language
UML----------------------------------Unified modeling language
USB---------------------------------Universal serial buss

viii
Chapter One
1. Background of the organization
1.1. Brief history and Establishment of the organization
YottaLab Software Development PLC is a start-up software development and e-commerce
wholesale retail company established in January 2018. The founders of the company are
Biniyam Girma, Solomon Tsetadirgachew, and Selam Girma. The firm is based in Addis
Ababa, and operates in all parts of Ethiopia.

1.2. Mission
Its mission is to be one of the leading standardized quality software provider and E-
commerce service giving company with quality brand-name in Ethiopia, Africa, and the
Globe growing giant progressively through innovation (research and development).

1.3. Vision
Its vision is to see the Ethiopian technology specially the software world which there
work is based to be comparable with the developed countries and making teaching
processes in high schools as well as higher educational institutions advanced in that
technology touches every part of the society.

1.4. Objectives of company


This proposal summarizes the features, schedule, and investment required for delivering a
successful website for your organization.

YottaLab Software hereby proposes to develop and maintain a dynamic & interactive
website for your organization. Outlined in the following part is the proposed website design
and format suggestions.

The developer will work with existing graphic material and text encoding tools to create
the website and will make recommendations on improving the graphic presentation. The
website should mirror the look and feel of your organizations promotional material &
descriptive presentation specific to the sector your company belongs to. Website sections,
design concepts and site 'flow' will be addressed. All changes will be pre-approved before
the prospective website go live & served online.

1
The objective of the new website is to be current and interactive while offering value-added
service to your clients by using information and communication technologies to improve
connections between your organization and your client.

Our proposed website solution would help organizations to:

 Establish an online portal to advertise and show your products,


 Provide a clear online message and easy navigation,
 Offer information on your organization products specific to its market segments,
 Promote organizational brand, awareness creation and increase global visibility,
 Keep your customers and business partners better informed,
 Create informative and interactive elements,
 Increase customer convenience,
 Broaden exposure with increased Internet marketing, Promote the exchange of
information and sharing of ideas in an accessible

1.4. Product and Main services provided


The company provides different kinds of products efficiently and effectively for the
satisfaction of clients and consumers.

Products include
 Denbegnaye.com
 Yotta Enterprise Resource Planning (ERP) or Management Information System (MIS)
 Payment System
 Yotta Enterprise Management Information System (MIS)
 Gojo Construction Project Management Information System
 Denbegnaye.com (Online Market Place)
 Yotta-FTA (Fund Transfer Application)
 Gojo BOQ
 Gojo Cut log 1D (One dimensional cutting optimization software)
 Gojo Cut log 2D (Two dimensional cutting optimization software)

2
 Development of customized dynamic website

1.4.1. Yotta-MIS
Transforming management process to automated management information system is an
important business objective; as traditional structures are often ineffective in producing
desired levels of productivity, customer service, employee welfare, and shareholder value.
Yotta-MIS offers a full-fledged MIS system to companies engaged in diverse sectors with
multitude business logics & requirements: up on which we geared system functionalities
up.
1.4.2. Construction Project
Management Information System
Construction Project Management Information System is a web based system that helps an
organization to plan and control construction site works before and during contract period.
It generates required management reports and analysis on request and on periodic basis.
1.4.3. Denbegnaye.com
E-commerce platform designed and built to provide a leading online commerce society in
Ethiopia.

3
Figure 1.4. 1: Home page of denbegnaye.com

1.4.4. Website Development


Here are some examples of remarkable website developed by our company and staff.

Figure 1.4. 2: Home page of Selamspring.com

4
Figure 1.4. 3: Home page of legendfurniture.com

Figure 1.4. 4: home page of eltex.com

5
Chapter two
2. Overall internship experience and specific work
Internship is the most important section of this 5-year program where we put our theoretical
knowledge’s in to real world practices. It provides us an opportunity to link theory with
practice, to see our capacity of solving real world problem. In addition to the practical
knowledge we practice presentations, coordinating with experienced as well as non-
experienced employees, long time work, and so on. It provides us the career with
demonstrated academic competence, and a hands-on experience in the public sector. It gives
us an opportunity to do business in group.

2.1. Why this company?


Ever since we have given the internship paper we were searching for companies that will
help advance our practical skills as well as theoretical knowledge’s in computer engineering
field. But that was not an easy task. Since we are in a developing country that rely on
agricultural industries it was hard finding a company that can met our needs. Computer
engineering is a very interesting field in that students can specialize in software engineering
or hardware engineering. In our country software companies exceed hardware companies
and hardware plus software companies in number, therefore much of our chances were
applying in software companies. It was still hard to work in software company that we have
chosen because many students apply in one company therefore companies are forced to
accept students that apply earlier.

Few companies only accept students from first generation Universities, like CNET. Some
companies accept students after students have accomplished a project that the company
prepare as a test for students. This helps companies to choose between students that can
develop their projects well and not. For students who come from far, it was hard to take this
kinds of tests because we may not take our personal computers with them.

We have applied in many companies. Among companies that accepted us YottaLab


software development was one of them. This company required us to accomplish some
very important project for them. We believed this was the right place for us because we are

6
up for a real important job that can increase our practical experience and theoretical
knowledge.

2.2. The section we had been working


YottaLab software development has two core sections of developments.

 Requirement analysis
 Design and
 Development

Requirement analysis is a part of software engineering process where requirements are


collected and analyzed to a form that programmer understands. The design part in YottaLab
is the UML diagrams that put the analyzed requirement in to a well-organized and easily
understandable form. The different models of UML diagram help a programmer understand
the system and when programing takes longer time it guides the programmer where he/she
stop the code and continue another time without confusion.

The development part is further divided in to two parts.

 Front end design and


 Back end development

Among the sections mentioned above we were working in two sections which are the design
and from development sections back end development. While we get in the company the
requirement had already been analyzed. Therefore, our chances were taking the design and
development sections.

2.3. Work flows in the sections we were working


This section uses a sequential flow of work, where the UML design is done before coding
is started. We report each sub tasks that has been completed. If there is any error in the
accomplished sub tasks we will be informed to go back to where the errors arise and try to
solve the errors. In the UML design the different models are sketched sequentially, starting
from use case diagram. After the UML diagrams are finished, coding will be started. By
watching the different models of the UML diagrams programing process will be held.

7
2.4. Work tasks we have been executing
The project is an online biro system for an e-commerce website called denbegnaye. It was
broad therefore it is divided into tasks such as

 Human resource
 Marketing
 Sales
 Finance
 Order
 Purchase
 Stock
 Delivery

From the mentioned tasks we have taken last seven tasks that are Marketing, Sales, Finance,
Order, Purchase, Stock, Delivery. The table below shows the tasks and person maintaining
the task.

No. Task Person maintaining the task


1 Marketing Alazar Melese
2 Sales Alazar Melese
3 Finance Tilahun Workie
4 Order Yeshareg Gebrie
5 Purchase Yosef Lakew
6 Stock Yisak Worku
7 Delivery Yeshareg Gebrie
Table 1: Tasks and person maintaining the task

2.5. Objective
2.5.1. General objective
The general objective of our project is to develop a back end system titled “biro system
control for an e-commerce application.

8
2.5.2. Specific objective
The specific objective of or project is to:
 Design the UML diagram of the system
 Design the schema diagram of the system using MySQL workbench
 To maintain forward and reverse engineer between the programing
environment and MySQL workbench.

2.6. Types of methods, tools, and techniques we taught, we have been


using while performing our tasks
2.6.1. Introduction
Software engineering is a layered technology. Referring to Figure 2.1, any engineering
approach (including software engineering) must rest on an organizational commitment to
quality. Total quality management and similar philosophies foster a continuous process
improvement culture, and this culture ultimately leads to the [1].

Figure 2. 1: software engineering layers


development of increasingly more mature approaches to software engineering. The
bedrock that supports software engineering is a quality focus. The foundation for software
engineering is the process layer. Software engineering process is the glue that holds the
technology layers together and enables rational and timely development of computer
software. Process defines a framework for a set of key process areas (KPAs) that must be
established for effective delivery of software engineering technology. The key process
areas form the basis for management control of software projects and establish the context
in which technical methods are applied, work products (models, documents, data, reports,

9
forms, etc.) are produced, milestones are established, quality is ensured, and change is
properly managed.

Software engineering methods provide the technical how-to's for building software.
Methods encompass a broad array of tasks that include requirements analysis, design,
program construction, testing, and support. Software engineering methods rely on a set of
basic principles that govern each area of the technology and include modeling activities and
other descriptive techniques.
Software engineering tools provide automated or semi-automated support for the process
and the methods. When tools are integrated so that information created by one tool can be
used by another, a system for the support of software development, called computer-aided
software engineering, is established. CASE combines software, hardware, and a software
engineering database (a repository containing important information about analysis, design,
program construction, and testing) to create a software engineering environment analogous
to CAD/CAE (computer-aided design/engineering) for hardware.
Among the variety of software development techniques that have been proposed and
implemented we have taught, one of the most promising is the structured technique known
as object-oriented programming. The use of structured techniques as they apply to software
costs and productivity tends to focus on analysis and design and distributes time to the
various tasks differently. The earlier in the process that errors are discovered and fixed, the
less likely they are to impact software lifecycle productivity. Structured techniques use
complex models to represent characteristics of systems and can be configured to view the
process or view the data. For these techniques to be effective, they must be applied with the
right attitude, with adequate training, and must use feedback from experienced practitioners
to improve the process.
The table below displays methods, tools and techniques we taught.

10
No. methods Tools techniques
1 Water fall model Netbeans IDE Object
oriented
programing
2 Evolutionary MySQL work bench
development
model(Iterative model)
3 whitestarUML
Table 2: methods, tools and techniques we taught

2.6.2. Methods
Evolutionary development model (Iterative model)
In the Iterative (evolutionary development) model, iterative process starts with a simple
implementation of a small set of the software requirements and iteratively enhances the
evolving versions until the complete system is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing just part of the
software, which is then reviewed to identify further requirements. This process is then
repeated, producing a new version of the software at the end of each iteration of the model
[2].
2.6.3. Tools
NetBeans IDE
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows
applications to be developed from a set of modular software components called modules.
NetBeans runs on Windows, mac OS, Linux and Solaris. In addition to Java development,
it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript.
Applications based on NetBeans, including the NetBeans IDE, can be extended by third
party developers [3].

MySQL workbench

11
MySQL Workbench is a unified visual tool for database architects, developers, and DBAs.
MySQL Workbench provides data modeling, SQL development, and comprehensive
administration tools for server configuration, user administration, backup, and much more.
MySQL Workbench is available on Windows, Linux and Mac OS X.

MySQL Workbench enables a DBA, developer, or data architect to visually design, model,
generate, and manage databases. It includes everything a data modeler needs for creating
complex ER models, forward and reverse engineering, and also delivers key features for
performing difficult change management and documentation tasks that normally require
much time and effort.

MySQL Workbench delivers visual tools for creating, executing, and optimizing SQL
queries. The SQL Editor provides color syntax highlighting, auto-complete, reuse of SQL
snippets, and execution history of SQL. The Database Connections Panel enables
developers to easily manage standard database connections, including MySQL Fabric. The
Object Browser provides instant access to database schema and objects [4].

WhiteStarUml
It offers most functionality expected from a UML tool like a large selection of supported
diagrams, ready to use design patterns, model verification, code generation and still
provides multiple ways of extensibility through plugins, scripts or profiles making it even
usable in a way not initially previewed by its creators. It all is delivered with no compromise
on quality or usability giving the overall look and feel of a serious programming
environment on par with the leading IDEs.

From the above discussed methods, tools, and techniques we have been using all tools and
techniques, but an effective software process can only one method. As internship students
it was difficult to actually apply the whole process of the methods. Because the company
was not expecting us on a specified time. By the time we get in to the company, the
company has already prepared a requirement analysis. Understanding the analysis was
harder than we think. If we had tried to understand the requirement fully before we held to
other stages of the process, the final product wouldn’t be as it is now. Therefore, we decided
to begin the other processes with little understanding of the requirement. As time goes on

12
we were able to understand the whole requirement. This kind of approach is called
Evolutionary development model (Iterative model). It helped the company to add and/or
change any requirement while other processes are held.

2.6.4. How we applied the above method, tools, techniques to our tasks
As tried to be explained above by the time we get in to the company the requirement
analysis was completed therefore, we started from the UML design. For this we used
WhiteStarUml, described above. As we were performing on different tasks, we had seven
different UML project (file). Each having seven different models (sketches) of UML
diagram.

Below are some of the major UML diagram

13
Figure 2. 2: Use case diagram of marketing task

14
Figure 2. 3: Class diagram of marketing task

Figure 2. 4: Sequence diagram of Marketing task

15
Figure 2. 5: activity diagram of the marketing task

16
Figure 2. 6: State machine diagram of the Marketing task system

17
Figure 2. 7: Collaboration diagram of the marketing task

18
Figure 2. 8: Component diagram of the marketing system

19
Below are sequence diagrams of the rest of the task

Figure 2. 9: Sequence diagram of Finance task

20
Figure 2. 10: sequence diagram of order task

After the 7 UML diagrams are completed for every tasks, we proceeded to the MySQL
database design using MySQL workbench. The figure below shows the database design
made using MySQL workbench.

21
Figure 2. 11: Database design of the system in work bench

In the figure above the dotted lines are the relations between the database entities.
Therefore, one of the entities will have a reference (foreign) key in their field. The figure
below illustrates this idea.

22
Figure 2. 12: one to many relationships between budget and budget plan.

The figure above shows the one to many relationships between budget and budget plan
entity. A company could have one budget which will be divided in-to many budget plans.

After the database design had been completed, we created our project in NetBeans and
registered it to MySQL database then created a database with the same name found in
MySQL workbench. We held back to MySQL work bench and forward engineered the
database design to NetBeans. In the NetBeans IDE we generated the entity class from the
database, which helps time of coding. We finally started the coding process.

2.7. Challenges and problems we have been facing and measures we took to
solve them
2.7.1. challenges

Challenges and problems are the unexpected pitfalls of a software development process.
While a software is expected to be completed in certain specified time, some challenges
and problems would result for the software not to be completed on the specified period of
time besides other issues. While performing our tasks one of the challenge we faced was
integrating the completed tasks together so that the system becomes full. As tried to be
explained above the number of divided tasks were eight but number of practitioner (us)
were five in number. Some of us had a task which needs input from another task. In such
scenarios it is difficult to accomplish the tasks for new bees or non-experienced
practitioners like us.

23
Another challenge we faced while performing our tasks which is related the coding
environment is the null pointer exception. NullPointerException is a Runtime Exception.
In Java, a special null value can be assigned to an object reference. NullPointerException
is thrown when program attempts to use an object reference that has the null value.

These can be:

 Invoking a method from a null object.


 Accessing or modifying a null object’s field.
 Taking the length of null, as if it were an array.
 Accessing or modifying the slots of null object, as if it were an array.
 Throwing null, as if it were a Throwable value.
 When you try to synchronize over a null object.

Since web based systems most probably have database system and fields of the database
entities might be null, it is difficult to code on such fields.

The loss of sufficient source for java enterprise edition is a challenge that mostly affect the
completion of the project on the specified time. Most important books in the java enterprise
edition are payable on the internet.

2.7.2. problems

The biggest problem we faced while performing our tasks was lack of enough internet
connection and performance of the computer we were using. Since the company was
extending their stuffs they didn’t arrange all resources we need in their new stuff. Since we
are new to the java enterprise edition we mostly depend on internet. As the system grows
and more codes are integrated in it, it becomes difficult to deploy and run the program fast.
In such scenarios it is needed to have high performance computer.

2.7.3. Measure we have taken in order to overcome these challenges


and problems.

24
The first challenge we faced integration of tasks together. To solve this challenge, we group
together to code the common parts the system and held back to our individual tasks.
The second challenge we faced was NullPointerException. As tried to be explained above
web based applications most probably have a database. Such databases entities might have
null fields, coding on null fields, like comparing not null value with null results to a null
pointer exception in java. To solve this challenge, we set the null fields to a default value
so that they no longer be null.

The third challenge was loss of sufficient source. This is actually difficult to solve the only
choice we had was to code by ourselves, which takes time.

The fourth problem we faced was lack of enough internet connection and performances of
the computers. For the internet connection we were using a dongle, which cannot address
for all of us. Therefore, we had to use our smart phones.

In order to make our computers fast we sometimes use our flash disk as a virtual memory
the steps are explained bellow.

Step1: Format our flash disk.

Step2: Right-Click on My Computer/This PC and click on properties.

Step3: Click on Advanced Tab.

Step4: Click on settings under Performance.

Step5: Again click on Advanced Tab and then Click on Change Button under Virtual
Memory

Step6: Select our USB Device.

Step7: Click on Start Button and then press OK.

Step8: Restart our PC with the Drive inserted.

2.8. Result and discussion


The project is a biro system control for goods buying and selling control (E-Commerce
applications). After completion of the system it will merge with an e-commerce website

25
called Denbegnaye. The whole system was wide to be completed by us. It lacks human
resource task to be completed.

Result description
The text below explains how the system works and which departments role it is. Below the
role title is procedures of how the system works. It is also sequential flow of the system.

Role of Marketing:
 Product is maintained.

Role of Sales:

 Sales promote their product for customers


 If customers need another product, Sales assign the new product for customers.
 The system automatically searches the product if it is found in the store and confirms
the sale whether the product is found in the store or not.
 Here there are three things to consider:
1. The chosen product quantity might less than the customers need
2. The chosen product might be empty in the store.
3. The chosen product might be found in the store and the quantity would satisfy
the need of the customer’s.
 For case 3 the customer product table status field will be set to “ready for stock out”.
And the “stock out” button will be available, here the rest of the buttons will not be
available, if pressed they result error message saying “the button is not available”.
 For case 2 the system will automatically prioritize the product.
 For case 1 decision will be customer’s choice. The customer might want the all product
he/she requests or he/she would want what is in the store and waits for the rest of the
products to be purchased.
 If the customer wants the hole product the system subtracts customer’s product
quantity from store product quantity and store the difference in priority, therefore
he/she will receive the hole quantity of the product he/she requested.

26
Role of Marketing:

 Those products are prioritized depending on frequency of choice. Products that have
been chosen in higher frequency are given higher priority.
 Marketing personnel will be assigned for the prioritized products.
 The assigned marketing personnel will study the product detail and register them:
o Supplier data will be registered.
o Purchase and sell price will be registered.

 From the registered purchase and sell price profit is calculated considering overhead
and store fees.
 Calculation of profit results in the generation of feasibility table.
 In feasibility table feasibility is calculated. Steps are:
o Competitor product price will be registered.
o Competitor product sell price is compared with our sell price.
o If our sell price is less than the competitors price the study is feasible.
 Feasible rows in feasibility table will result for the generation of payment request,
which is added to budget check and ready for check in budget check table, which is the
role of finance department.

Role of finance department:

 The generated budget table is checked by filling the required empty fields, those are:
o Budget plan
o person who is performing the action.
 If there is enough money in the budget plan the system will automatically generate
CPV.
 The CPV is checked by an accountant and will be sent to the manager for approval.
 The manager fills the required fields and confirms approval.
 Confirmation of approval results for the generation of purchase order.

Role of purchasers:

27
 In the purchase order table, the system automatically fills the supplier data therefore
the purchasers know where to buy the product.
 As soon as the purchasers purchase the product, they confirm their purchase by
filling some required fields.
 Confirmation of purchase results in the generation of purchased product table which
is received by store department.

Role of store department:


 In purchased product table the store personnel fill some required field like receipt
and store the product in the store table.
 In conjunction to the store table the product is stored in stock in and stock tables.

Back to Sales process: now the prioritized products are purchased.

 The status field in customer product table will be set to “ready for stock out”.
Therefore, stock out button will be available.
 If the Sales press the stock out button the product will be sent to the stock out table.

Back to Store processes:

 The stock outed product quantity will be subtracted from the stock product quantity
and stock is updated.
 When the stock outed product is ready for delivery the delivery button is pressed and
the product will be saved to the delivery table.
 When the delivery table is generated a random confirmation number is generated
which is not visible by any member of the system owners.
 The confirmation number is sent to the customer via SMS.
 The person who is delivering the product to the customer will have a cell phone or a
computer with a form ready to receive the confirmation number sent to the customer.
 When the deliverers deliver the product to the customer they will require the
customer to enter the confirmation number that have been sent to him via SMS.
 The customer enters the number in the provided form and the system compare the
number with the generated number and verifies whether customer is the right person
or not.

28
 If the customer is who he says he is, but lost the number in some cases verification
will follow manual manners.

Figure 2. 13: work flow of departments

29
Figure 2. 14: Product lists

The figure above is a list of products that the company knows existed. Boxes below column
names are searching (filtering) boxes. The figure below shows how the search mechanism
works.

30
Figure 2. 15: searching mechanism in product list

As you can see in the figure above when the user types a letter in the both the system filters
all products starting with that letter.

Next sales promote products that the company has but if the customer does not want the
product and requests another product. Sales assign product for the customer in the customer
product form.

31
Figure 2. 16: Form for customer product registration

The form allows searching in every drop down boxes, because as data in the field increases
it becomes difficult to choose between those entries.

Figure 2. 17: Drop down box without entering search query

Figure 2. 18: Form after inserting query in the box

32
In the figure above when the user inserts a letter in the search box the system displays every
data that start with the inserted letter as the user continues inserting a letter the system
continues displaying the right data.

When the sales submit the data the system checks if the product is found in the store and
displays the required message. For example, if the sales submit Samsung galaxy s6 which
is not found in the store the system displays “the chosen product is not found” error
message.

Figure 2. 19: System displaying product not found message

If the product is not found in the store the system automatically prioritizes the product in
the customer product priority List.

Figure 2. 20: Customer product priority list

33
The above figure shows priority of customer product filtered by status “payment request
not generated”. From the figure you can see that Samsung galaxy s6 prioritized since the
quantity is 12 it is given last priority from status “payment request not generated”. Here the
sales have two choices to assign marketing personnel or directly order the product so that
purchasers will receive a message that this product should be purchased with the specified
quantity. In order for a product to be ordered directly from customer product priority it
should have already studied the feasibility. If feasibility is not studied yet the system
displays an error message saying “feasibility not studied yet”. The figure below shows this
scenario.

Figure 2. 21: Error message after order is clicked for Samsung galaxy s6.

Now that the marketing department knows that feasibility is not studied there for they assign
marketing personnel.

Figure 2. 22: Form after assign marketing personnel button is clicked.

34
The assigned marketing personnel register detail of the product like supplier data, purchase
price and sell price.

Figure 2. 23: Form for supplier data registration

if the marketing personnel try to register sell price before purchase price the system restricts
it by sending an error message saying “please set purchase price first”.

Figure 2. 24: System restricting the marketing personnel to register purchase price first.

35
So now that the marketing personnel knows that he has/she has to register purchase price
and when he/she presses register purchase price. The form below will display.

Figure 2. 25: Form for purchase price registration

After these data are registered profit will be calculated considering every other amount of
money that would it takes to buy the product like transportation. Then feasibility will be
studied and if it is proven to be feasible payment request will be generated and ready for
check by finance department if there is enough budget to buy the product.

36
Figure 2. 26: Budget check List

Since the system is wide we can’t show the whole process of the system.

2.9. Type of recommendation we have made regarding the identified


problem
Challenge and problems always arise when one makes a project, while its good not to have
any problem and challenge but since they always happen the best thing is not to have such
problems again in other project. Therefore, regarding the above challenges and problems
let us make some recommendations for the company as well as for us.

For the problem of integrating the tasks together we recommend the project managers to
monitor practitioners synchronize on their tasks.

For the challenge of the null pointer exception it is better to study the programing
environment before directly heading to the project, therefore, companies should prepare
enough documentations about the environments we will be coding.

37
Internet and performance of the computer are one of the important things needed when one
starts doing some project. Therefore, hosting companies should prepare the thing.

38
Chapter three
3. Overall benefits we gained from the internship
3.1. Overall benefits
Practical implementations of theoretical knowledge’s are the key feature of
engineering. Based on this, internship is a great opportunity for us to further
advance our theoretical knowledge in to real world practices. Such type of
program gives great knowledge for students to join the hosting company after
graduation with better work experience. Internship Program is also good for
company to get an educated and more powerful workers Graduated from
universities. Additionally, companies get workers with Small or no salaries
during internship period by guiding us on their program. When we participated
on internship program, we know that all theoretical things are directly practiced
on practical works by taking some modification according to the way that make
the task easier.

3.2. Practical skills


Since the start of our internship program we have tried to learn something new from which
we possess new knowledge or skills.

Some of those practical skills are: -

 During the time we develop the project, we have applied lot of theories in to practice
that we previously had been learning in the class for four consecutive years.
 From our practical works, in terms of system development, we have learned how we
can easily and effectively develop software.
 Designing database systems and forward engineering to other systems and
synchronizing the database when there are changes in the database and addition of
entities in the database without affecting previously stored data in the database.
 From our internship project work, we had learned each and the different ways of
developing a web site.
 We have upgraded our java programing skill.
 Above all, from our internship practice we have upgraded our knowledge and skills.

39
3.3. Theoretical knowledge
In computer engineering it is difficult to master both hardware and software skills in just
two years of specialization. Since our country has more companies in software than in
hardware. The theoretical knowledge we have on software development is more important.
The theoretical knowledge we acquire in this four month is unimaginable. We did not
expect this much from the internship program.

Practical skills cannot come without theoretical knowledge. Theoretical knowledge is


stepping stone for practical skills.

Below are some of theoretical knowledge we acquired during our internship program.

 We have acquired a theoretical knowledge about the software engineering process,


reading and understanding requirements.
 We have acquired knowledge about how to change the social problems in to an
engineering systems.
 We have acquired knowledge about how to be economical on software development
processes and economical aspects of the software engineering process.
 We have acquired knowledge about any governmental or private organizations work
flows including human resource.

3.4. Improving industrial/firm problem solving capability


Problems in the industrial/firm sometimes seems to be impossible to formulate a system.
But by being systematic nothing is impossible. It all starts from observation. Observation
is watching the real world happenings in systematic way.

Below are some of the problem solving capabilities we acquired during our internship
program

 Understanding the scale and magnitude of problems.


 Investigate how and why things go wrong.
 Develop, test and implement ‘solutions’ that eliminate, prevent or detect the causes
of failure.
 Identify and address the ‘systemic causes’ of chronic and recurring failures.

40
3.5. What we gained in terms of improving our team work skills
Teamwork is a vital part of any company, but even more so for startups when the work
environment and culture requires all hands on deck working closely together all the time.
In the end, teamwork comes down to cooperation and communication and without it, your
business can certainly suffer.

While the terms “teamwork” or “team building” may bring visions of company retreats
practicing trust falls, in actuality building team morale, trust and productivity doesn’t have
to involve pricey trips or clichéd exercises.

Below are some of team work skills we acquired during our internship program.

 Building trust and respect, nothing is going to get done within a team, or company as
a whole, if there isn’t mutual trust and respect among employees and with
management.
 Socializing, how to give time for team members to get to know one another on a more
personal level to increase mutual trust, respect and understanding.
 How to cultivate open communication, encourage team members to speak open, share
ideas, make suggestions and voice their opinions across all aspects of the business.
 How to organize team processes, this helps us spend less time on logistics and more
on their actual work.
 How to allow team members to actively take part in decision-making

3.6. Leadership skills

In one leadership study, qualities such as assertiveness, adaptability, intelligence and


conscientiousness were cited as the most important leadership skills.

Below are some leadership skills we gained in internship program.

 Whether we are conscious about it or not, we are leading ourselves or others.


Therefore, this internship program assisted us in developing our leader ship skills.
 We understand how to serve as role model, while performing our tasks every one of
us were working hard and this serves us to be role model for each of us.
 How to set definitive goals and follow concrete action plans.

41
3.7. Work ethics issues, industrial/work psychology and related issues
Work ethics and industrial/work psychology are crucial things for jobs/work to be
completed on the right time. This internship program assisted us in developing some ethics
and industrial/work psychologies.

Ethics is the best requirement to perform the work. Anyone who did not have good work
ethics cannot perform an effective work in his or her responsibility. To develop healthy
working environment and increasing productivity an ethical citizen is required. Generally,
ethics can be:

 Personal ethics

 Work or professional ethics

3.7.1. Personal ethics

Personal ethics are values that are expected to be had by an individual in their life and
contribute smooth interaction among individual and the existed society. Generally, in terms
of personal ethics we gained the following things

 Live for the wellbeing of others and our self when I have a respect for myself I can
give a respect for others like myself.

 Honesty no one lies himself so, when I become honesty I can get a good work and
living with others

 Fairness treating individuals equally.

 Having good attitude to the law of the company this is best to work in the company
with their work time of the project.

 Punctuality leaving the work time is wrong thing. So the workers and each
individual are arrived at the work on time. Generally, the above listed and non-listed
laws that are known by each individual are good to be accepted and perform the
work effectively. So, personal ethics are primarily required by the owner of the work
and workers.

42
3.7.2. Professional ethics

Professional ethics is the standard or set of moral principles for regulating behavior of a
curtained defined profession. Our profession engineering has its own professional ethics.
But in common the following are common types of professional ethics.

 Punctuality keeping the working time of the profession and complete the work on a
given time.

 Reliability the work should be qualified

 Honesty in each work task each and every individual should be free from cheating, bias
and corruption

 Transparency and openness the worker of each profession should be open to

Their work and when problems are happened and he or she must be transparent

 Staying Balanced

3.8. What we gained in terms of entrepreneurship skills

During our internship program the work tasks that are done in the company made us
understand what problems are arising in the social and environmental conditions. This made
us observe another problems arising and this is an important root for entrepreneurship.

 We learned how to be creative, the ability to see things differently and provide
solutions where there are gaps.
 We learned how to stick with challenges, during our performance of the tasks some
problems and challenges we faced were so difficult that they need us to stick with
them in order for us to solve the problems and/or the challenges.

43
Chapter four
4. Overall conclusion and recommendation for the company
4.1. Conclusion
We, the internship students, would like to thank the organization and all the employees
there for their special respect and hard work by teaching us what the working environment
seems. For the whole positive suggestions and support.

Generally, in our country Ethiopia there is no enough practical programs. Due to this reason
a lot of problems have been seen when university students have join to the real world
working experience after their graduation. Some of these problems that happened are the
lack of work ethics, interpersonal communication, punctuality, knowledge of some
practical aspects on the field of study and generally students faced difficulties of how to
convert the theoretical skills to their real world practical skills. But having internship
programs in the present educational program is good in solving the above problems in
general. But specifically, this curriculum is very interesting in how to develop student’s
interpersonal relationships with the company employees to convert and compare our
theoretical skills into real world skills and this in turn enhances our knowledge and
experience. And also, this internship has improved our interpersonal communication,
punctuality and other aspects of the real-world environment.

4.2. Recommendation for the company


In our country the courses we take during our university learning time are not compatible
with the job opportunities we have out there. While learning those whole courses are
important for students to increase our knowledge but since acquiring full knowledge on
those whole courses is difficult students need to implement the knowledge they get in to
real world practical works. Here in our country the companies we have mostly rely on few
or specific works. This limits the economic gain the companies would have. The more work
opportunities companies create the wealthier they become. Therefore, we recommend our
company and any other governmental and private organizations to create more work
opportunities by taking research’s on our country’s university learning curriculums and
widening the work departments so that it is compatible with the knowledge that the
graduators have when he/she completes university life time.

44
References

[1] R. S.Pressman, in Software engineering: a practitioner’s approach / Roger S. Pressman.—


5th ed., Boston, McGraw-Hill, 2001, pp. 20-21.

[2] tutorial point, 2018. [Online]. Available: http://www.tutorialpoint.com. [Accessed 17


February 2019].

[3] "Net beans," Netbeans, 2017. [Online]. Available: https://www.netbeans.org. [Accessed 16


February 2019].

[4] "Products," mysql, 2019. [Online]. Available: https://www.mysql.com. [Accessed 16


February 2019].

45
Appendices

package entity;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

@Entity
@Table(name = "address")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Address.findAll", query = "SELECT a FROM Address a")

46
, @NamedQuery(name = "Address.findById", query = "SELECT a FROM Address a WHERE
a.id = :id")
, @NamedQuery(name = "Address.findByCoordinate", query = "SELECT a FROM Address a
WHERE a.coordinate = :coordinate")
, @NamedQuery(name = "Address.findBySubCity", query = "SELECT a FROM Address a
WHERE a.subCity = :subCity")
, @NamedQuery(name = "Address.findByStAddress", query = "SELECT a FROM Address a
WHERE a.stAddress = :stAddress")
, @NamedQuery(name = "Address.findByMobileNumber1", query = "SELECT a FROM
Address a WHERE a.mobileNumber1 = :mobileNumber1")
, @NamedQuery(name = "Address.findByMobileNumber2", query = "SELECT a FROM
Address a WHERE a.mobileNumber2 = :mobileNumber2")
, @NamedQuery(name = "Address.findByPhoneNumber", query = "SELECT a FROM Address
a WHERE a.phoneNumber = :phoneNumber")
, @NamedQuery(name = "Address.findByEmail", query = "SELECT a FROM Address a
WHERE a.email = :email")
, @NamedQuery(name = "Address.findByWebsite", query = "SELECT a FROM Address a
WHERE a.website = :website")})
public class Address implements Serializable {

private static final long serialVersionUID = 1L;


@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "coordinate")
private String coordinate;

47
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "subCity")
private String subCity;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "stAddress")
private String stAddress;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "mobileNumber1")
private String mobileNumber1;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "mobileNumber2")
private String mobileNumber2;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "phoneNumber")
private String phoneNumber;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-
]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid
email")//if the field contains email address consider using this annotation to enforce field validation
@Basic(optional = false)

48
@NotNull
@Size(min = 1, max = 45)
@Column(name = "email")
private String email;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "website")
private String website;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "addressid")
private Collection<Individual> individualCollection;
@JoinColumn(name = "city_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private City cityId;
@JoinColumn(name = "country_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Country countryId;
@JoinColumn(name = "state_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private State stateId;
@OneToMany(mappedBy = "addressid")
private Collection<Business> businessCollection;
@OneToMany(mappedBy = "addressid")
private Collection<Store> storeCollection;

public Address() {
}

49
public Address(Integer id) {
this.id = id;
}

public Address(Integer id, String coordinate, String subCity, String stAddress, String
mobileNumber1, String mobileNumber2, String phoneNumber, String email, String website) {
this.id = id;
this.coordinate = coordinate;
this.subCity = subCity;
this.stAddress = stAddress;
this.mobileNumber1 = mobileNumber1;
this.mobileNumber2 = mobileNumber2;
this.phoneNumber = phoneNumber;
this.email = email;
this.website = website;
}

public Integer getId() {


return id;
}

public void setId(Integer id) {


this.id = id;
}

public String getCoordinate() {


return coordinate;
}

50
public void setCoordinate(String coordinate) {
this.coordinate = coordinate;
}

public String getSubCity() {


return subCity;
}

public void setSubCity(String subCity) {


this.subCity = subCity;
}

public String getStAddress() {


return stAddress;
}

public void setStAddress(String stAddress) {


this.stAddress = stAddress;
}

public String getMobileNumber1() {


return mobileNumber1;
}

public void setMobileNumber1(String mobileNumber1) {


this.mobileNumber1 = mobileNumber1;
}

51
public String getMobileNumber2() {
return mobileNumber2;
}

public void setMobileNumber2(String mobileNumber2) {


this.mobileNumber2 = mobileNumber2;
}

public String getPhoneNumber() {


return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {


this.phoneNumber = phoneNumber;
}

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}

public String getWebsite() {


return website;
}

52
public void setWebsite(String website) {
this.website = website;
}

@XmlTransient
public Collection<Individual> getIndividualCollection() {
return individualCollection;
}

public void setIndividualCollection(Collection<Individual> individualCollection) {


this.individualCollection = individualCollection;
}

public City getCityId() {


return cityId;
}

public void setCityId(City cityId) {


this.cityId = cityId;
}

public Country getCountryId() {


return countryId;
}

public void setCountryId(Country countryId) {


this.countryId = countryId;
}

53
public State getStateId() {
return stateId;
}

public void setStateId(State stateId) {


this.stateId = stateId;
}

@XmlTransient
public Collection<Business> getBusinessCollection() {
return businessCollection;
}

public void setBusinessCollection(Collection<Business> businessCollection) {


this.businessCollection = businessCollection;
}

@XmlTransient
public Collection<Store> getStoreCollection() {
return storeCollection;
}

public void setStoreCollection(Collection<Store> storeCollection) {


this.storeCollection = storeCollection;
}

@Override

54
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Address)) {
return false;
}
Address other = (Address) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}

@Override
public String toString() {
return "entity.Address[ id=" + id + " ]";
}

55
56

You might also like