• hello@anchorsoftacademy.com

REST API for Mobile & Web Apps Development with Node JS

Build Backend REST APIs for Mobile and Web Apps with Node JS

[ javascript, Express, JWT, BCrypt, Mongodb, postman, git & github ]

Build Backend REST APIs for Mobile and Web Apps with Node JS

SCHEDULES & FEES

  • DateJan. 19, 2022
  • Duration 10 Weekends
  • Days and Time Wednesdays & Fridays 9am - 12.30pm
  • Fee N250,000
  • Registration Status In progress. Register today!

COURSE DESCRIPTION

API decouple architecture

What is an API ? The full meaning of this acronym is:

  • Application
  • Programming
  • Interface.
  • This acronym does not explain exactly what an API is in practical contexts. Practically, an API(also commonly called web service, data service, or just service) is an application interface that exposes the data and functionalities of one application to other independent application(s) in a secure way; thus enabling applications integrations.

    With an API, you can build a single backend(database and some functionalities) that works with mobile, SPA, GUI, and even CLI frontend applications all at the same time! APIs redefined our world and enable new experiences that were not possible before. That is why banks can now provide internet-banking mobile apps that enable customers to perform banking operations like funds transfer, donations/collections, bill payments, and much more; operations that were exclusive to only bank tellers a few years ago.

    In an API environment - called Decoupled Architecture - one or more applications act as the API(s), which is the data service. This is the part of the system that provides the services that another application wants to consume or connect with. If you are building a fintech product for instance, the functionalities provided by this API may include: Bills Payment, Funds Transfer, Airtime Purchase, Loan Request, etc. API is responsible for the details of how each of the functionalities is handled and processed. This API may provide these functionalities internally or rely on another API provided by a third party to get the job done. An API can be written in any server-side programming language(node, python, Java, .net, etc). Then the frontend applications(also called the client applications) which will consume the API will have to be developed either by the same company providing the API or third-party developers and companies. These applications can be mobile apps(android or iOS) or web applications, also written in any language.

    In this course, you will learn professional API development with Node JS. As explained above, the API you will learn to build can be consumed by any frontend application - web and mobile.

    This course is NOT for an absolute starter in the software engineering space. You should know a frontend - web or mobile - before taking this course.

    API Beginners' FAQs

    Can I start with API development with no prior web/mobile development experience?

    No. Ideally you should be familiar with a frontend development of any kind - web, mobile, or even GUI(desktop app). You will struggle a lot going straight to API. This course, and in fact any API course in the market, assumes you know frontend. THIS COURSE WILL NOT COVER FRONTEND DEVELOPMENT except to demonstrate client-to-api integrations.

    Is it compulsory to build an API backend for all applications ?

    No. For instance, if you run a physical store and want to also sell online to increase exposure, building an API backend in such a scenario is overkill. You can build it completely as a server-side rendered application (also called tightly coupled architecture). But as you grow from a one-man-show to a Jumia or Amazon, you will need to build APIs (implementing loosely coupled or decoupled architecture) to enable integrations for independent but complementary applications like third-party sellers portal, orders fulfillment system, CRM systems, returns management system, affiliates program management system and maybe a few more.

    How much experience should I have before I start learning API ?

    It depends on individuals. You can start once you feel comfortable with building data-driven server-side applications. Or once you can build mobile apps(iOS or Android). We recommend you have from 6 months to a year of experience as a web or mobile developer before delving into API.

TARGET AUDIENCE

[Web & Mobile Developers]

This is NOT a course for absolute beginners in the software development space. A good grounding in web or mobile development is a requirement. If you do not meet this requirement, consider taking our mobile or fullstack python development course first before taking this.

WHAT YOU WILL LEARN

  • Master the Javascript language from scratch
  • Master HTTP Fundamentals(Request/Response Cycle, HTTP Methods, Status Code)
  • Build a Real World Backend RESTful API For an eCommerce store
  • Compose complex queries for Mongodb with Mongoose
  • Implement hooks for Req/Res cycle with node middlewares
  • Master authentication/authorization with JSON Web Token (JWT)
  • API Documentation with Open-API(Swagger) and Postman docgen
  • Deployment with SSL certificate

COURSE OUTLINE

Javascript Fundamentals (ES5 and ES6)

  • Getting Started
    • What is javascript?
    • Setting up Development Environment
    • Javascript in Browsers
    • Javascript on the Server - Node JS
  • Basics
    • Variables
    • Constants
    • Primitive Types
    • Dynamic Types
    • Objects
    • Arrays
    • Functions
    • Types of Functions
  • Operators
    • Javascript Operators Overview
    • Arithmtic Operators
    • Assignment Operators
    • Comparison Operators
    • Equality Operators
    • Ternary Operators
    • Logical Operators
    • Operators Precedence
  • Control Flow
    • If-else
    • Switch-case
    • For
    • For
    • While & Do-while
    • The infinite loop trap
    • For-in & For-of
    • Break and continue
    • Exercises
  • Objects
    • Object basics
    • Factory function
    • Constructor function
    • Value vs Reference types
    • Object cloning
    • Math object
    • String
    • Template literal
    • Date
  • Arrays
    • Introduction
    • Adding elements
    • Find elements(Primitive & Reference types)
    • Arrow functions
    • Removing elements
    • Emptying an array
    • Combining and slicing
    • The spread operator
    • Iterating, sorting and joining
    • The filter and map methods
    • Exercises
  • More on functions
    • Function declaration vs function expression
    • Hoisting
    • Arguments
    • Default parameters
    • Getters and setters
    • Scope
    • Let vs var
    • The this keyword
    • Exercises

Asynchronous Javascript

  • Synchronous vs asynchronous codes
  • Different asynchronous patterns in javascript
  • Callbacks
  • Replacing callbacks with promises
  • Resolved promises
  • Running promises in parallel
  • Async and await

Node and Express JS

  • Getting started with node
  • Installation and node architecture
  • Your first node program - Hello world
  • Working with core node modules
  • Path, OS, File & Http modules
  • NPM - Node Package Manager
  • Package.json & installing packages
  • What is an API ?
  • Working with RESTful APIs
  • Building RESTful APIs with Expressjs
  • Express Server and http endpoints
  • Morgan and Nodemon
  • Environment variables
  • Routes parameters:url and querystring
  • Handling GET
  • Structure routes with express router
  • Introduction to postman
  • Implement POST PUT and DELETE
  • API testing with postman
  • Middleware
  • Creating custom middlewares
  • Inbuilt middlewares

Database with Mongodb and Mongoose

  • What is a database?
  • RDBMS vs NoSQL
  • Installing Mongodb on windows and Mac
  • Understanding collections and documents
  • Connectin with Mongodb
  • Models and schemas
  • Schema types and validation
  • Db Query - saving documents
  • Db Query - querying documents
  • Exercises

Security, Error handling and Deployment

  • Introduction to security
  • Creating the user model
  • User registration
  • Password hashing with bcrypt
  • Authenticating users
  • JSON Web Tokens
  • Generating authentication tokens
  • Storing secrets in environment variables
  • Setting response headers
  • Authorization middleware
  • Protecting endpoints
  • Logout the a user
  • Role-based authorization
  • Error handling
  • Error loging
  • Deployment

Git & GitHub

  • What is Version Control System(VCS)
  • Installing Git and How Git Works
  • Global Git Config
  • Repository Init
  • Staging Files
  • Making Commits
  • Undoing Changes
  • Branches
  • Introduction to GitHub
  • Cloning
  • Team Coding with GitHub
  • Forking Repos

Students' Testimonials

5-star testimonial Tosan Oke
[fullstack development]

Anchorsoft academy has a well structured curriculum that will take you from zero to mastery. I never really gained a good grasp of the fundamentals of software development (CSS, Python, API's) despite taking several online courses until I joined Anchorsoft, I am now fully confident in my abilities to build web applications.

Anchorsoft is highly recommend if you're seeking out a place to start or gain mastery of software development.

5-star testimonial Ahmad Adejumo
[fullstack development]

It was really amazing learning at Anchorsoft academy, the teachers are very knowledgeable and have good teaching experience and mentoring of students. And with that, I am so proud to call myself a past student of Anchorsoft academy