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

Samson Endale Internship Report

Uploaded by

sabubeker54
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)
22 views

Samson Endale Internship Report

Uploaded by

sabubeker54
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/ 62

Bahir Dar University

Bahir Dar Institute Of Technology


School of Computing and Electrical Engineering

Samson Endale Mergissa (0401365)


2/23/2015

For Four Month (Oct 2015- Feb 2015)


Samson Endale Mergissa (0401365)

Declaration
This is my declaration. My name is Samson Endale and I’m a Computer Science and
Engineering student at Bahir Dar University. For the last four month (October 2014 – February
2015) I was an intern at Epion Computer Solutions PLC (http://www.epioncss.com) under the
guidance of Ins. Adamu Teshome (Mentor) and Enque Girma (Supervisor).

I clarify that my work is original and compiled according to the internship report writing
guideline given by the Institute.

As the student academic advisor, I clarify that the internship prepared by the student is
original work and compiled according to the guideline provided by the Institute office as far as
my knowledge is concerned.

Intern: Samson Endale (ID: 0401365)

4th year Computer Science and Engineering Student

Signature Date

Mentor: Ins. Adamu Teshome

School of Computing and Electrical Engineering Instructor

Signature Date

1
Samson Endale Mergissa (0401365)

Acknowledgments
I would like to thank the following peoples for their help for my accomplishments for the
internship. My internship experience may not be the same without their sincere help. First of all I would
to thank God and those people listed below.

Robel Getachew
Robel Getachew is a computer science graduate from Jimma University. He is one of the
employees of Epion and very experienced in CMS especially on Joomla and Drupal. He is the
head of the web development team. He has thought and helps me in Joomla, Less, SASS,
Bootstrap and Responsive web design.

Elias Sofani
Elias Sofani is a computer science graduate (MSc) from Addis Abeba University. He is one of the
employees of Epion. He is experienced in C# and ASP.NET. He is the head of software
development team. He has thought and help me in C#, Version Control System particularly
Git with Github, Markdown and a lot more but most of all he have thought me Software
Design Patterns, Test Driven Development and Behavioral Driven Development.

Enque Girma

Enque Girma is an Electrical Engineer graduate from Mekelle University and one of the founders
of Epion with his brother is also my supervisor. He is the member of the software development
team, head of the Web Hosting and member of Graphics Design team. He is experienced in Java,
Android Software Development, PHP, Symphony framework and Laravel framework. He has
thought me Android Software Development, phpunit and the most of all the PHP
framework I felt in love with Laravel.

Dawit
Dawit is the school principal of Beteseb Academy. While I was teaching voluntarily at Beteseb
Academy, he was the key person to make everything happen from start to finish.

Add at last but not least I would like to thank my family for being helpful while I face many
challenges and for countless sleepless nights.

2
Samson Endale Mergissa (0401365)

Executive Summary
Internship program is where students will get a bit of a test how the industry works and students
are expected to achieve a better understanding about enterprise level products, industries problem solving
skill, teamwork, latest trends of technologies and so much more.

I believe I have achieved more than my expectation. I have create three websites, a web
application, an android application, few C# simple apps and two libraries implemented in Java and PHP
and even more I have voluntarily taught web design for preparatory student around my compound in my
spare time with the approval of my supervisor. I never thought I could do this all in just four months but I
did and am proud of that.

However the thing I most proud of is the experience I have gain during the internship. Now I can
say after I graduate I will be successful confidently and thanks to Bahir Dar University for giving me the
base I need to fulfill my dreams.

This document is prepared according to the format provided by the university industry linkage
office. I hope you find what you where looking but please I have removed a lot of graphics in this
document and replace it with the link please visit them. Thanks for reading.

3
Samson Endale Mergissa (0401365)

List of Tables
Table 1: Method, Tools and Techniques ____________________________________________ 27
Table 2: Problems___________________________________________________________ 31

4
Samson Endale Mergissa (0401365)

List of Figures

Figure 1: Addis Biz Old System Logo................................................................................................................ 12


Figure 2: Organizetional Structure ................................................................................................................... 16
Figure 3: Work flow ........................................................................................................................................... 17
Figure 4: CMS .................................................................................................................................................... 19
Figure 5: Joomla ................................................................................................................................................ 19
Figure 6: Bootstrap............................................................................................................................................ 19
Figure 7: Less .................................................................................................................................................... 20
Figure 8: SASS .................................................................................................................................................. 20
Figure 9: jQuery ................................................................................................................................................ 20
Figure 10: Responsive Web Design .................................................................................................................. 21
Figure 11: TDD ................................................................................................................................................... 21
Figure 12: BDD .................................................................................................................................................. 21
Figure 13: VCS....................................................................................................................................................24
Figure 14: Git .....................................................................................................................................................24
Figure 15: Github ...............................................................................................................................................24
Figure 16: Markdown ........................................................................................................................................25
Figure 17: Atlassian Source Tree.......................................................................................................................25
Figure 18: Composer .........................................................................................................................................26
Figure 19: Laravel ..............................................................................................................................................26
Figure 20: Design Pattern .................................................................................................................................27
Figure 21: ER diagram of Addis Biz..................................................................................................................38
Figure 22: Class Diagram of the Models ..........................................................................................................39
Figure 23: Clas Diagram of the controller ........................................................................................................42
Figure 24: Addis Biz front page ........................................................................................................................42
Figure 25: Addis Biz Login Page .......................................................................................................................42
Figure 26: Addis Biz Signup Page.....................................................................................................................43
Figure 27:Addis Biz Dashboard for admin.......................................................................................................43
Figure 28: Addis Biz Company List for a User.................................................................................................44
Figure 29: Addis Biz Update Profile .................................................................................................................44
Figure 30: Addis Biz Avater Changer ...............................................................................................................45
Figure 31: Addis Biz Subcategory view .............................................................................................................45
Figure 32: Addis Biz Updating Category ..........................................................................................................46
Figure 33: Add new Company...........................................................................................................................46
Figure 34: Addis Biz more on add company ....................................................................................................47
Figure 35: Addis Biz front end list of categories ..............................................................................................47
Figure 36: Addis Biz front end list of subcategories in category.................................................................... 48
Figure 37: Addis Biz front end list of companies on a given subcategory ..................................................... 48
Figure 38: Addis Biz front end company location tab .....................................................................................49
Figure 39: Addis Biz front end businesss detail tab ........................................................................................49

5
Samson Endale Mergissa (0401365)

Figure 40: Addis Biz front end Rating tab .......................................................................................................50


Figure 41: Addis Biz front end review ..............................................................................................................50
Figure 42: Addis Tena front page ..................................................................................................................... 51
Figure 43: Addis Tena Responsive navigation for small devise......................................................................52
Figure 44: Zede Engineering PLC.....................................................................................................................52
Figure 45: Home page of zede Engineering .....................................................................................................53
Figure 46: Nechisar Nationa Park Logo ...........................................................................................................54
Figure 47: Nechisar National Park Home Page ...............................................................................................54
Figure 48: Snapshot after Testing ....................................................................................................................55
Figure 49: JUnit Test for Andegna Chronology...............................................................................................56
Figure 50: My Github Account .........................................................................................................................56
Figure 51: My C# calculator .............................................................................................................................. 57
Figure 52: My C# Unhider ................................................................................................................................ 57
Figure 53:Andegna call me back permissions..................................................................................................58
Figure 54: Andegna call me back running .......................................................................................................58
Figure 55: Andegna USSD running ..................................................................................................................59
Figure 56: Andegna USSD drawer navigation .................................................................................................59
Figure 57: Beteseb Acadamy Logo ................................................................................................................... 60

Table of content
Declaration ___________________________________________________ 1

Acknowledgments ______________________________________________ 2

Robel Getachew ______________________________________________ 2

Elias Sofani _________________________________________________ 2

Enque Girma ________________________________________________ 2

Dawit _____________________________________________________ 2

Executive Summary _____________________________________________ 3

List of Tables __________________________________________________ 4

List of Figures _________________________________________________ 5

Table of content ________________________________________________ 6

List of Acronyms ______________________________________________ 10

6
Samson Endale Mergissa (0401365)

Acronyms _____________________________________________________________ 10
Long form _____________________________________________________________ 10

Project Addis Biz (addisbiz.com) ____________________________________ 11

Short Summary of Addis Biz _____________________________________ 11

Project Statement and Justification __________________________________ 12

Objective of Addis Biz _________________________________________ 12

Methodology _______________________________________________ 12
Responsive Web Design ___________________________________________________ 12
Literature review ________________________________________________________ 13

Epion Background _____________________________________________ 15

History ___________________________________________________ 15

Products and services__________________________________________ 15


Products ______________________________________________________________ 15
Services ______________________________________________________________ 15

Clients ____________________________________________________ 16

Organization Structure _________________________________________ 16

Work flow _________________________________________________ 17

Why I select Epion? ___________________________________________ 17

Section of the company I have worked on ____________________________ 18

Executed Tasks _______________________________________________ 18

Methods, Tools and Techniques ____________________________________ 18


Methods, Tool or Technique ________________________________________________ 18
Description ____________________________________________________________ 18

Problems____________________________________________________ 28
Knowledge ____________________________________________________________28
Hit Counter ____________________________________________________________28
Ethiopian Calendar_______________________________________________________29

7
Samson Endale Mergissa (0401365)

Call Be Back ___________________________________________________________30


Working Time __________________________________________________________30
Hair Cut ______________________________________________________________30
Tutorials ______________________________________________________________30
Laptop _______________________________________________________________ 31

Recommendations _____________________________________________ 32

For the University, School, Department _____________________________ 32

For future interns ____________________________________________ 32

What I have gained in terms of improving my practical skills_________________ 32

What I have gained in terms of upgrading my theoretical knowledge ___________ 33

What I have gained in terms of improving industrial problem solving capability ____ 34

What I have gained in terms of improving my team playing skill ______________ 34

What I have gained in terms of improving your leadership skills ______________ 34

What I have gained in terms of understanding about work ethics issues, industrial
psychology and related issues ______________________________________ 35
Ethics ________________________________________________________________35
Industrial Psychology _____________________________________________________35
What I have gained in terms of entrepreneurship skills_____________________ 36

What I have gained in terms of interpersonal communication skills ____________ 36

Conclusion and recommendations for Epion ____________________________ 37

References___________________________________________________ 37

Appendices __________________________________________________ 38

Addis Biz __________________________________________________ 38


ER diagram ____________________________________________________________38
Class Diagram __________________________________________________________38
Addis Tena Higher Clinic _______________________________________ 50

Zede Engineering PLC _________________________________________ 52

8
Samson Endale Mergissa (0401365)

Nechi Sar National Park ________________________________________ 53

Calendar __________________________________________________ 54

Chorology _________________________________________________ 55

Calculator _________________________________________________ 57

Unhider ___________________________________________________ 57

Andegna Call Me Back _________________________________________ 58

Andegna USSD ______________________________________________ 59

Beteseb Academy ____________________________________________ 59


How Students were selected? _______________________________________________ 60
Schedule _____________________________________________________________ 60
Students Achievements ___________________________________________________ 60

9
Samson Endale Mergissa (0401365)

List of Acronyms
Acronyms Long form

BDD Behavior driven development

BDU Bahir Dar University


Bahir Dar University E-Voting
BDUEV
BIT Bahir Dar University Institute of Technology

CMS Content Management System

DB Data Base

PHP PHP: Hyper Text Processor

PSR PHP Standard Request

-SASS Syntactically Awesome Style Sheet

TDD Test driven Development

URL Unified Resource Location

VCS Version control system

10 
Samson Endale Mergissa (0401365)

Project Addis Biz (addisbiz.com)


Short Summary of Addis Biz

Addis Biz is simply a Business directory.

Business directory is a website or printed listing of information which lists all business with in
some category by business, location, activity or size is the direct definition from Wikipedia.

The main business model is anyone can add and modify his company in the system on the
predefined subcategories for a free listing and anyone can view the listings and authenticated
users can review and rate on any company. Every company has a listing type, rating and a hit
count which is used to order the company listed in every subcategories. A company has listing
type for every subcategory his listed on and can pay to upgrade the company listing type. The
listing type is predefined

 Anonymous
 Verified
 Regular
 Bronze
 Silver
 Golden
 Diamond
 Premium
 Ultimate

The first three are Anonymous, Verified and Regular are free listing types. The Anonymous is the
default for a free listing. The verified is when a company contact Epion to verify it's a real
company. If a user has paid to upgrade his company, other companies added by him will upgrade
to Regular.

The second three are Bronze, Silver and Golden are paid subscriptions. Anyone can pay to
upgrade to this listing but to upgrade to the Golden listing type a company must be the top rated
in his upgrading subcategory.

The last three are Diamond, Premium and Ultimate listing types. These are unique and expensive
listings. Only one for each subcategory can be listed as Diamond, Premium or Ultimate. For
example in the IT category and Web design subcategory one and only one company can have the
ultimate listing type.

11 
Samson Endale Mergissa (0401365)

The domain name www.addisbiz.com is already been registered by Epion and currently there is a
simple directory service created a year ago using the same module used by 2merkato. And this
why adds biz is decided to be implemented from the scratch.

Figure 1: Addis Biz Old System Logo

The new system will be deployed in this month after the web design team finish redesigning the
front end.

More about the system is available after the Appendices.

Project Statement and Justification


In Ethiopia there are more than 100 business directories. The most popular being 2merkato
and Gebeya.net. The problem is almost 90% of the business directories are built in CMS
modules including 2merkato . Because of the CMS module the systems are hard to customize
and most of them just accepted the modules business model. We develop the system from scratch
based on OUR own business model with high customization, scalability and simplicity kept the
key features. And others are serving from outside Ethiopia including Gebeya.net. Making the
less usable because it cost to contact. When Epion start the Addis biz project it was obvious that
there are a lot of compotators on the field but we believe we can win the market by our unique
business model and extensive customer support.

Objective of Addis Biz


The main objective is to be the leading business directory in Addis Ababa which any customer can rely on
in one sentence.

Methodology

Responsive Web Design


Addis biz’s web pages are all fully responsive. It uses Bootstrap for responsive grid layout.

12 
Samson Endale Mergissa (0401365)

More description about responsive web design can be found in the Method, tools and Techniques
category.

Unit Testing

Almost all routes and controllers have been tested using phpunit.

More description about phpunit can be found in the Method, tools and Techniques category.

Framework
Addis biz’s have been developed using Laravel 4.2.

More description about Laravel can be found in the Method, tools and Techniques category.

MVC
Since Addis biz is developed by Laravel, the framework enforces to use a strong MVC architecture.
Where the Models are subclass of Eloquent which is the frameworks ORM, Controllers are
subclass of BaseController Class and the views are a Blade templates which is the frameworks
default templeting engine.

Literature review
As i was saying Epion had a working business directory implement by Joomla, which I was
referring while I was implementing addis biz. And I did review 2merkato, gebeya.net and yellow
page for same ideas and inspirations.

But most of the time when I review the old system there was a miss match on the business model
of the new system and it was a lot harder to emulate the old system.

13 
Samson Endale Mergissa (0401365)
This is directly copied from the old System about us page
http://addisbiz.com/about-us
AddisBiz.com is a new kind of website that focuses on the
business aspects of Ethiopia. It provides business news,
business directories and business tips to people who are
engaged or are interested in doing business in Ethiopia. No
registration is needed to use AddisBiz.com except for adding a
business listing for your company.

Registered users can submit a business listing for their own


company. This Listings will be reviewed and moderated by
our team.

All data and information provided on this site is for


informational purposes only. AddisBiz.com makes no
representations as to accuracy, completeness, currentness,
suitability, or validity of any information on this site and will
not be liable for any errors, omissions, or delays in this
information or any losses, injuries, or damages arising from
its display or use. All information is provided on an as-is
basis.

The AddisBiz Team

[email protected]@addisbiz.com
22 Mazoria, Around Golagul Tower
Addis Ababa, Ethiopia

14 
Samson Endale Mergissa (0401365)

Epion Background
History
Epion was founded in Dec, 2011 by two brother Enque, and Michael Girma. Enque is an under
graduate Electrical Engineer from Mekelle university lives around sidist kilo and Michael is an Computer
Science under graduate who is currently living in Santa Monica, California USA. Epion was planning to
work on the networking and software design but currently it’s more interested in Web Hosting, SEO, Pay-
Per Click advertisement, Graphics Design, Web Design and Software Development.

Epion has two main offices which is located in 4th Floor, Office B of French Kiss Building, around
22 Mazoria next to H & M Building with (Telephone: +251 911 72 80 70, +251 924 15 55 56, Email :
[email protected] Addis Ababa, Ethiopia and the other in USA, California 1138 12th St. Santa Monica,
CA 90403 Telephone: 310 570 9291 with the same email.

The USA branch is primarily responsible for the web hosting and out souring bids.

For more information visit http://www.epioncss.com.

Products and services

Products
 Clinic / Hospital Software
 Addis Biz Business Directory
 Student Management System(under development)
 Client Management System(post development phase)

Services
 Web Hosting
 SEO
 Pay Per Click Advertizing
 Web Design
 And Graphics Design

15 
Samson Endale Mergissa (0401365)

Clients
They have a lot of clients special who have host their website host by Epion but I will just list who
are clients of the other teams (Web Design, Software Development and Graphics Design).

 Ethiopian Wildlife Conservative Authority


 Ministry of Culture and Tourism
 Ethiopian Competitiveness Faculty
 Feed Green Ethiopia Exports PLC
 Iconic Tracking
 Kefetew Guest House
 Kololo Promotion and Commission Agency
 Langano Tour and Travel
 Rapha Pharmaceuticals
 Tebita Ambulance Pre-Hospital Emergency
 Zede Engineering PLC
 Zen International Markets
 Addis Tena Higher Clinic
 Around Ethiopia.com
 Ethiopian Construction Proxy and much more . . .

To view check and to find out more visit http://epioncss.com/portfolio.

Organization Structure
Epion did have a few outstanding employees but they are always categorized in team.

Founders

Software Draphic Design


Web Design Team Web Hosting Finance
Developement Team

Search Engine Pay Per Click


Optimization AdvertisingTeam

Figure 2: Organizetional Structure

16 
Samson Endale Mergissa (0401365)

Work flow

Draphic Design Software


Team Developement

Web Design
Team Pay Per Click
AdvertisingTeam
Web Hosting
Search Engine
Optimization

Figure 3: Work flow

Why I select Epion?


Because when I was researching companies for internship, I first googled with the keyword
"Ethiopia Web Design Software Development" and i got a list of companies with Epion being the
second. When I contact GAF Systems (the first on the list and nearest to my home) they told me
the already have too much interns on this year and they have no resource to have more intern on
their company. So I called Epion and Enque asked me what I am planning to work on and i told
him web design or software design, he told me to bring projects I have already implemented. The
next morning I compile my projects and go to the main office (they call it contact center) at
hayahulet mazoria. After I introduce myself and Enque literally ask me to Impress Him. I showed
him my ESN (Ethiopian Social Network) a PHP web application from last year IE (Internet
Engineering) project which I gained an A from built by PHP with full MVC and Object Oriented
Programming, BDUSN (Bahir Dar University Social Network) which i gained an A from last year
Advanced Programming project built by J2EE with MVC and at last a Desktop application called

17 
Samson Endale Mergissa (0401365)

Personal Transaction Tracker built by J2SE for last year Object Oriented Programming which I
gained an A+ from. And he told me he's impressed and am accepted.

Section of the company I have worked on


Epion employees works on team. They have

 Web Design team


 Software Development team
 Graphics Design team and
 Web Hosting team

And I did get a chance to work on Web Design and Software Development team.

Web Design
The web design team is a team experienced with Web technologies; it has two employees which
master CMS's like Joomla and Drupal, jQuery, Bootstrap, Responsive web design and so much
more. Currently Epion has won a bid from Ministry of tourism to create more than 30 sites for all
Ethiopian parks and museums. One of them was Nechsar national park where i got the pleasure
doing. Zege Engineering

Software Development
The software development team is a team experiences with visual and high level programming
languages, It has three members where the two of them are the founders and one of them is currently not
active because he is US.

Executed Tasks
The basic work tasks are all related to the project and can be found after the appendices

Methods, Tools and Techniques


Methods, Tool or Technique Description

18 
Samson Endale Mergissa (0401365)

A content management system (CMS) is a


computer application that allows publishing,
editing and modifying content, organizing,
deleting as well as maintenance from a central
interface. Such systems of content management
provide procedures to manage workflow in a
collaborative environment.

Epion give me the chance to choose from Drupal


Figure 4: CMS
and Joomla and I do know neither of them but still
I choose Joomla because of its popularity.

Joomla is a free and open-source content


management system (CMS) for publishing web
content. It is built on a model–view–controller web
application framework that can be used
independently of the CMS.

Joomla is written in PHP, uses object-oriented


programming (OOP) techniques and software
design patterns, stores data in a database, and
Figure 5: Joomla includes features such as page caching, RSS feeds,
printable versions of pages, news flashes, blogs,
polls, search, and support for language
internationalization.

All the sites I have created are based on Joomla


2.5 with Yoo Theme Master.

Bootstrap is a free collection of tools for creating


websites and web applications. It contains HTML
and CSS-based design templates for typography,
forms, buttons, navigation and other interface
components, as well as optional JavaScript
extensions. As of February 2015 it was the No.1
project on GitHub with over 77,000 stars and
more than 29,000 forks.

The company standard theme uses bootstrap and I


was required to know it to optimally customize it
and lately I used it on the Addis biz. It makes easy
Figure 6: Bootstrap to create a responsive website with its flexible
layout.

19 
Samson Endale Mergissa (0401365)

Less (sometimes stylized as LESS) is a dynamic


style sheet language that can be compiled into
Cascading Style Sheets (CSS), or can run on the
client-side and server-side. Less is influenced by
Sass and has influenced the newer "SCSS" syntax of
Sass, which adapted its CSS-like block formatting
syntax. Less is open-source. Its first version was
written in Ruby, however in the later versions; use
of Ruby has been deprecated and replaced by
JavaScript. The indented syntax of Less is a
nested meta language, as valid CSS is valid Less
code with the same semantics. Less provides the
following mechanisms: variables, nesting, mixins,
operators and functions; the main difference
Figure 7: Less between Less and other CSS precompilers being
that Less allows real-time compilation via less.js
by the browser.

Bootstrap is primarily written in less and then


compiled to CSS. And to change its colors it’s hard
to change it because it’s everywhere but it can be
simply edited the less file and compile the
customized less to get a custom bootstrap.css file.

Sass (Syntactically Awesome Stylesheets) is a


stylesheet language initially designed by Hampton
Catlin and developed by Natalie Weizenbaum.
After its initial versions, Weizenbaum and Chris
Eppstein have continued to extend Sass with
SassScript, a simple scripting language used in
Sass files.

Figure 8: SASS Earlier version of bootstrap was written by SASS


but I just study this just to know other options to
less.

jQuery is a cross-platform JavaScript library


designed to simplify the client-side scripting of
HTML. Used by over 60% of the 10,000 most
visited websites, jQuery is the most popular
JavaScript library in use today. jQuery is free,
open-source software licensed under the MIT
Figure 9: jQuery License.
I have used it on almost everywhere I probably
need java script. I other word I starting to forget
java script because of the intensive use of this.

20 
Samson Endale Mergissa (0401365)

Responsive web design is an approach to web


design aimed at crafting sites to provide an
optimal viewing experience—easy reading and
navigation with a minimum of resizing, panning,
and scrolling—across a wide range of devices
(from desktop computer monitors to mobile
phones).

Figure 10: Responsive Web Design All websites and Addis biz are fully responsive.

Test-driven development (TDD) is a software


development process that relies on the repetition
of a very short development cycle: first the
developer writes an (initially failing) automated
test case that defines a desired improvement or
new function, then produces the minimum amount
of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck,
who is credited with having developed or
'rediscovered' the technique, stated in 2003 that
TDD encourages simple designs and inspires
confidence.

I used this technique to develop


Andegna/calendar which is having about 143 tests
and about 330 assertions. You can say that it’s
heavily tested and all test where written before
Figure 11: TDD any implementation.

I used this technique to develop


Andegna/EthiopianChronology too. The only
difference being I used phpunit for the php and
jUnit for the java.

In software engineering, behavior-driven


development (BDD) is a software development
process that emerged from test-driven
development (TDD) Behavior-driven development
combines the general techniques and principles of
TDD with ideas from domain-driven design and
object-oriented analysis and design to provide
software development and management teams
with shared tools and a shared process to
Figure 12: BDD collaborate on software development. Based on
principles of Hoare logic.

21 
Samson Endale Mergissa (0401365)

The main area I learn this is, there is a tool called


behat which uses BDD. In simple explanation you
just write features in terms of scenarios and the
behat generate a test case. After the test case is
generated it’s the same as TDD.

I didn’t mention behat on this list as a tool


because the project I was using it was failed. The
only thing I was left was the knowledge and
experience.

PSR0 PSR(PHP standardization request) is a standard,


PSR1 voted and accepted by the php-fig who are the
project leaders of popular PHP projects like
PSR2 Laravel, doctrin, composer and much more.

PSR3 PSR0: Auto loading Standard


is the first standard accepted by the php-fig which
PSR4 is currently deprecated. PSR-4 is now
recommended as an alternative. An auto loading
means to import class dynamically. Usually
inexperienced php developer try to require a class
by using require_once and include_once
every file but me I will just use the standard and
simple load my class dynamically.

PSR1: Basic Coding Standard


This standard comprises what should be
considered the standard coding elements that are
required to ensure a high level of technical
interoperability between shared PHP codes.

PSR2: Coding Style Guide


This guide extends and expands on PSR-1, the
basic coding standard.

The intent of this guide is to reduce cognitive


friction when scanning code from different
authors. It does so by enumerating a shared set of
rules and expectations about how to format PHP
code.

The style rules herein are derived from


commonalities among the various member
projects. When various authors collaborate across
multiple projects, it helps to have one set of
guidelines to be used among all those projects.
Thus, the benefit of this guide is not in the rules
themselves, but in the sharing of those rules.

22 
Samson Endale Mergissa (0401365)

PSR3: Logger Interface


This document describes a common interface for
logging libraries.

The main goal is to allow libraries to receive a


Psr\Log\LoggerInterface object and write
logs to it in a simple and universal way.
Frameworks and CMSs that have custom needs
MAY extend the interface for their own purpose,
but SHOULD remain compatible with this
document. This ensures that the third-party
libraries an application uses can write to the
centralized application logs.

PSR4: Autoloader
This PSR describes a specification for auto loading
classes from file paths. It is fully interoperable,
and can be used in addition to any other auto
loading specification, including PSR-0. This PSR
also describes where to place files that will be
auto loaded according to the specification.

Simply using PSR is great just knowing it will make


you more effective while browsing a source files.
Composer uses PSR0 and PSR4 to autoload classes.

23 
Samson Endale Mergissa (0401365)

Revision control, also known as version control


and source control (and an aspect of software
configuration management), is the management
of changes to documents, computer programs,
large web sites, and other collections of
information. Changes are usually identified by a
number or letter code, termed the "revision
number", "revision level", or simply "revision". For
example, an initial set of files is "revision 1".
When the first change is made, the resulting set is
"revision 2", and so on. Each revision is associated
with a timestamp and the person making the
Figure 13: VCS change. Revisions can be compared, restored, and
with some types of files, merged.

As Epion standard am told that I must uses a VCS.


In addition Epion have a private repository on
github where they can collaborate.

Git is a distributed revision control system with an


emphasis on speed, data integrity, and support for
distributed, non-linear workflows. Git was initially
designed and developed by Linus Torvalds for
Linux kernel development in 2005, and has since
become the most widely adopted version control
system for software development.

As with most other distributed revision control


systems, and unlike most client–server systems,
Figure 14: Git every Git working directory is a full-fledged
repository with complete history and full version-
tracking capabilities, independent of network
access or a central server.

GitHub is a web-based Git repository hosting


service, which offers all of the distributed revision
control and source code management (SCM)
functionality of Git as well as adding its own
features. Unlike Git, which is strictly a command-
line tool, GitHub provides a web-based graphical
Figure 15: Github interface and desktop as well as mobile
integration. It also provides access control and
several collaboration features such as wikis, task
management, and bug tracking and feature
requests for every project.

24 
Samson Endale Mergissa (0401365)

Markdown is a markup language with plain text


formatting syntax designed so that it can be
converted to HTML and many other formats using
a tool by the same name. Markdown is often used
to format readme files, for writing messages in
online discussion forums, and to create rich text
using a plain text editor.

Even the main part of this document initially


written in markdown. I have the pleasure of
learning this because of github which use it
Figure 16: Markdown heavily.

Atlassian Source Tree is GUI software for git with


ability to connect to github and bitbucket.

While I do love using CLI, source tree become the


ultimate choose for me to do advance git
operation like rebase on merging.
Figure 17: Atlassian Source Tree
http://www.sourcetreeapp.com/

25 
Samson Endale Mergissa (0401365)

Composer is an application-level dependency


manager for the PHP programming language that
provides a standard format for managing
dependencies of PHP software and required
libraries. Composer is strongly inspired by
Node.js's "npm" and Ruby's "bundler".

Composer runs through the command line and


installs dependencies (e.g. libraries) for an
application. It also allows users to install PHP
applications that are available on Packagist which
is its main repository containing available
packages. It also provides autoload capabilities for
libraries that specify autoload information to ease
usage of third-party code.

When I first start Laravel, the only way to


download it was though composer and composer
only. Then I start learning it and visiting the main
websites for searching packages on Packagist. And
even I release the andgna/calendar on the
Figure 18: Composer composer and any one can require it by
"andegna/calender": "dev-master".

The main repository url


https://github.com/andegna/calender
The composer repository url
https://packagist.org/packages/andegna/calende
r

Laravel is a free, open source PHP web


application framework, designed for the
development of model–view–controller (MVC) web
applications. Laravel is released under the MIT
License, with its source code hosted on GitHub.

According to a December 2013 developers survey


on PHP frameworks popularity, Laravel was listed
as the most popular PHP framework of 2013,
followed by Phalcon, Symfony2, CodeIgniter and
others. As of August 2014, Laravel is the most
popular and watched PHP project on GitHub.
Figure 19: Laravel
I literally felt in love with Laravel and with it’s
beautiful syntax. I have create Addis biz using 4.2
and a Student Management System using the beta
version 5.0 which is now stable just before two
weeks and BDUEV which is currently not finished
yet.

26 
Samson Endale Mergissa (0401365)

In software engineering, a design pattern is a


general reusable solution to a commonly occurring
problem within a given context in software
design. A design pattern is not a finished design
that can be transformed directly into source or
machine code. It is a description or template for
how to solve a problem that can be used in many
different situations. Patterns are formalized best
practices that the programmer can use to solve
common problems when designing an application
or system. Object-oriented design patterns
typically show relationships and interactions
between classes or objects, without specifying the
final application classes or objects that are
involved. Patterns that imply object-orientation
Figure 20: Design Pattern or more generally mutable state are not as
applicable in functional programming languages.

I have read a book called PHP design patters and


head first design patters which where both
recommended by the company to deeply
understand the Laravel IoC and dependency
injection of the Laravel framework. Knowing
design patterns make a developer communicate
verbally and to make the design robust.

Facade pattern The facade pattern (or façade pattern) is a


software design pattern commonly used with
object-oriented programming. The name is by
analogy to an architectural facade.

A facade is an object that provides a simplified


interface to a larger body of code, such as a class
library.

Laravel uses the facades pattern heavily and it’s


essential to know this.

Table 1: Method, Tools and Techniques

27 
Samson Endale Mergissa (0401365)

Problems
Problem Description and Solution

Description:
Knowledge Knowledge was the hardest problem I faced while working at Epion.
Almost on all project there is at least one library, programming
language or tool am not familiar with. I was expected to know them and
to know them well. And some of the technologies require to know other
technologies. For example while I was starting to study Laravel
framework obviously the first step is downloading it and to download
Laravel the only way is to use composer which I never know before
because I never used any php library before and was not exposed to the
php community.

Solution:
Studying is the only solution on this kind of problem without any short
cut.
I have read more than 6 books and watched a lot of tutorials but some
of them even harder to accomplish without a professional help.
In addition to my effort Epion give me a one to one training on Android,
C# and Laravel by the most experienced members of the respective
team leaders. Which am very thankful for. Generally speaking I have
learned a lot. Eg: Joomla, Laravel, Bootstrap, less, sass, jQuery, git,
phpunit, behat, design patterns, RESTfull urls and so much more . . .

Especially I believe learning Laravel make me a better person. I am not


the same person after mastering it.

Hit Counter
Description:
While I was developing Addis biz one of the challenges raise was in the
hit counter feature on the second version. The feature was that when a
user visits some company’s directory the hit counter will increment the
number of visitors count. The problem is a malicious user can refresh his
page let say a 1000 times and eventually his company will gain a 100 hit
increment. We have to find a way to filter the counter to only
increments for a unique uses.

Solution1:
The first solution was to only increments for only unique IP address of
the user. So when a request comes to a company with a same IP the

28 
Samson Endale Mergissa (0401365)

system wills not increments the hit count of the company.

While the first solution was valid theoretically another problem raised
when I implemented and test the system on a real server. Epion has a
dedicated server on Digital Ocean where the server is located in USA
and almost all request from Ethiopia have the same IP so the first
solution was a no go. And we were finding a new way.

Solution 2:
Last solution was to use a cookie lasting 3 hours when everyone visits a
specific company. If a cookie was set the counter will not increment the
hit, if not the counter will increments and set a cookie with that
company’s unique slug to last 3 hours And when ranking the hit counter
comes after the listing type and rating.

Ethiopian Calendar
Description:
While I was working on the Student Management System one of the key
functional requirement was to use Ethiopian date on all front end
inputs. And the problem is PHP(infect all programming languages) have
no native support for Ethiopians Calendars System.

Solution 1:
The first solution was to implement two functions in C which can be
submitted to the PHP Open Source project on github and wait until they
accept it uses it when the next version of PHP is released. The truth is
even if implementing the functions is very easy, the submission and
voting part of the on the PHP community is very hard and it takes time.
But indeed this was the best solution on the long term.

Solution 2:
We implement the converter in php based on the logic from Ethiopic
Calendar website. This library have no dependency and I personally
releases it open source using MIT license on github and any advanced
user can require it using composer using “andegna/calendar”.

Seeing the success of this library i was asked to implement in java too
and I did using the new Java 8 date and time flexible API. And I did
release it as open source under MIT license with the permission of the
company and any one can find it under github by
Andegna/EthiopianChronology.

This was the right decision because of the time and constraint there was
on the project. Even if the project fails I think the two libraries was

29 
Samson Endale Mergissa (0401365)

very successfully.
Call Be Back
Description:
While I was learning android It was hard to find a practical problem to
be solved by an app. One morning I was sending a call me back and I
noticed it takes a lot of time and the first thing was to download an app
called TelePort and I tried. Teleport is a state of the art application
developed by Ethiopian to remove the pain of remembering the telecom
features. By another problem raised when I was try to download it, It
size was more than 3Mb because of the reach functionality and graphics
and I am minimalist person who chooses lightweight when it comes to
software’s.

Solution:
I start developing my own app which is fast and lightweight about 300KB
in size with the most minimal interface. And I even learn more about
android while developing it(Andegna Call Me Back Requester).
Currently I am developing version 2 of that application with deferent
name (Andegna USSD).

Working Time
Description:
While the working hours of the companies was the same as the
Government time table it was much harder form me because the
contact center was at hayahulet and from ayer tena. When I left the
office at 11 o’clock because of the Addis Abeba’s transportation I
usually get home about 2:30 or 3 O’clock I even 4 o’clock one time.

Solution:
I proposed to my supervisor I prefer to work on lunch time and left
office earlier before the traffic got crowded. And Enque agreed and it
was much better. This is not an engineering solution but it was the
problem which was decreasing my productivity. Later It even helped me
to teach at Beteseb academy voluntarily.

Hair Cut
Description:
At summer my hair was a bit long and since I was working at the contact
center a lot of customers will come and my hair cut was not acceptable
by the company rule.

Solution:
the simplest solution was to cut my hair properly. And I did.
Tutorials
Description:
One of my friend in my neighborhood what to be a software engineer
and he was already starting studying HTML and he usually come home
for some guidance and it was a bit had to me to help him while a come

30 
Samson Endale Mergissa (0401365)

home late and feeling tiered.

Solution:
I come with thoughtful idea to teach Web Design for preparatory
students at his school called Beteseb Academy which is just about 100M
from my home. And i asked him if they have a good IT lab and if the
school was willing to give access to those interested students. He was
the member of their ICT club and he told me the school is willing and
wants to contact me. The next day I went to the school and meet Mr.
Dawit the school principal and he was very happy with that as long as
it’s on the free time of the students. I was very happy teaching them
and they did give me a certificate of appreciation and some cash even
though the program was completely voluntarily and I wasn’t expecting
it.
Laptop
Description:
My first laptop was Lenovo with 1.65GHz and when I was working on
android the emulator come with the android development tools was
unable to run because of my laptop performance.

Solution 1:
The first I start using the companies PC on the office but that wasn’t a
permanent solution because I wasn’t able to work at home and think
that after I left.

Solution 2:
The last permanent solution was to change a laptop and currently am
using Fujitsu with 2.15 Ghz speed.
Table 2: Problems

31 
Samson Endale Mergissa (0401365)

Recommendations
For the University, School, Department
Considering the problem identified by “Knowledge”, I wish that the university or someone to tech
as the cutting edge technology while we are at school.

For future interns


Students should always choose the best place to learn not based on the money of the city. Money
will eventually be lost but their knowledge is the thing going to stay forever making much more money
more that they imagine.

What I have gained in terms of


improving my practical skills
This is the part I really shine. Before internship I was very confident about PHP, java and most of the web
technology but when I saw the REAL world most of the thing I know was already outdated or deprecated
for example I only know mysql_ function to connect to connect to MySQL database in PHP but I saw that
it was deprecated since PHP 5.0. Then I read a book called PHP the right way to come close to the latest
standard. At first I was scared because of the thing is saw, even sometimes feel like I know is useless but
now I believe because of the good base at BDU It was easy to learn the new ways.

Almost all of the technologies I was working on were the cutting-edge, most resent and most effective way
of their respected fields.

And the important thing a learned is how to be up-to-date with the latest technologies.

I’m not going to list the tools I was using because it’s going to be a redundancy but am going to mention
the some of the practical skill I believe it should be mentioned here. I will try to summarize them by their
characteristics.

“Everybody love tools”


And I obviously am one of the. I was intensively using a lot of tools where some of them like composer and
phpunit are require by the technology and the rest of them was using and some of them was highly
productive. These tools are very practical and they are the bridge for professionalism.

32 
Samson Endale Mergissa (0401365)

“Don’t reinvent the wheel”


Once I was at BDU there was a nice database connector class implemented by a friend but I wasn’t able to
use it because of plagiarism and I was force to implemented it by myself AGAIN. Now this calles
reinventing the wheel. In industry there is no place for implementing the same functionality again while
there is a better TESTED open source library which have the same functionality. The Addis Biz have
tremendous number of dependencies and front end frameworks baked into it.

“Practice makes perfect”


There were a lot of sleepless nights in the first month of my internship which eventually pay of my effort.
Thanks to that i can now stand out from other collaborators.

What I have gained in terms of


upgrading my theoretical knowledge
A lot of the thing I learned at BDU was theoretical and there was a lack of knowledge how to make them
practical so it’s harder to understand them without a demonstration.

While I was using the TDD and BDD, I got more sense of the other methodologies and many much more.
Most of the books I have read was software design books and I think I have a deeper understanding of the
theoretical knowledge I have learned here.

I have watched when an enterprise product fails. Because the poor understanding the client request and I
have learned the importance of requirement engineering. While keeping other methodologies like scrum
and agile software development techniques on mind.

Before internship I think testing like an afterthought and it’s a waste of time if the software is developed
correctly. After I was exposed to TDD I have learned how much testing can have a priority more than
coding. Test is an insurance while changing design or refactoring and I believe I become I test geek who
always write acceptance and unit test before coding.

33 
Samson Endale Mergissa (0401365)

What I have gained in terms of


improving industrial problem solving
capability
“Action speaks louder than words”
Just look at my projects, I think you are impressed.

What I have gained in terms of


improving my team playing skill
As I said before Epion is mainly organized in teams and the key thing I learned is to respect my team
others responsibility. Especially in the web design team there is a lot of collaboration, the sites will not be
the same without the graphics design team and other members of the team.

Before internship I think I was like a solo band because usually on school projects it’s obvious that only
one person is doing all the work and the others usually stand and watch all the design decision I was
making because a lack of knowledge and most of the time because of the lack of interest not just in the
project but also on the department too.

In Epion the teams always have to know what you working on and for every design decisions there were a
lot of debate even starting from the color of a simple button. And on the software development team there
is an intensive discussions and the best part is usually all the necessary decisions will be figured out before
type any code.

In the software development team I was one of the key members because i was the one implementing
almost all of the features.

34 
Samson Endale Mergissa (0401365)

What I have gained in terms of


improving your leadership skills
To be the good leader you must learn from a better leader. Even Enque was my supervisor he was like a
friend and like a teacher. Even if I was just a member I was the one responsible for the project I was
working on responsibility make deference when it come to leadership.

While I was teaching at Beteseb Academy I was expected to be a role model. The student were looking up
to me and the one responsible for every guidance starting from choosing a good they read up to teaching
some of the guys who were a bit behind the class one to one after the class. I believe I was a good role
model and I was very friendly with them.

What I have gained in terms of


understanding about work ethics
issues, industrial psychology and
related issues
I am very happy that there is a section where I could talk about the ethics and industrial psychology.
Before internship I was not ready and I didn’t know what to expect at internship. And when I was starting
I was scared and don’t know what to do. Thanks to Enque who helped me in a lot of ways. Actually I was
ethically good to go only my hair was the problem which I get rid of immediately.

I think most of the interns weren’t ready; the reason is the lack of advice before the internship from senior
students, the school and from the university which I am mentioning it on the recommendation.

Ethics
Most of the clients try to judge the performance of a company and an employee by their looks, wearing
and jewelry. This is wrong but we can’t change everyone thought using a switch but we can fulfill their
expectation.

Industrial Psychology
When I was making the Nechi Sar National Park I usually contact a tourism office to ask some
requirement using the company phone and they start questioning my performance out of the blue just
because I was young and they heard am an intern. The fact is I did stop calling and other team members

35 
Samson Endale Mergissa (0401365)

will ask the resource I needed and I was the one who implemented it they start thanking the company for
the website. This was one of the problems but not all of them are like that.

What I have gained in terms of


entrepreneurship skills
If you take a closer at the github organization (https://github.com/andegna/calender) which I release the
two libraries and the android app have the name “Andegna” which is a company I want to found with my
friends which will be the undauntedly be the leading software company. I even have gone with the process
of registering the Trade mark and I was required to have a trade license I was told I have to have at least
some kind of certification to have a technical company but I can still have a TIN number and work with
that. In addition to that I have found a great system I will be developing in the future which will have a lot
of potential customers. I would be happy to tell you that but I’m not that dumb and I have to kill you if I
told u.  just kidding but the thing I learn is not to share an idea unless u have a patent and not to share
source unless you have license.

What I have gained in terms of


interpersonal communication skills
As I was saying before the company works in team and that’s greatest strength. Most of the time we were
talking about deigns decisions, not coding. And every time you need anything you have to communicate
for example on all three website all of the graphics are created by the graphics design team and I usually
ask them personally with the description. The graphics design team usually creates logos, advertising
papers and more but most of the time they make our(Web design team) websites a better looking and they
give an excellent recommendation on the layout and position on the layouts.

In the software development team there is even more talking than coding especially how the structural
and architectural designs of a system. They say

“Talking before coding is better than


debugging”
And that’s true because no one wants to stay all night with a untraceable someone else’s code. Beside a
good relation with collaborators is one of the important things when talking about interpersonal
communication skills.

36 
Samson Endale Mergissa (0401365)

I would like to talk about even further about communication skill respect to client. And there are some
things I have learned.

 Respect clients because they are the one who is paying for your lunch
 Treat every client equally. Don’t differentiate by the amount of payment they have
 Client is always right
 Don’t promise clients what you can’t do
 Be truthful because trust is what they are rely on
 Don’t try to trick a client and more . . .

These things are what I have seen at internship

Conclusion and recommendations for


Epion
There is nothing I want to recommend to Epion beside saying keep doing what you doing and hire more
talented programmers like me.

References
 Building APIs you won’t Hate by Phil Sturgeon
 Code Bright by Dayle Rees
 Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra
 Android Tutorial By tutorials point
 Android Advanced Tutorial By tutorials point
 C Sharp By tutorials point
 Laravel 4 from Apprentice to Artisan By Taylor Otwell
 PHPUnit Manual By Sebastian Bergmann
 PHP The Right Way By Open PHP community
 Pro GIT By Scott Chacon
 PHP Objects, Patterns, and Practice By Matt Zandstra
 http://www.stackoverflow.com
 http://www.laravel.com/docs
 http://www.laravel-recipes.com
 http://www.github.com
 http://www.packagist.org
 And more . . .

37 
Samson Endale Mergissa (0401365)

Appendices
I will be describing and what I was working on this section.

Addis Biz
This is the main project I am presenting and here are some snapshots.

ER diagram

Figure 21: ER diagram of Addis Biz

The entity relation was intentionally removed when am in development mode.

Class Diagram
Models

38 
Samson Endale Mergissa (0401365)

These are the models which extend the ORM Eloquent representing an Entity or a relation on the
database.

Figure 22: Class Diagram of the Models

Controllers
These are the controllers which the routes link to.

39 
Samson Endale Mergissa (0401365)

40 
Samson Endale Mergissa (0401365)

41 
Samson Endale Mergissa (0401365)

Figure 23: Clas Diagram of the controller

I have an attached a lot of snapshot of the system for those who will not attend the presentation.

Figure 24: Addis Biz front page

Figure 25: Addis Biz Login Page

42 
Samson Endale Mergissa (0401365)

Figure 26: Addis Biz Signup Page

Figure 27:Addis Biz Dashboard for admin

43 
Samson Endale Mergissa (0401365)

Figure 28: Addis Biz Company List for a User

Figure 29: Addis Biz Update Profile

44 
Samson Endale Mergissa (0401365)

Figure 30: Addis Biz Avater Changer

Figure 31: Addis Biz Subcategory view

45 
Samson Endale Mergissa (0401365)

Figure 32: Addis Biz Updating Category

Figure 33: Add new Company

46 
Samson Endale Mergissa (0401365)

Figure 34: Addis Biz more on add company

Figure 35: Addis Biz front end list of categories

47 
Samson Endale Mergissa (0401365)

Figure 36: Addis Biz front end list of subcategories in category

Figure 37: Addis Biz front end list of companies on a given subcategory

48 
Samson Endale Mergissa (0401365)

Figure 38: Addis Biz front end company location tab

Figure 39: Addis Biz front end businesss detail tab

49 
Samson Endale Mergissa (0401365)

Figure 40: Addis Biz front end Rating tab

Figure 41: Addis Biz front end review

50 
Samson Endale Mergissa (0401365)

Addis Tena Higher Clinic


This is a website I first developed using Joomla. It’s currently not launched because of their problem. The
site is responsive it have a contact us form build by chron form module.

Here are some snap shoots

Figure 42: Addis Tena front page

51 
Samson Endale Mergissa (0401365)

Figure 43: Addis Tena Responsive navigation for small devise

Zede Engineering PLC

Figure 44: Zede Engineering PLC

This is a website I second developed using Joomla. I project differ from the other because I personally
contact the client at the office and all the requirement comes to me directly from the client. The websites
is currently launched and I encourage you to visit it.

52 
Samson Endale Mergissa (0401365)

Detail about the project can be found at

http://www.epioncss.com/website-design-company-in-addis-ababa-ethiopia/28-zede-engineering-plc

The URL to the site http://www.zedeplc.com/ and to test the responsiveness of the project please visit
http://www.responsivedesignchecker.com/zedeplc.com.

Figure 45: Home page of zede Engineering

Nechi Sar National Park

53 
Samson Endale Mergissa (0401365)

Figure 46: Nechisar Nationa Park Logo

This is a website I finally developed using Joomla.

Detail about the project can be found at

http://www.epioncss.com/website-design-company-in-addis-ababa-ethiopia/29-nechisar-national-park-
ewca-ethiopia

The URL to the site http://www.nechisarnationalpark.com and to test the responsiveness of the project
please visit http://www.responsivedesignchecker.com/nechisarnationalpark.com.

Figure 47: Nechisar National Park Home Page

54 
Samson Endale Mergissa (0401365)

Calendar
This is a php library which is available as open source at the above URL Or Simple using composer by
adding the “"andegna/calender": "dev-master"”. Using this library anyone can convert any date
to Ethiopian calendar check if the date is valid and more. Visit the site for more information.

Please visit the following URLs

The main repository is found at https://github.com/andegna/calender

The composer package is found at https://packagist.org/packages/andegna/calender

This library is developed using TDD technique and it is well tested using phpunit.

The first and the second commands are a phpcs(PHP code sniffer) to check for a the standard with Zend
and PSR2

The third line is the important one which runs the tests. The rest are git commands to commit a change.

Figure 48: Snapshot after Testing

55 
Samson Endale Mergissa (0401365)

Chorology
This is a java 8 library which uses java 8 new date and time API to convert and much more . . . This library
is also developed using TDD and it is very well tested.

The following snap shoot is my github account and you can see the projects on the Repositories
contributed to panel.

Please visit the following URLs

The main repository is found at https://github.com/andegna/EthiopianChronology

Figure 49: JUnit Test for Andegna Chronology

56 
Samson Endale Mergissa (0401365)

Figure 50: My Github Account

Calculator
This is a desktop application which I develop while I was
learning C# just to demonstrate the basic of it. I did find C#
very fascinating and easy to learn. The GUI is designed
using drag and drop.

Here are some snapshots.

The best thing about it is its background is transparent and


the executable is less than 100Kb.

Figure 51: My C# calculator

Unhider

57 
Samson Endale Mergissa (0401365)

This is also a desktop application which I develop while I was


learning C#.

The main motivation was end-users computes are usually


virus infected and even if antivirus software remove the virus
it doesn’t unhide the file which virus have make hidden. Here
are some snapshots.

Basically the drop down will list the drives and when the
Unhide All button is pressed all hidden file selected on the

Figure 52: My C# Unhider selected drive will be unhidden.

Andegna Call Me Back


Andegna call me back is an android app. I developed it when I was learning android. But it is not just an
educational, I use it usually and my friend also I tried to release it on the android app store but I was
asked to pay the registration fee (5$). It’s not unaffordable but I wasn’t able to pay because of the lack of
the international credit card. The app have two user permissions requirement which are ‘directly call
phone numbers (which may cost the client money)’ and ‘read your contacts’.

To simply describe the app, when a user launch the app the app load and filter phone numbers stored on
the phone or sim card and then display the list on the list view. When the user selects any contact a USSD
request will be sent to that contact. It has to
option menus which are About and Exit.

58 
Samson Endale Mergissa (0401365)

Figure 53:Andegna call me back permissions

Figure 54: Andegna call me back running

Andegna USSD
After I have developed the Andegna Call Me Back a lot of people told me it was greate and they which it
have all the USSDs on it, then I started version 2 of it. But when I saw it the name doesn’t match the app
so I changed it to the Andegna USSD. Currently this app is not finished because I was started about a
week before now but I will be working on it after the presentation.

App is almost the same with Andegna Call Be Back only support more of the (804,805,806) USSDs.

59 
Samson Endale Mergissa (0401365)

Figure 55: Andegna USSD running

Figure 56: Andegna USSD drawer navigation

Beteseb Academy
This is not a project; it’s the name of the school I was teaching web design for preparatory students
voluntarily. Why I started teaching is described on the Problems section and am not going to repeat it
again.

Figure 57: Beteseb Acadamy Logo

How Students were selected?


Since the course was voluntarily after class first the school gathered the list of students who wants
to learn web design and they were 86 from more than 400 students of preparatory school but a problem
raise that the lab only have 13 PCs and considering three students per computer the students we decided
to take only grade 12 natural students and the students become 36 And it was good to go.

Schedule

60 
Samson Endale Mergissa (0401365)

We have two sessions on Tuesday and Thursday after 10:00 up to 11:30 and a tutorial at Saturday
from 2:30 to 6:00 which they practice a lot.

Students Achievements
After the tutorial the students are designing their ICT club and Gender club websites and the most
talented ones are redesigning their school website.

Their IT teacher had run a test to see their performance and the entire student have passed the
W3School online test for HTML and CSS scoring more than 16 out of 20.

I have personally taught 4 more talented students Java Script and PHP with the basics
programming skill. I will attach a certificate of appreciation with this document.

“Thanks for reading”

61 

You might also like