Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Developed By
NCTB Textbook
Report
Developed By
Abstract
NCTB defines the National Curriculum & Textbook Board. The National
Curriculum & Textbook Board is an autonomous organization under the Ministry
of Education (MoE) in Bangladesh responsible for the development of
curriculum, production and distribution of textbooks at primary, secondary and
higher secondary levels. All public schools of Bangladesh are under NCTB. Free
board books are distributed among students every year between classes I-X. These
books comprise most of the curriculum of all public Bangladeshi schools.
The National Curriculum and Textbook Board continues to ensure quality
education for future skilled citizens. Using this application related text books of
primary, junior, secondary and higher secondary can be downloaded. Besides this,
detailed curriculum information of each class can be obtained.
1
Table of Contents
Abstract 1
Chapter 1 3
Chapter2 5
Chapter 3 7
Chapter 4 10
Chapter 5 17
Chapter 6 23
Chapter 7 34
Chapter 8 36
Screenshots 37
2
Chapter 1
Introduction
1.1 Introduction
Today’s students see themselves as digital natives, the first generation to grow up
surrounded by technology like smartphones, tablets and e-readers.
Given this trend, teachers, students, parents and policymakers might assume that
students’ familiarity and preference for technology translates into better learning
outcomes.
1.3 Aim and Objectives
1.3.1 Aim
The aim of this project is to make a mobile application that can be downloaded
and used in an iOS device to get the books which is proposed and provided by
3
NCTB as a pdf or digital textbook version that can be read and downloaded
through the application. NCTB Books are often found in websites and play stores
as an android app. But there is no complete and reliable NCTB Book app found
in app store iOS platform. So our aim is to develop the app and upload it in the
app store and serve our iOS user.
1.3.2 Objectives
1.4 Summary
4
Chapter2
2.1 Introduction
There are a large number of NCTB applications recently used in Bangladesh such
as NCTB Text Book, Text Book, NCTB All Books, Bangla Text Bookand, বাড
বইসমূহ ২০২০ so on. They provide their users with digital books or pdf and this
chapter will supply a comparison between our approach and them.
This free app is designed for Android users. But still we can compare the
application with our app. First of all it is an Android app; its user interface is not
so good and also problematic. The gui is so bad that any user could be described.
Also have some design issues. There is no way we want to compare it with our
project but we can say that our application is far far better than this application.
Though this NCTB Text Book application is very useful for android users, the
minority in Bangladesh is iOS smartphone users. Therefore Our NCTB
application is more efficient to be utilized in Bangladesh.
5
NCTB All Books is also for the android system. This application is better than
other free android applications. But there are still some design issues. It is
complicated for users to understand at first look and there are no maintenance
services. On the other hand our iOS application is well designed and user friendly
and automatically maintainable by the help of our well developed API service.
Though this NCTB All Books application also is very beneficial for android
users, the minority in Bangladesh is iOS smartphone users. Therefore Our NCTB
application is more resourceful to be employed in Bangladesh.
বাড বইসমূহ ২০২০ is also for the android system. It is one of the best android
apps which is providing the NCTB books for free as a digital version. Its own
well customized user interface which is user friendly and understandable. It also
provides some extra features for facilitating the user. Our iOS application is also
similar to this application but it provides some extra facilities that we are not
providing for the sack of our user and maintaining simplicity.
Though this বাড বইসমূহ ২০২০ application also is very beneficial for android
users, the minority in Bangladesh is iOS smartphone users. Therefore Our NCTB
application is more resourceful to be employed in Bangladesh.
2.3 Summary
Today, there are similar applications that complete related tasks, using the same
approach as our application. Therefore, we have detailed down those applications
in this chapter including a comparison and list of special points how our approach
differs from them, and the next chapter will explain the technology that we are
going to use with reasoning.
Chapter 3
6
Technology Adapted
3.1 Introduction
This chapter provides specifics and details about the technology that we have
adapted to solve the problem through implementing our proposed solution.
Furthermore, it will point the reasons and the ways that these techniques and
technology are appropriate for the proposed solution.
3.2 Technology for the Solution
● Node.js
● XCode
● POSTMAN
● Swagger
● Sublime Text
3.3 Node.js
7
retrieve the same data at the same time which should arise with concurrency
issues. Therefore, it is efficient if we can eliminate those issues and provide an
efficient performance throughout the processes, and to achieve this task, we have
selected Node.js. It is an open source, cross-platform run-time environment
which is used for developing server-side and networking applications. Being
built on Google Chrome's V8 JavaScript Engine, Node.js library is very fast in
code execution, and its nature of high scalability allows it to provide service for a
much larger number of requests than other servers.
3.4 XCode
The weather forecasting system has a mobile application, and for its
implementation, we have chosen XCode. It is an open source and Linux-based
operating system for mobile devices.
XCode supplies a flexible build system, fast and feature-rich emulator, unified
environment where we can develop the application.
3.5 POSTMAN
3.6 Swagger
8
Swagger is a powerful yet easy-to-use suite of API developer tools for teams and
individuals, enabling development across the entire API lifecycle, from design and
documentation, to test and deployment.
Swagger consists of a mix of open source, free and commercially available tools that
allow anyone, from technical engineers to street smart product managers to build
amazing APIs that everyone loves.
Swagger is built by SmartBear Software, the leader in software quality tools for
teams. SmartBear is behind some of the biggest names in the software space,
including Swagger, SoapUI and QAComplete.
3.8 Summary
The technology adapted for implement the system has been described in this
chapter, and in the next chapter, we will provide how we adopted this technology
for the proposed solution.
9
Chapter 4
Our Approach
4.1 Introduction
Technology in this current era is progressing faster than ever, enforcing the global
software companies to work in a fast-paced changing environment. Because these
businesses are operating in an ever-changing environment, it is impossible to gather a
complete and exhaustive set of software requirements. Without these requirements, it
becomes practically hard for any conventional software model to work.
This is where the agile software development comes to the rescue. It was specially
designed to curate the needs of the rapidly changing environment by embracing the
idea of incremental development and develop the actual final product.
Let’s now read about the on which the Agile has laid its foundation:
10
Principles:
11
Development in Agile: Let’s see a brief overview of how development occurs in
Agile philosophy.
Advantages:
12
● Continuous attention to technical excellence and good design.
Complementing the Agile Manifesto, the Agile Alliance has also defined a set of 12
underlying principles, which provide guidance and more detailed explanation in
addition to the Agile Manifesto:
1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
13
4. Business people and developers must work together daily throughout the
project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development.
9. The sponsors, developers, and users should be able to maintain a constant pace
indefinitely.
10. Continuous attention to technical excellence and good design enhances agility.
11. Simplicity–the art of maximizing the amount of work not done–is essential.
12. The best architectures, requirements, and designs emerge from self-organizing
teams. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
Agile is a framework which defines how the software development needs to be carried
on. Agile is not a single method, it represents the various collection of methods and
practices that follow the value statements provided in the manifesto. Agile methods
and practices do not promise to solve every problem present in the software industry
(No Software model ever can). But they sure help to establish a culture and
environment where solutions emerge.
The contribution of all the members has been ensured through diving a specific
part for each member while all of us are aware about the overall progress of the
14
system. The attention for the similar applications to the mobile application and
deep observation of them should be done to achieve the expected performance
level of our solution. It is required to establish a user-friendly environment in the
weather forecasting system for making it easier for users to interact with it. This
needed to be achieved via understanding the reliability and the perspective of the
public user.
Especially, we had several field visits to the Meteorological Department with the
intention of gaining more information about the procedure that is launched while
updating a weather synopsis. These reports are updated for every three hours, and
they contain weather parameters including tendency, temperature, rainfall, wind
type.
Thus, there is a special encoding system which is a universal standard that is used
in updating figures about the parameters. Therefore, we should be aware about
these techniques.
After gathering all the requirements and the details that are essential for the
development, we can design and develop the system by fulfilling all the
requirements of all the users. Here, we employ the technologies such as Node.js,
XCode, Sublime Text, POSTMAN for the implementation stage of the
applications.
After the designing stage, we have to engage in testing for identifying the errors,
drawbacks and mistakes in the developing system.
Then, we should stimulate the environment of the weather station users to get
them familiar with the new system, and also to ensure that the application is
friendly and fast enough for the purpose. When considering the mobile
application, we have to
make it much easier to be used by a user, and to ratify its accomplishment in attaining
its goals.
15
4.4 Summary
The technologies that we are used to implement in our system have been
designated in this chapter as the way of adopting them for the solution for
accomplishing its task, and the next chapter is focused on the analysis and design
perspective in order to provide details about the interaction among the modules
within the system.
16
Chapter 5
5.1 Introduction
This chapter comprises the particulars about the design of our solution for the NCTB
Text Book system. Therefore, this includes several diagrams to depict the top level
design of the proposed solution, and the interaction between each and every component
of it.
5.2 Top Level Design of the System
Top-Level Design is both a design concept and a design method. Unlike software
engineering, information resource planning and technology road maps, Top-level
Design as a design method is not clearly defined in terms of its contents and methods.
17
Figure 5.1: Top Level Design Diagram
18
Figure 5.2: System Diagram
5.4 Use Case Diagrams
A use case diagram at its simplest is a representation of a user's interaction with the
system that shows the relationship between the user and the different use cases in
which the user is involved. A use case diagram can identify the different types of users
of a system and the different use cases and will often be accompanied by other types
of diagrams as well. The use cases are represented by either circles or ellipses.
19
Figure 5.3: Use Case Diagram
5.9 FlowChart
20
The flowchart shows the steps as boxes of various kinds, and their order by
connecting the boxes with arrows. This diagrammatic representation illustrates a
21
5.10 Summary
In this chapter, we have provided the design of the proposed system using various
kind of diagrams in order to verify the fundamental idea, modules and
components of the system which is going to be implemented. The next chapter
will convey the implementation details of the system referring to this analysis and
design factors.
22
Chapter 6
Implementation
6.1 Introduction
This chapter describes the way that we are going to implement our proposed
solution. Thus, here our main attention focuses on the code techniques and
progress of the implementing system.
6.2 Implementation
After selecting and confirming the project, we went several times to meet our
clients to gather their requirements. As there are two clients we had to spend a
considerable time period to gather information. We had some sessions with the
Meteorology Department to gather all their requirements that they have got at this
moment. After gathering all the information, we decided to develop four main
modules. They are:
● Category
● List
● Preview
● Download
6.3 API
An API is a set of programming code that enables data transmission between one
software product and another. It also contains the terms of this data exchange.
23
edium
How API works. Source: M
The software that needs to access information (i.e., X hotel room rates for certain
dates) or functionality (i.e., a route from point A to point B on a map based on a user’s
location) from another software, calls its API while specifying the requirements of
how data/functionality must be provided. The other software returns data/functionality
requested by the former application.
And the interface by which these two applications communicate is what the API
specifies.
The Red Hat specialists note that APIs are sometimes considered contracts, where
documentation is an agreement between the parties: “If party first sends a remote
request structured a particular way, this is how the second party’s software will
respond.” The API documentation is a manual for developers that includes all
24
necessary information on how to work with the API and use the services it provides.
We will talk more about the documentation in one of the next sections.
Each API contains and is implemented by function calls – language statements that
request software to perform particular actions and services. Function calls are phrases
composed of verbs and nouns, for example:
APIs serve numerous purposes. Generally, they can simplify and speed up software
development. Developers can add functionality (i.e., recommender engine,
accommodation booking, image recognition, payment processing) from other
providers to existing solutions or build new applications using services by third-party
providers. In all these cases, specialists don’t have to deal with source code, trying to
understand how the other solution works. They simply connect their software to
another one. In other words, APIs serve as an abstraction layer between two systems,
hiding the complexity and working details of the latter.
Types of APIs
25
Types of APIs by availability
Private APIs. These application software interfaces are designed for improving
solutions and services within an organization. In-house developers or contractors may
use these APIs to integrate a company’s IT systems or applications, build new systems
or customer-facing apps leveraging existing systems. Even if apps are publicly
available, the interface itself remains available only for those working directly with
the API publisher. The private strategy allows a company to fully control the API
usage.
Partner APIs. Partner APIs are openly promoted but shared with business partners
who have signed an agreement with the publisher. The common use case for partner
APIs is software integration between two parties. A company that grants partners with
access to data or capability benefits from extra revenue streams. At the same time, it
can monitor how the exposed digital assets are used, ensure whether third-party
26
solutions using their APIs provide decent user experience, and maintain corporate
identity in their apps.
Public APIs. Also known as developer-facing or external, these APIs are available for
any third-party developers. A public API program allows for increasing brand
awareness and receiving an additional source of income when properly executed.
There are two types of public APIs – open (free of charge) and commercial ones. The
Open API Definition suggests that all features of such an API are public and can be
used without restrictive terms and conditions. For instance, it’s possible to build an
application that utilizes the API without explicit approval from the API supplier or
mandatory licensing fees. The definition also states that the API description and any
related documentation must be openly available, and that the API can be freely used to
create and test applications.
Commercial API users pay subscription fees or use APIs on a pay-as-you-go basis. A
popular approach among publishers is to offer free trials, so users can evaluate APIs
before purchasing subscriptions.
APIs can be classified according to the systems for which they are designed.
27
Another example is ORDS database API, which is embedded into Oracle REST Data
Services.
Operating systems APIs. This group of APIs defines how applications use the
resources and services of operating systems. Every OS has its set of APIs, for
instance, Windows API or Linux API (kernel–user space API and kernel internal
API).
Apple provides API reference for macOS and iOS in its developer documentation.
APIs for building applications for Apple’s macOS desktop operating system are
included in the Cocoa set of developer tools. Those building apps for the iOS mobile
operating system use Cocoa Touch – a modified version of Cocoa.
Remote APIs. Remote APIs define standards of interaction for applications running
on different machines. In other words, one software product accesses resources
located outside the device that requests them, which explains the name. Since two
remotely located applications are connected over a communications network,
particularly the internet, most remote APIs are written based on web standards. Java
Database Connectivity API and Java Remote Method Invocation API are two
examples of remote application programming interfaces.
Web APIs. This API class is the most common. Web APIs provide machine-readable
data and functionality transfer between web-based systems which represent
client-server architecture. These APIs mainly deliver requests from web applications
and responses from servers using Hypertext Transfer Protocol (HTTP).
Developers can use web APIs to extend the functionality of their apps or sites. For
instance, the Pinterest API comes with tools for adding users’ Pinterest data like
28
boards or Pins to a website. Google Maps API enables the addition of a map with an
organization’s location.
Now we know what an API is and why we need it. So we developed an API for our
project or application. The screenshot of our API is given below.
29
30
31
32
6.5 Summary
This chapter has described our implementation of the project. We have a number
of user interfaces to create and we have a huge database to maintain. Therefore
our implementation is still in progress.
33
Chapter 7
7.1 Introduction
This chapter describes the user interface in detail .We are going to explore our
view or screen and describe the features and facilities that were implemented.
7.4 About
Here we told about the developer and the project motive and also goals.
34
7.6 Summary
This chapter has described our application screens. So now we have a better idea
about our apps facilities and features. Hope users will enjoy it.
35
Chapter 8
References
● https://angularjs.org/
● https://nodejs.org
● https://www.raywenderlich.com
● https://developers.google.com
● https://developer.apple.com/app-store/review/guidelines
● http://www.nctb.gov.bd
● http://www.nctb.gov.bd/site/page/e6551aa3-2cd8-4e23-89cc-8a49cca3d
c69/-
● https://www.linkedin.com/
● https://swagger.io/
● https://jsonmaster.github.io/
36
Screenshots
37
Screenshot: Home View Screen
38
Screenshot: List View Screen
39
Screenshot: Download or Preview Screen
40
Screenshot: Reading/Preview Screen
41
Screenshot: About us Screen
42