Minabtech'S Specialized Software Development Training Lesson Plan For Bahirdar Institute of Technology
Minabtech'S Specialized Software Development Training Lesson Plan For Bahirdar Institute of Technology
Introduction
MInab IT Soluitons PLC and Bahirdar University have a signed a memorandum of understanding to
outlining cooperation among the two organizations in offering specialized trainings in software
development as well as career opportunities through MinabTech’s product HaHuJobs. In commencement
to actuate this cooperation MinabTech will offer a three month extended trainings outlined as per the
below stated lesson plan. The plan offers insights on how the trainings will be offered, what components
it features and in what specific subject areas it will focus. The training aims to provide trainees guidelines
and insights on software engineering and/or related filed specialized skills. It also offers learning methods
and best practices under each training category.
The training features reading and implementation assessments and exercise submission from trainees are
evaluated to offer feedback for improvement or qualification. Assignments are given to trainees at the
middle and end of each training categories. This specialized training will be administered in both lectured
and hands on lesson practice format based on instruction from trainers. Each training class will have two
trainers, one who leads the lecture and the other an assistant to help demonstrate technical examples.
The training will have a total of 24 classes each with 2-hour duration and 8 classes allocated for each
category of specialization.
In order to qualify for this training, one needs to pass through two main qualifiers, a prescreening
assessment and working understanding of specific subject matters in software engineering. As a primary
qualifier a successful submission of the prescreening assignments is essential and the implementation
should receive a qualifying score from the evaluating personnel assigned by Bahirdar Institute of
Technology.
The second category of qualifiers is understanding of basic software engineering concepts which are
expected to be administered through the formal software engineering department curriculum of Bahirdar
University. Among others below are a list of courses and subject matter understandings that trainees
enrolling for these specialized trainings are expected to have: -
• Introduction to programming
• Web programming, especially CSS, HTML, and JavaScript
• Mobile programming (recommended not essential)
• Advanced database management
• Basic understanding of GIT
• Basics understanding of Linux OS and environment
• Advanced understanding of software architecture
Training subject areas
The training is composed taking into account the four basic component of a web or a cloud platform, the
back end, database and front ends as well as mobile app as an extension of the client end. Accordingly,
this specialized training will feature three primary topic areas for specific skill acquisition that are essential
for web or cloud-based programming. The training offers insights on the specializations, discusses specific
competence areas and provides technical lessons on selected front and back-end stacks. The training is
subdivided into categories of three each of which have a sub module on specific skill competence: -
• Front end
• Back end
• Mobile development using flutter
Front end: this topic will feature a design concept/thinking with implementation, recaps of what trainees
are expected to know from their academic stay at Bahirdar University in web programing, a hands-on
training on specific frame works and front end storge management.
• Front end design: - this module will feature concepts and practices in designing a platform
front end (UI/UX) based on client requirements, with skills training on the concepts of
mockup development and wire framing using Figma and Adobe XD.
• Web programing recap: - this module will help trainees revisit web programming syntaxes
and concepts in HTML, CSS and JavaScript which are essential for the modules to follow.
• CSS frame works: - this module will introduce trainees to CSS frame works and provide a
skills training to provide a working understanding of the Tailwind CSS framework in co-
relation with UI/UX design tools discussed in prior lessons.
• JavaScript frame works: - this module will introduce trainees to JavaScript frame works
and offer an introduction to Vue.js prepping for in depth skills training on setting up,
implementing and using build tools to deploy a Vue.js project.
• Setting up Vue.js: - this lesson will cover prepping an environment to implement a Vue.js
project and setting up Vue.js for project use. This module will also provide a detailed
lecture on using package mangers and utilizing build tools using Vite.js.
• Front end storage management: - this lesson covers training details on how to utilize front
end storages like front local storages, session storages and browser cookies.
• Network requests: - this module will provide trainees with technical skill on how to
request and send data via http/s requests. This will primarily focus on addressing technical
competence on consuming GraphQL API using Apollo client.
Back end: this category of training is aimed at providing technical skills required to build platform back-
end structures using GraphQL. This training features a recap on database management, an in-depth
training on Hasura GraphQL server, setting up back end docker and logic implementation using node.js.
• Back-end design: - this training module will focus on offering trainees skills on how to
translate client approved mockups and wireframes to a backend structure using Hasura
GraphQL.
• GraphQL: - this module will introduce and help acquire technical skill on how to
implement GraphQL and what it is in general.
• Database management recap: - this module will help trainees revisit database
management concepts in query language, relations and schema definitions which are
essential for the modules to follow.
• Setting up a back end: - this module is intended to enable trainees to acquire a working
knowledge on how to setup back end of a project using Docker.
• Back-end logic: - this module will introduce trainees on how best to implement back-end
logics using node.js using Express.Js frame work.
Mobile development using Flutter: - this is a non-native mobile application development training for
devices that run on both Android and IOS. This training will offer technical skills on the primary
components of Flutter a mobile framework that allows trainees to develop mobile apps using a single
code base. This training will feature mobile app UI/UX design and flutter specific components.
• Mobile app Design: - this module will focus on mobile specific designs and how to use
Figma or Adobe XD on how to implement them.
• Widget and interface: - these are primary components of the Flutter frame work primarily
used to define user interfaces and the user experience therefore on this module trainees
will be equipped with working understanding of these two flutter components.
• In app navigation and routing: - these are concepts with in Flutter that enable the
developer to build navigation models and page to page routing which will be taught in
this module to equip trainees with a working understanding on how best to implement
these components.
• Using packages: - this module will introduce trainees to flutter packages and how best to
utilize them in their projects.
• State Management: - this is mobile app development concept to keep track of the
application state, trainees will be thought on how to manage an app state using flutter
frame work.
• Networking and https (GraphQL) request: - this module will help trainees acquire the
know-how and working skills on how best to communicate with back-end APIs using
Hashura GraphQL server.