
Learn to build a bank application with node.js, typescript, and mongodb, implementing user authentication with hashed passwords, date of birth, endpoints for deposits, withdrawals, p2p transfers on cards and transactions.
Begin a node.js and typescript based bank application by creating a project folder, configuring typescript, adding eslint and type definitions, and wiring express with tests and automatic code formatting.
Create the main bank application using node.js, typescript, and mongodb by setting up express, importing modules, configuring json payload handling, and running the server.
Connect to MongoDB and run the app by configuring the environment and starting the server, then verify the database connection and server readiness for requests.
Design a MongoDB user model for a Node.js TypeScript bank app, define create and user interfaces with email and password, and build the schema with model methods.
Create a signup endpoint using Express in Node.js, retrieving email and password from the request, checking for existing users, creating a new user if needed, and setting a session.
Develop a password service for a bank app using Node.js and TS with MongoDB, implementing a static method to hash and salt passwords for secure storage.
Register a new user securely by hashing the password, preserving existing logic, creating the user in the database, and confirming a cookie is set via Express.
Implement sign in and sign out flows for existing users, manage sessions, validate credentials, and issue tokens to enable secure api access; outline sign up and sign in.
Build an express middleware to fetch and verify the current user from the session, returning the current user or passing control with next() when no session exists.
Implement a require auth middleware to protect cards and transactions by leveraging a current user from the middleware, ensuring secure access in the bank application.
Create a card model linked to a user with a balance and a card number; each card belongs to one user, ready for the Node.js/TypeScript and MongoDB bank app.
Create endpoints to create and retrieve a user's cards, enforcing authorization so only the card owner can access them, and wire in imports, exports, and database calls.
Create a new card for a user, manage multiple cards under the same account, and set up the flow for subsequent transactions and gift cards.
Create a transaction model for the bank app by defining recipient, sender, card, amount, and description fields linked to a user, using MongoDB in a Node.js TypeScript project.
Create a deposit model within the transaction system, linking deposits to the current user's account, updating the balance by the deposit amount, using the transaction builder and model builder.
Execute deposit shows how processing a deposit updates the card balance and transactions, and how each 200 increment changes the total.
Execute withdraw transactions by validating balance, enforcing card limits, and testing post requests with postman, then explore P2P transactions through practical examples.
Create a peer-to-peer transaction flow by validating sender and recipient cards, checking balances, deducting the amount, crediting the recipient, and recording the transaction.
Execute p2p transfers by creating a new user and card, depositing funds to establish a balance, and processing a peer-to-peer payment with visible transactions.
Scalable, production-ready code? Its here!
How This Course Works
This will expose you to challenging problems and clever solutions when handling subjects like bank features application.
What Technology You'll Use
We are building a backend application, we'll use Nde.js and TypeScript . Data for each service is held in either a Mongo database.
This is a scary list of technologies! Not familiar with some of these? No problem! The course is built assuming that you only know the basics of Nodejs. No other knowledge is needed - you will learn everything you need to know.
What You'll Be Able to Do
By the time you complete this course, you will be able to:
Architect basic bank operations
Determine whether your app is a good fit for deposit, withdraw and p2p transcations
Organize and enhance the reusability of code in large projects
What You'll Learn
An absolute incredible number of topics are covered in this course. Here is a partial list of what you'll do:
Create a authorisation flow with jwt token
Create a new users with signup, signin, signout and get current user endpoints
Create cards and get cards for user
Create transactions like deposit, withdraw and p2p
And much more!