Sei sulla pagina 1di 44

NCTB Textbook

A digital library in iOS

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

In this chapter, we hope to provide a brief depiction of the background and


motivation about our project, point out the aim and objectives and to present the
proposed solution through our project.

1.2  Background and Motivation

Today’s students see themselves as ​digital natives​, the first generation to grow up
surrounded by technology like smartphones, tablets and e-readers.

Teachers, parents and policymakers certainly acknowledge the growing influence of


technology and have responded in kind. We’ve seen ​more investment in classroom
technologies​, with students now equipped with school-issued desktop or mobile.

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

● Build the project as straightforward as possible.

● Provide necessary functionality which is essential for the user.

● Provide library facilities.

● Provide download mechanism.

● Provide a better user interface.

● Provide services offline.

1.4  Summary

This chapter, Introduction has provided a brief description of our project


including several captions including background, motivation, aim and objectives.
In the next chapter, we will discuss prevailing similar applications and point out
the specialty, performance and benefits of our proposed application while
comparing them.

4
 
Chapter2

2.0 Compare with similar works

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.

2.2  Similar applications comparison

● NCTB Text Book

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.

● NCTB All Books

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

We hope to use the following frameworks and techniques through the


implementation of our proposed solution.

● Node.js

● XCode

● POSTMAN

● Swagger

● Sublime Text

 
3.3 Node.js

Our weather forecasting application for the Meteorology Department highly


relies on multi-user interaction which occurs concurrently for every three hours.
Thus, IOS Weather mobile applications might have users who update and

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

Postman is the only complete API development environment. Today we have 10


million developers and over 500K companies using our comprehensive set of
built-in tools to support every stage of the API lifecycle. With Postman you can
design, mock, debug, test, document, monitor, and publish your APIs all in one
place.

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.7 Sublime Text

Sublime Text is a shareware cross-platform source code editor with a Python


application programming interface. It natively supports many programming
languages and markup languages, and functions can be added by users with
plugins, typically community-built and maintained under free-software licenses.

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

This chapter is focused on how we are going to adopt the technology to


implement the solution for our NCTB Text Book. There are several technologies
that we are using in the solution.

4.2  Software Development Process

Agile Software Development

Agile is a time-bound, iterative approach to software delivery that builds software


incrementally from the start of the project, instead of trying to deliver all at once.

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.

The conventional software models such as Waterfall Model that depends on


completely specifying the requirements, designing, and testing the system are not
geared towards rapid software development. As a consequence, a conventional
software development model fails to deliver the required product.

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:

1. Highest priority is to satisfy the customer through early and continuous


delivery of valuable software.
2. It welcomes changing requirements, even late in development.
3. Deliver working software frequently, from a couple of weeks to a couple
of months, with a preference to the shortest timescale.
4. Build projects around motivated individuals. Give them the environment
and the support they need, and trust them to get the job done.
5. Working software is the primary measure of progress.
6. Simplicity the art of maximizing the amount of work not done is essential.
7. The most efficient and effective method of conveying information to and
within a development team is face-to-face conversation.

11
Development in Agile:​ Let’s see a brief overview of how development occurs in
Agile philosophy.

● In Agile development, Design and Implementation are considered to be


the central activities in the software process.
● Design and Implementation phase also incorporate other activities such as
requirements elicitation and testing into it.
● In an agile approach, iteration occurs across activities. Therefore, the
requirements and the design are developed together, rather than
separately.
● The allocation of requirements and the design planning and development
as executed in a series of increments. In contrast with the conventional
model, where requirements gathering needs to be completed in order to
proceed to the design and development phase, it gives Agile development
an extra level of flexibility.
● An agile process focuses more on code development rather than
documentation.

Advantages:

● Deployment of software is quicker and thus helps in increasing the trust of


the customer.
● Can better adapt to rapidly changing requirements and respond faster.
● Helps in getting immediate feedback which can be used to improve the
software in the next increment.
● People – Not Process. People and interactions are given a higher priority
rather than process and tools.

12
● Continuous attention to technical excellence and good design.

Agile Manifesto Principles

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:

Agile Manifesto Principles

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.

4.3  Approaches to the Solution

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

Analysis and Design

 
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

In acquisition-oriented systems engineering, a top-level system design represents the


envisioned implementation of a system in sufficient detail to support credible
projections of cost, schedule, performance, evolution, and risk. A top-level system
design can be used to assess system feasibility at the outset of a program, as a basis for
performing analyses of alternatives, and as a tool to help finalize requirements and
budgets prior to a system development contract solicitation. When developed with
careful consideration of its purpose, the top-level system design becomes the
program's early technical baseline for acquisition planning activities.

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

5.3  System Diagram

A system diagram is a visual ​model​ of a ​system​, its components, and their


interactions. With supporting documentation, it can capture all the essential
information of a system's design. There are many variations of diagramming style that
all fall under this rubric. The style presented here is intended to be optimally
consistent with the rest of this courseware.

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

A ​flowchart​ is a type of ​diagram​ that represents a ​workflow​ or ​process​. A flowchart


can also be defined as a diagrammatic representation of an ​algorithm​, a step-by-step
approach to solving a task.

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

solution model to a given ​problem​. Flowcharts are used in analyzing, designing,


documenting or managing a process or program in various fields.

Figure 5.4: Flowchart

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

Application programming interfaces consist of two components:

● Technical specification describing the data exchange options between solutions


with the specification done in the form of a request for processing and data
delivery protocols
● Software interface written to the specification that represents it

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:

● Start or finish a session


● Get amenities for a single room type
● Restore or retrieve objects from a server.

Function calls are described in the API documentation.

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

APIs by availability aka release policies

In terms of release policies, APIs can be private, partner, and public.

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 by use cases

APIs can be classified according to the systems for which they are designed.

Database APIs. ​Database APIs enable communication between an application and a


database management system. Developers work with databases by writing queries to
access data, change tables, etc. ​The Drupal 7 Database API​, for example, allows users
to write unified queries for different databases, both proprietary and ​open source
(Oracle, MongoDB, PostgreSQL, MySQL, CouchDB, and MSSQL).

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.

6.4 API for NCTB TextBook

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.2 Splash Screen


At the starting of the application we will see a view for some milliseconds. This view
or screen is called splash screen or launch screen. It will always occur at the starting of
the application and view for some milliseconds.

7.3 Home Screen


After the splash view we are automatically navigated to the home screen . Here we
will see at the top a cover photo, in the middle section class wise categorized digital
book section and at the end level we will see the tab bar.
Cover Photo- It is implemented only for better view.
Book Section- Here users can find their books according to their education level.
Tab Bar- Here user can switch to another page or screen or view if he/she wants.

7.3 List Screen


In our application the second page or screen is a list view. Here users can find their
desired books according to subject or topic.

7.4 About
Here we told about the developer and the project motive and also goals.

7.5 Download & Preview Screen


This screen can be found by the user when he/she clicked or touched a specific book.
This view will offer the user to download or view the book using the application.

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

Screenshot: Splash Screen

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

Potrebbero piacerti anche