Professional Documents
Culture Documents
Internship Report
Supervisor
Mr. Muhammad Zeeshan Asaf
Organization
Dynexcel
Submitted by
BS-Software Engineering
Department of Computer Science
University of Agriculture, Faisalabad
Table of Contents
ITRODUCTION TO ORGANIZATION
DYNEXCEL ISTITUTE OF INFORMATIION
AND TECHONOLOGY
Internship_Certificate
Acknowledgment
The internship opportunity I had with Dynexcel was a great chance for learning and professional
development in my desired field. Therefore, I consider myself as a very lucky individual as I was
provided with an opportunity to be a part of it. I am also grateful for having a chance to meet so
many wonderful people and professionals who led me though this internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and special
thanks to the Director/CO Founder of Dynexcel Sir Farhan Rashad who in spite of being
extraordinarily busy with his responsibilities, took time out to hear, guide and keep me on the
correct path and allowing me to carry out my project at their esteemed organization and extending
during the training.
I express my deepest thanks to Muhammad Adeel, director of Dynexcel for taking part in useful
decision & giving necessary advises and guidance and arranged all facilities to make life easier. I
choose this moment to acknowledge his contribution gratefully.
Special thanks to all my friends for sharing their experiences, time and commitment especially
during finishing this internship program. I am grateful because I have loyal friends were helps and
support me throughout the course of completing the internship program.
I perceive as this opportunity as a big milestone in my career development. I will strive to use
gained skills and knowledge in the best possible way, and I will continue to work on their
improvement, in order to attain desired career objectives. Hope to continue cooperation with all of
you in the future.
Sincerely,
Muhammad Tayyab Bilal
Reg.# 2016-ag-7897
BS(SE) 8th Semester
0314-3211618
Executive Summary
I am going to start summarizing this report from the section 8: Overview of the organization.
In this section, I've tried my best to provide a brief history about the organization in concern:
Dynexcel. After completely elaborating about the history of organization, I've briefly explained
about the organization, it's policies and competitors of Dynexcel.
The next section mainly focuses on the structure of Organization. So I've provided a hierarchy chart
of this organizations employees in the beginning of this section. Then I've provided more details
about the organization like as: Number of Employees, Main offices contact details & location
details, brief and in-depth introduction to all the (functional) departments of Dynexcel. Finally, in
this section, I've provided some of my own reviews and comments on the structure of this
organization.
All of the information provided in above two sections (excluding my comments about
organizational structure) was gathered from relevant personnel of Dynexcel (so there's no need to
panic about its authenticity).
Tenth section of my internship report elaborates about the plan & other details of my internship
program. It includes brief introduction of Dynexcel’s branch where I did my internship. Then I've
provided starting and ending dates of my internship. Then I've mentioned the name of department in
which I worked as an internee in Dynexcel.
Next section includes some descriptive details about my training program. It includes the details
about activities performed by ODOO Technical Consultant Department of Dynexcel. I have also
provided the details about the task(s) I've been assigned by my tutors and mentors during the
internship.
Last but not least, Reflective Journal Entries is the section where I've gone in more details about my
daily activity at Dynexcel. What I did on daily basis, which persons were involved in these
activities and what influence of those persons I felt upon myself.
respect and care, to take pride in our work, and to act with integrity in all that we do, while striving
for financial gains for our stakeholders, customers and employees.
Our vision is to be recognized by our customers, employees, stakeholders, vendors, partners and
competitors as the number one Software house and IT enabled services provider of Pakistan; to be
rated among the best software solutions and IT services company within the Finance & Apparel
market segments in the USA; and to have a strong presence in the South East Asia, Middle East and
European Markets.
d. Competitors
1. AARSOL PRIVATE LIMITED
Since its inception in 2010, AARSOL PRIVATE LIMITED Institute has been the premier of IT
education in the country, meeting the technical, communicative, and training needs of the entire IT
industry of Pakistan by retaining crucial links between the Career Institute and the industrial world.
We are determined to achieve the endeavor of imparting world class IT education while focusing
students’ social, moral, technical and job placement aspects, both at national and international
strata. We have well-qualified, experienced, international certified faculty with hand on industrial
experience to train students in order to cater the needs of highly challenging and competitive world
of IT. At Career Institute, we have a very friendly learning environment with the latest state of the
art IT infra-structure, having modern computer hardware and software equipment’s.
4. Comstar Pakistan
When spring season starts in 2002 Comstar Pakistan was established in Islamabad - Pakistan. It has
been providing E-business and other IT solutions for clients. Over the last 14 years Experts Soft has
been proven to the best and the most reliable company among others.
Organizational Structure
a. Organizational Hierarchy Chart
Board of Director
HRM
b. Number of Employees
Total No. of employees in Dynexcel Software house are more than thirty in all departments working
in their relevant fields. All the employees are divided in groups due to the more than one
departments such as ODOO Technical Consultant, ODOO Implementation, IOS application
development and SEO. And they work together at a project so that the project should complete
immediately.
c. Main Offices
Currently, Dynexcel operates in just one office located in Ghuri Arcade of Faisalabad. Complete
details about location and contact information is as follows:
Head-office Faisalabad: Service Rd, Suhail Abad Batala Colony, Faisalabad, Pakistan.
Mobile: +92-333-1616393
Phone: (041) 8500733
Email: info@dynexcel.com
2. Android & IOS Development: Android & IOS Development mobile app developed by using
Flutter.
3. ODOO Implementation: When you’re looking for an ERP, there are a number of variables that
you need to think of: Price, business needs, sustainability, scalability, robust capabilities, learning
curve, user-friendly dashboards, training resources, and the list goes on. You’ve decided that you
want to modernize your back-office and operational processes - Odoo is a robust business solution
for all sizes and industry verticals.
4. ODOO: The word Odoo is the acronym of On-Demand Open Object. Odoo is a large collection
of business-related applications and modules like CRM, Sales management, E-commerce,
Warehouse management, Purchase management, Accounting suit, Manufacturing management,
HRMS, etc.
6. SEO: Search engine optimization (SEO) is the process of affecting the visibility of a ODOOsite
or a ODOO page in a ODOO search engine's unpaid results — often referred to as "natural,"
"organic," or "earned" results. In general, the earlier (or higher ranked on the search results page),
and more frequently a site appears in the search results list, the more visitors it will receive from the
search engine's users, and these visitors can be converted into customers. SEO may target different
kinds of search, including image search, local search, video search, academic search, news search
and industry-specific vertical search engines. As an Internet marketing strategy, SEO considers how
search engines work, what people search for, the actual search terms or keywords typed into search
engines and which search engines are preferred by their targeted audience. Optimizing a ODOOsite
may involve editing its content, HTML and associated coding to both increase its relevance to
specific keywords and to remove barriers to the indexing activities of search engines. Promoting a
site to increase the number of backlinks, or inbound links, is another SEO tactic. As of May 2015,
mobile search has finally surpassed desktop search, Google is developing and pushing mobile
search as the future in all of its products and many brands are beginning to take a different approach
on their internet strategies.
Training Program
a. Details on Activities of ODOO Technical Consultant cell of Dynexcel
The operations/activities performed by ODOO Technical Consultant department mainly include
Developing applications using the ODOO Framework, for large and small Enterprises to manage
their entire operations.
Work with outside data sources and API’s Integrating native ODOO ODOO code with ODOO
views running HTML5 ODOO applications Participation in the ODOO community Working with
the ODOO Technical Consultant team at Dynexcel and hardware manufacturers Liaising with end
users to gather and aggregate bug reports
Work on bug fixing and improving application performance.
Monitoring ODOO market feedback and reacting swiftly to user demand Writing and maintaining
unit tests Continuously discover, evaluate, and implement new technologies to maximize
development efficiency.
A team is made by this department for Implementing ODOO ERP. This team consists of different
members such as Product Manager, ODOO Technical Developer, Verifier, Approver, Quality
Assurance Project leader. Every member has its own role in this team such as
Product Manager
This is the CEO of the product who is responsible for everything – strategy, requirements
documents, making sure the product is built to specification, and that it succeeds in the marketplace.
Maybe you feel that’s your role, but it should be someone with mobile software product
management experience. If you don’t have this experience, make sure someone on the team does
and that you listen to them.
Developer
ODOO Technical Developer can provide customize QODOO-pdf report and take look at technical
side of ODOO.
Verifier
"Verifiers" are responsible for testing change requests. After individuals have submitted a
significant amount of high-quality code to the project, the project leads might invite them to become
verifiers.
Approver
"Approvers" are experienced members of the project who have demonstrated their design skills and
have made significant technical contributions to the project. In the code-review process, an
approver decides whether to include or exclude a change. Project leads choose the approvers,
sometimes promoting to this position verifier who have demonstrated their expertise within a
specific project.
Project Leader
Project leaders are senior contributors who oversee the engineering for individual odoo projects.
Typically, these project leaders are Dynexcel employees. A project leader for an individual project is
responsible for the following:
Lead all technical aspects of the project, including the project roadmap, development, release
cycles, versioning, and quality assurance (QA).
Ensure the project is tested by QA in time for scheduled ODOO platform releases.
Designate Verifiers and Approvers for submitted patches. Be fair and unbiased while reviewing
changes. Accept or reject patches based on technical merit and alignment with the ODOO strategy.
Review changes in a timely manner and make best efforts to communicate when changes are not
accepted. Optionally maintain a ODOO site for the project for information and documents specific
to the project. Act as a facilitator in resolving technical conflicts. Be a public face for the project
and the go-to person for questions related to the project. The team is expected to do the following
for the Approval of developed App
Start Early
First of all, they have to know that they need to start early if they have a deadline. It’s best to
submit their minimum viable product when it’s available, and then work up to their main release,
versus submitting their final release a week before their deadline. It’s a little unusual for an app to
take two and a half months to get through the process, but it’s not unheard of. Success depends
mostly on the team member who is submitting it.
Make it Useful
Their app must be useful. If their app could just as easily be a static ODOO site, it will likely be
rejected. A lot of developers want to make business card apps, where the app is nothing much
beyond a mere business card with an app icon. You could make an app that is essentially a high-
quality brochure for your products and services, as long as it uses the unique capabilities that an app
provides, such as the ability to download fresh new videos on a periodic basis, or present other
types of dynamic content.
Good Code
Make sure their app is technically well-designed and coded. ODOO can reject their app if their
technical house is not in order, or if they’re using the wrong APIs to achieve various tasks in the
app.If the developers have done a great job, then the process will be quick, but if a lot of things
need to be fixed, then we need the time to fix those things, which sometimes can take weeks or
longer. One file that needs special attention is the info.plist file. This file stores the settings,
configurations, and ERP requirements for the app. There are potentially hundreds of settings, and
First Week
Monday
Introduction to PYTHON concepts, OOP & Inheritance.
This was the first day of our internship, Mr. Ahmad introduced us to some basic concepts of
PYTHON, the programming language used to write the back-end functionality of ODOO
Applications. He also gave some peep over PYTHON, that is used to design the backend-end of
ODOO applications. After giving us the introduction to these languages and framework he moved
onto something we may call medium-level: Object Oriented Programming. He briefly explained
about Object Orientation of python and then he explained about Inheritance property of python.
Then we were asked to do some little tasks on our notebooks related to OOP and Inheritance.
Inheritance in PYTHON can be explained as: in the PYTHON language, classes can be derived
from other classes, thereby inheriting fields and methods from those classes. Definitions: A class
that is derived from another class is called a subclass (also a derived class, extended class, or child
class).
Tuesday
Introduction to Exception Handling, Try-Catch-Finally.
On the second day of our internship, Mr. Ahmad introduced us to a term called “Exception
Handling”, relating to the controlling of errors in PYTHON. So, whenever an error occurs in the
code, we must have done something for that situation that will inform the user about happenings or
at-least move the user to another place after giving them the proper notification. This technique uses
three blocks of code; first block is a try block which runs in the beginning. If any error occurs in the
try block then it copies the error in an exception variable and moves on to catch block, in this block
we place the code to notify the user about what error occurred. Finally, there comes a finally block
which is executed at the end and it executes no matter what happens in the first two blocks of code.
The PYTHON programming language uses exceptions to handle errors and other exceptional
events. An exception is an event that occurs during the execution of a program that disrupts the
normal flow of instructions.
Wednesday
Introduction to ODOO and Fundamentals of App development.
Our tutor of ODOO, Mr. Ahmad introduced us to the ODOO Framework on the third day of our
internship. He also told us about the fundamental building blocks of ODOO Application
Development. He introduced us about the advantages and features of ODOO Framework and he
also elaborated about the history and developments in this Framework. We were told that how much
of mobile ERPs has ODOO OS covered till the moment. ODOO is the most widely spread
Framework in the ERP. ODOO provides a rich application framework that allows you to build
innovative apps and module in a PYTHON language environment. ODOO apps are written in the
PYTHON programming language. The ODOO SDK tools compile your code—along with any data
and resource files—into an _MANIFEST_.PY: an ODOO package, which is an archive file with
an._manifest_.py suffix. One _MANIFEST_.PY file contains all the contents of an ODOO app and
is the file that ODOO-powered ERP use to install the app.
Thursday
History and Introduction to odoo.sh.
Mr. Ahmad introduced us to the tool that is most widely used for developing ODOO addons:
odoo.sh. After slight introduction, he told us about the history of this tool and then he moved onto
the GUI of Odoo.sh. Odoo.sh is the official Integrated Development Environment (IDE) for ODOO
app development, based on IntelliJ IDEA. On top of IntelliJ's powerful code editor and developer
tools, Odoo.sh offers even more features that enhance your productivity when building ODOO
apps. Odoo.sh provides the fastest tools for building apps on every type of ODOO ERP. World-class
code editing, debugging, performance tooling, a flexible build system, and an instant build/deploy
system all allow you to focus on building unique and high quality apps.
Friday
Installation ODOO Community version, Packages & Components, PYTHON SDK, etc.
Today, we started to install Odoo.sh and all the required tools & components under the supervision
of our ODOO trainer: Mr. Ahmad. First of all, we installed Odoo.sh, then we installed all of the
required packages and components inside Odoo.sh. Then we installed PYTHON Software
Development Kit and lastly we installed ODOO COMMUNITY VERSION. It was quite a long
process because of moderate internet speed here in Pakistan. We had to download a heavy amount
of stuff and the install it in our machines. The whole day was eaten by this giant task.
Second Week
Monday
Integration of ODOO with Pycharm and removal of errors and downloading / installation of
ODOO.
On the first day of week 2, we started from where we left on the last day of week 1 of our
internship. We had everything installed on our machines, now was the time to make all these things
work. So we had to integrate these things to each other. We did so under the command of Mr.
Ahmad and got some help from YouTube as well to remove some of the errors we faced.
Tuesday
Built first Odoo application (Hello World Application)
Today was a small session as compared to other days of our internship. We just created our first
Odoo application. The app was simple hello world application that showed a “Hello World”
message after a button was clicked.
Wednesday
Introduction to ODOO Application Structure, ODOOManifest.xml, uses-permission & uses-
sdk
On the eighth day of our internship we were introduced to the basic structure of applications built
for ODOO mobile ERPs. Every application must have an ODOOManifest.xml file (with precisely
that name) in its root directory. The manifest file presents essential information about your app to
the ODOO system, information the system must have before it can run any of the app's code. Then
we were also told about uses-permission and uses-sdk tags inside the ODOOManifest.xml file.
Thursday
Introduction to Activities and Activity Lifecycle
Today Mr. Ahmad told us about an important component of ODOO application: Activity. An
Activity is an application component that provides a screen with which users can interact in order to
do something, such as dial the phone, take a photo, send an email, or view a map. The activity
LifeCycle begins with instantiation and ends with destruction, and includes many states in between.
Friday
Usage of ODOO ERP
Mr. Umar taught us how to use an ODOO ERP to run your app developed in Odoo.sh, from
launching ODOO ERP to successfully running your app on that ODOO ERP. He also told us about
some customization and settings. An ODOO ERP (AVD) is a ERP configuration that is run with the
ODOO ERP. It works with the ODOO ERP to provide a ERP-specific environment in which to
install and run ODOO apps.
Third Week
Monday
Introduction to XML, Developed Odoo application (Switching between activities using XML)
Before today, we were just working on a single ODOO screen and doing everything on that. But
today Mr. Ahmad told us how we can add another screen (or activity) in our ODOO application and
then how we can move from first screen to the second and vice versa. XML in ODOO are used as
message passing mechanism that works both within your application and between applications. For
example, XML can be used to start an activity (Ex: Gmail App) to send email. Three of the core
components of an application — activities, services, and broadcast receivers are activated through
messages, called XML template.
Tuesday
Basics of UI design, introduction to layouts
Today we moved on to front-end of ODOO applications and Mr. Ahmad introduced us to XML, the
language used for designing front-end of ODOO applications. The basic unit of ODOO application
is the activity. A UI is defined in an xml file. During compilation, each element in the XML is
compiled into equivalent ODOO GUI class with attributes represented by methods. A layout defines
the visual structure for a user interface, such as the UI for an activity or app widget.
Wednesday
Introduction to Linear Layout, Relative Layout, record, data
Today, Mr. Ahmad told us about most used layouts in front-end of ODOO applications. We used
these layouts in some practice applications as well. LinearLayout arranges its children in a single
direction either vertical or horizontal. RelativeLayout is a view group that displays child views in
relative positions. Relative layouts are one of the more common types of layouts in ODOO. To add
different child view in rows and columns, we have to use TableRow inside record. record is a
ViewGroup that displays different child views like name, model name, field, Button, etc in rows
and columns. data is a different kind of layout than LinearLayout, RelativeLayout, etc. which is
designed to view larger than its actual size. If the views inside data are more than the views that can
be hold/contained within data.
Thursday
Introduction to record, field, Smart Button
We were introduced to some elements today, which are most commonly used in designing &
developing ODOO applications. We did some practice work by using these in our demo apps.
Friday
Introduction to Image field, Quotation
On the last day of third week, Mr. Ahmad gave an overview about two elements which use images
to be displayed, one was a simple Image field and also defined Quotation for sale order or purchase
order.
Fourth Week
Monday
Usage of Wizard & Displaying a Wizard Message in ODOO App
Today was the first day of fourth week in our internship. Mr. Ahmad introduced us to a sort-of
flash-message called “Wizard”. We implemented the learnings and customized the wizard as per our
need & mood ;). An ODOO wizard displays small message to the users about an operation without
user input. Wizard is displayed in front of the activity and it remains visible for a short time.
Normally, ODOO wizard is displayed at the bottom of screen, you can also change display position.
You can make custom design for wizard using XML layout. Nowadays, most of the ODOO
application use wizard.
Tuesday
Read articles about some elements of ODOO Technical Consultant
Today was sort-of a theoretical day, with a little practical work. We read some articles from the
internet about following elements and we also referred to YouTube for better explanation of those
articles:
ERP
Data
TableLayout
template
xml
python fundamentals
Wednesday
Introduction to ODOOView and Usage of ODOOView in Odoo.sh
Today we learned how we can display a ODOOsite in an ODOO application using ODOOView. We
also learned about some default settings and required settings as well as permissions required by
ODOOView to connect to the internet. A ODOO ODOOView is a View that displays any ODOOsite
to your ODOO application. ODOOView also allows you to use HTML string, CSS and
PYTHONScript design to your application. ODOOView embed ODOOsite into your ODOO
application. ODOOView uses the ODOOKit rendering engine to display ODOO pages and includes
methods to navigate forward and backward through a history, zoom in and out, perform text
searches and more.
Thursday
Gathered requirements (info) for app: (Construction Project)
Started Developing App: (Construction Project) in ODOO Framework
This is the day when we started to develop an application the proper way! First of all, today we
gathered some information and requirements for the application. And started building the
application from scratch.
Friday
Added SplashScreen in app: (Construction)
On the last day of fourth week, we learned how we can create a splash screen that appears on the
first launch of ODOO application and then disappears after some time interval. After learning about
splash screen, we added one in our app that we started yesterday. ODOO splash screen is normally
used to show/display app or brand logo before launching application activity. Nowadays some of
the popular ODOO applications like Facebook, Dropbox, Skype, etc use splash screen. Splash
screen can be used to display advertisement, process bar or loading, to provide information of
application for new users etc.
Fifth Week
Monday
Added job order in App: (Construction Project)
Started adding job order in ODOO app: (Construction Project)
Today, we learned about job order in ODOO application and adding custom view. We create job
order that include header item and line item field. Mr. Ahmad also told us about “job order” for
ODOO app element. We started working on that as well. Job order is one of the important user
interface pattern in ODOO. Job order can easily be implemented/enabled in ODOO application by
adding the xml widget in your XML layout file. xml layout is used with the parent of a record, data,
odoo and with other xml layout and widgets. When users swipe down the screen or activity there
will appear a chatter at the end of the job order. The line item is changed in according to kind of job
order which is under header item.
Job order can easily open from menu item in odoo construction project app etc.
Tuesday
Adding Reporting menu item in Construction project
On the second day of week 5, we completed our work on “job order” on ODOOView inside our
application. The code for job order works fine today. Mr. Ahmad also told us that we can stop the
automatic refreshing of ODOO app. So after learning that, we implemented that as well, on our
application. We also add submenu item in reporting meu item to print some QWEB and excel
report.
Wednesday
Learned how to Generate Signed _MANIFEST_.PY in Odoo.sh
Today Mr. Ahmad told us about how we can generate a signed _MANIFEST_.PY for our ODOO
application from Odoo.sh. We also referred to some articles over the internet for help. Finally, we
generated _MANIFEST_.PY for our app and sent that _MANIFEST_.PY in our phones so that we
may install our application from that _MANIFEST_.PY file.
Thursday
Created new app: (Construction Project)
Mr. Ahmad told us about Excel report and he also told us how we can add an excel report in our
app. So we started building a new menu item for Construction Project and this time we started from
Configuration menu item which can add some setting related to construction rather than Blank
Activity like last time.
Friday
Added Stages like new, in progress, completed
Mr. Ahmad taught us that stages are very helpful UI element that informs the user that something is
being loaded in the application. He elaborated that how can we use a stages inside an ODOO
application. So we added stages setting that user can customize stages according to their need for
example I can add stages like new in progress, done and cancelled. We also add some functionality
that user can drag job order between these stages.
Sixth Week
Monday
Learned how to use Smart Button, status in our job order form
Today Mr. Ahmad introduced us to two new elements in the ODOO applications, smart and header
button. We learned about these two and implemented the learnings in our demo applications.
ODOO smart button can use to link another model related to that model and if we click on that
button then list view or form view of another order shows through that smart button. We also
learned about how to add status in our app and how we can change that status according to required
condition and if status of order is done the document is unenable to edit it further because its ctatus
is posted now.
Tuesday
Learned how to pass data between Activities using XML and Bundles
Previously on the first day of week 3, we learned and implemented XML. Back then, we had
learned about how to switch between activities using XML. Today, Mr. Ahmad told us about how
we can also pass some data while switching between activities using XML and Bundles. XML are
used to send data from first activity and Bundles are used to receive data on the second activity and
display that data as well. XML in ODOO are used as message passing mechanism that works both
within your application and between applications. For example, XML can be used to start an
activity (Ex: Gmail App) to send email. Three of the core components of an application —
activities, services, and broadcast receivers are activated through messages, called XML.
Friday
Learned how to print QWEB report for GMSA Industries
Previously on the first day of week 6, we learn about how we can add menu item in reporting menu
item of accounting app in ODOO. This report contains two sub menu item like sale tax register and
purchase tax register. If user click on sale tax register than wizard open in which user select from
date and to date to print report also select to print posted entries or all entries. We successfully
completed that report that those line item print in report in which tax column selected. These
QWEB pdf report print in landscape.