7
Building a Mobile Application for Teacher Coaching
Second: Select an application architecture and framework
Dening a software architecture is a critical part of the software development process, as it provides
a blueprint that guides the system’s design, development, and evolution. For program managers, a
well-dened architecture is important because it provides a common understanding of the system
among stakeholders, and it helps to ensure that the system is easy to maintain and evolves over time.
It is important to note that project managers should ensure that app designs reflect the enabling
environment, including Internet connectivity, access to electricity, availability of IT support, digital
literacy of users, and political will of the host government to make use of the data.
8
Once the framing questions delineate the app for the local context, a product owner should delineate
the requisites for a minimum viable product—the core features and functions required for the project—
and establish the general software architecture to guide the broader development team to meet the
project’s mission requirements. Key to this is selection of software frameworks that aid in reducing
app complexity, reduce the number of software bugs, provide for greater maintenance by others
familiar with the frameworks, and enhance app security through peer review of core elements. To
maximize code longevity and maintainability, it is recommended to use common frameworks with
which future software developers and maintainers may easily familiarize themselves. It is further
recommended to evaluate software frameworks for each of these components with an expert who
understands the mission requirements for the app before making a nal decision.
Backend software frameworks include Django,
9
Ruby on Rails,
10
ASP.NET Core,
11
and Laravel.
12
These
are used to run the application logic on the data server and communicate with frontend apps that the
pedagogical leaders will use via sets of application programming interfaces (APIs). The application
backend is also responsible for interfacing with the database. In other words, a backend handles
the business logic and recordkeeping needed to support the app. It is common for a project to use
different frameworks to control various aspects of the backend, especially if the app has requirements
to connect with other data systems, such as an EMIS. Selection of a backend framework may depend
on ensuring code compatibility with legacy systems. To aid in this selection, the product owner should
engage in conversations with key stakeholders to help determine which framework would best meet
the needs of the project.
The application database could be hosted on the same server as the backend (for example, MySQL or
Postgres), provided from a data center (using the same tools or proprietary software for larger-scale
database deployments such as Oracle Database or Microsoft SQL Server), or subscribed to from a
cloud host (for example, Amazon RDS, Redshift, or Google Cloud SQL). While many alternatives are
emerging, it is recommended to build a coaching app using a SQL-compatible database, the most
adopted standard among various database solutions. Coach logic works well with relational databases,
and tables produced may be used easily for dashboards and integration with other data systems.
Such compatibility makes it easy for other developers to tap into the database and run queries for
specialized reports, data analysis, etc.
8 The World Bank’s EdTech Readiness Index may be a useful tool to identify and measure the different enabling factors that
are required to ensure the environment meets the minimum criteria needed to be used effectively.
9 https://www.djangoproject.com
10 https://rubyonrails.org
11 https://asp.net
12 https://laravel.com
2
STEP