IOCODES
IOCODES
  • 72
  • 18 155
Build A Complete Fullstack banking app with Spring Boot, AI and Reactjs 1
Hi There it has been a while !!!
In This video tutorial we'll be seeing how to develop a fullstack banking app with Springboot, Postgresql,
Reactjs, Tabnine a generative AI agent tool and Tailwind css.
This video is divided into two parts and in this first part we'll be developing the complete backend
architecture of this application (Our Banking RESTApis) with Springboot and postgresql while using the IntelliJ IDE (You can employ the use
of your preferred IDE). In this first part of the video we'll be learning how to prompt and make use of generative
AI tools to generate and inject codes into our development environment using Tabnine, and in the case of springboot we'll be
looking at how to implement the use of Spring data JPA to create Entity between different models of the application,
How to properly secure our application with the use of Spring Security & JWTs, how to carry out proper validations using an authenticated
entity in the application and lots more.
The application aims to model more real world cross border banking application where a registered user of
the application can create accounts for currencies of different nationality.
You can employ the use of the timestamp below to skip to any of your preferred part of the video or perharps continue
from a well defined point.
Introducton to the Application Development
00:00:00 -: Inttroduction
00:05:09 -: Bootstrapping project using Spring Initilzr
00:13:06 -: Installing Tabnine and JpaBuddy plugin
00:17:25 -: Prompting our AI agent
Creating Entities, Repositories and defining Entity Relationships using JPA annotations
00:17:35 -: Defining User Entity
00:24:55 -: Defining Card Entity
00:32:54 -: Defining Transaction Entity
00:45:35 -: Defining Account Entity
01:07:55 -: Defining UserRepository Interface
01:09:55 -: Defining AccountRepository Interface
01:10:30 -: Defining TransactionRepository Interface
01:11:10 -: Defining CardRepository Interface & generating query method with JpaBuddy

Implemeting Spring Security & JWT For securing the application
01:24:00 -: Defining AppConfig and Security Config Class
01:31:55 -: Adding the jwt dependency to the pom.xml file
01:33:30 -: Creating Our JwtService Class
01:45:20 -: Defining our Authentication filter Class
01:58:30 -: Implementing The Security Config Class
02:07:16 -: Creating our User class controller
02:09:25 -: Defining our service for registering and authenticating a user.
02:13:15 -: Defining UserDto for Data Transfering
02:20:40 -: Testing The logic and endpoint with Postman & Commiting to Git.

Implemeting Bank Account Related Logic for the Application
02:49:00 -: Explaining and showing the different operations for an account
02:51:18 -: Implementation for creating an account, AccountService and AccountController Creation.
03:24:50 -: Testing The Account creation logic and endpoint with Postman
03:42:17 -: Implementing Funds Transfer between accounts in the application
04:14:40 -: Testing The logic with Postman
04:22:25 -: Implementing Currency Conversion in application using THE CURRENCY API
05:25:00 -: Testing The logic and endpoint with Postman & Commiting to Git.

Implemeting Bank Card Related Logic for the Application
05:32:45 -: Explaining and showing the different operations for a user card
05:37:55 -: Implementation for creating a Card, Debiting and Crediting using the CardService and CardController Classes.
06:27:30 -: Testing The Card creation logic and endpoint with Testfully an alternative to Postman
06:31:10 -: Implementing Transaction Rollbacks across all service class using '@Transactional'.

Implemeting Bank Transaction Related Logic and applying some clean up for the applicatin
06:47:05 -: Implementation Retrieving of Transactions for users, accounts and card based on provided ID and path
06:57:02 -: Testing The Transaction Logic and endpoint with Testfully
06:59:17 -: Employing Javadoc with the use of Tabnine for commenting on the project.

Tools employed for the development of this application includes
-- Tabnine
-- JpaBuddy
-- Postman www.postman.com/downloads/
-- Testfully docs.testfully.io/docs/download#download-the-desktop-app
-- intellij www.jetbrains.com/idea/download/
The Complete source code can be found in the github repository using the link below
--- github.com/iocods/iobank ---
Pls do subscribe to the channel and give the video a like.
And for any collaboration on any project you can always reach out via iocodes2000@gmail.com
มุมมอง: 2 015

วีดีโอ

Token Revocation In Spring OAuth2 Authorization Server
มุมมอง 51หลายเดือนก่อน
In this part of our OAuth2 series we'll see how to implement the revoking of users token using the revoke endpoint that the oauth2 server exposes.
Implementation of OAuth2 clients registration.
มุมมอง 104หลายเดือนก่อน
In this part of our OAuth2 series we'll see how to implement the registration of clients with the use of an exposed API endpoint and storing the details of the registered client in a database for continuous persistence.
OAuth2 opaque token implementation
มุมมอง 492 หลายเดือนก่อน
This is a new video on the continuation of the OAUTH2 series and in this video we'll be taking a close look at reference tokens or opaque tokens and how to validate a client or user trying to access a resource using the opaque token. to get a proper understanding of all the implementations of this video you'll have to checkout the first video in the series, or you already have a prior knowledge...
PKCE Protection In Spring Security Oauth2 authorization server
มุมมอง 1662 หลายเดือนก่อน
Hello Viewers I trust you all are doing fine. This video is one of the video my spring security oauth2 series, pls do well to subscribe and turn on the bell icon so when the other upload on the series goes live you'll get notified. In my last upload I talked about how to setup an authorization server using the least possible configuration. But using the Oauth2 authorization code grant flow like...
Build a complete OAuth2 Authorization Server with Springboot
มุมมอง 7062 หลายเดือนก่อน
Hello my esteemed viewers I trust you all are doing well. In this video I'll show be demonstrating how to create an OAuth2 authorization server in Spring boot for starters this is one video amongst many in a series that I'll call the Spring OAuth2 series pls in order not to miss out pls subscribe to the channel so that when the next video in the series get posted you'll be notified. The OAuth2 ...
CI-CD Deployment of a Springboot application In AWS.
มุมมอง 833 หลายเดือนก่อน
Link to full project on github github.com/iocods/Iocode-Book-Project This video provides a detailed, step-by-step guide on how to deploy a Spring Boot application to the aws cloud platform using the code pipeline service for a CI/CD deployment. I've covered how to create an ec2 role and also set up the elastic beanstalk instance in AWS. The tutorial covers the deployment of the book project tut...
Deploying a Spring Boot Application to AWS: Latest Step-by-Step Guide.
มุมมอง 3013 หลายเดือนก่อน
Link to full project on github github.com/iocods/Iocode-Book-Project This video provides a detailed, step-by-step guide on how to deploy a Spring Boot application to the aws cloud platform I've covered how to create an ec2 role and also set up the elastic beanstalk instance in AWS. The tutorial covers the deployment of the book project tutorial I created a few weeks ago the source code is in th...
The Ultimate Guide to Firebase Storage Integration in Spring Boot
มุมมอง 4853 หลายเดือนก่อน
@Firebase This video contains the introduction and steps to employ in order to integrate firebase storage service in your spring boot application. Although this video is mainly based on the storage service alone, however it contains the complete code on how to seamlessly initialize the firebaseApp instance in your project and with that you can easily integrate your spring app with any of the fi...
Spring security & Jwt tutorial update
มุมมอง 1753 หลายเดือนก่อน
This is a simple follow up video to the main spring security video tutorial posted a couple of days ago th-cam.com/video/mUq9MGe5vZA/w-d-xo.html In this follow up video I've only made changes to the JwtService class and the pom.xml file by updating the version of my jjwt-api library to the latest version of 0.12.5 and also removing deprecated function that was initially used from the jwtservice...
Complete Spring Security & JWT tutorial [2024]
มุมมอง 2K4 หลายเดือนก่อน
In this complete spring security video tutorial we'll learn implement proper authorization and authentication logic for our springboot applications using spring security and Jwts following the updated standard. The major key concept we take a look at is how to provide proper configuration for authorization and authentication in a spring boot application. The complete project can be found in the...
A Complete Tutorial on how to Build a Spring Boot Book API Project With Spring Data Rest 2
มุมมอง 2K4 หลายเดือนก่อน
Link to full project on github github.com/iocods/Iocode-Book-Project This video provides a detailed, step-by-step guide on creating a Spring Boot project with Spring Data Rest from scratch it is the second part of project video. The tutorial covers the development of a Book API that mirrors the structure of the AWS book store. It follows proper industry standards throughout the application's de...
A Complete Tutorial on how to Build a Spring Boot Book API Project With Spring Data Rest
มุมมอง 7K10 หลายเดือนก่อน
This video provides a detailed, step-by-step guide on creating a Spring Boot project with Spring Data Rest from scratch. The tutorial covers the development of a Book API that mirrors the structure of the AWS book store. It follows proper industry standards throughout the application's development lifecycle until successful deployment. Key Spring-related concepts covered in this project include...
Postman Complete Installation Guide
มุมมอง 2110 หลายเดือนก่อน
This video contains a simple overview of what Postman is and also contains the proper steps and procedure on how to install and set up postman inside of you computer/PC... Please do well to like the video and also subscribe to the channel for more amazing content.
Mastering Postgresql: Quick and Easy Installation Tutorial
มุมมอง 5310 หลายเดือนก่อน
This video contains a complete overview of what postgresql an relational databases managment system (RDMS) is and how to install and set it up in a local machine for development puropse. #postgres #database #javaforbeginners link to the download page postgresql.org/download Do well to like and share the video and please support the channel by clicking on that subscribe button.
Java Multiple Inheritance With Interface Implementation
มุมมอง 1511 หลายเดือนก่อน
Java Multiple Inheritance With Interface Implementation
Java Introduction To Objects
มุมมอง 711 หลายเดือนก่อน
Java Introduction To Objects
Java Lambda Expression
มุมมอง 1011 หลายเดือนก่อน
Java Lambda Expression
Java Method Overloading
มุมมอง 1311 หลายเดือนก่อน
Java Method Overloading
Java Interface And Enum
มุมมอง 3011 หลายเดือนก่อน
Java Interface And Enum
Java Incrementing And Decrementing Operators
มุมมอง 1111 หลายเดือนก่อน
Java Incrementing And Decrementing Operators
Java Inheritance and Polymorphism
มุมมอง 1311 หลายเดือนก่อน
Java Inheritance and Polymorphism
Java Methods And Parameters
มุมมอง 511 หลายเดือนก่อน
Java Methods And Parameters
Java Object Construction
มุมมอง 511 หลายเดือนก่อน
Java Object Construction
Java Record Classes
มุมมอง 1011 หลายเดือนก่อน
Java Record Classes
Java Getters and Setters
มุมมอง 911 หลายเดือนก่อน
Java Getters and Setters
Java Return Statement
มุมมอง 611 หลายเดือนก่อน
Java Return Statement
Java Throwing Exceptions And Try
มุมมอง 411 หลายเดือนก่อน
Java Throwing Exceptions And Try
Java This and Super
มุมมอง 1111 หลายเดือนก่อน
Java This and Super
Java Types Of Methods
มุมมอง 511 หลายเดือนก่อน
Java Types Of Methods

ความคิดเห็น

  • @ankittiwary3712
    @ankittiwary3712 23 ชั่วโมงที่ผ่านมา

    Kindly bring the next part❤❤

    • @IOCodes
      @IOCodes 23 ชั่วโมงที่ผ่านมา

      currently working on it.

  • @ankittiwary3712
    @ankittiwary3712 23 ชั่วโมงที่ผ่านมา

    Awesome ❤❤❤❤❤

    • @IOCodes
      @IOCodes 23 ชั่วโมงที่ผ่านมา

      Thanks, glad you love it.

  • @santoshmore2953
    @santoshmore2953 2 วันที่ผ่านมา

    next part?

    • @IOCodes
      @IOCodes 2 วันที่ผ่านมา

      I'm currently working on my penultimate year project and when I'm done the second part will be out.

  • @pritam...8796
    @pritam...8796 3 วันที่ผ่านมา

    loved it , great work !🔥

    • @IOCodes
      @IOCodes 3 วันที่ผ่านมา

      Glad to hear that!

  • @Chuntech
    @Chuntech 11 วันที่ผ่านมา

    Mumu people why u later release the source code u for still day sell am

    • @IOCodes
      @IOCodes 11 วันที่ผ่านมา

      Nothing spoil bro.

    • @IOCodes
      @IOCodes 11 วันที่ผ่านมา

      Lets connect on whatsapp +2347052472406

  • @KunalKashyap6
    @KunalKashyap6 11 วันที่ผ่านมา

    When part 2 will be uploaded

    • @IOCodes
      @IOCodes 11 วันที่ผ่านมา

      Currently working on it.

  • @nicholaswhite7351
    @nicholaswhite7351 11 วันที่ผ่านมา

    Source on Github?

    • @IOCodes
      @IOCodes 11 วันที่ผ่านมา

      It's in the video's description

  • @davidmbaimbai440
    @davidmbaimbai440 11 วันที่ผ่านมา

    Its really good

    • @IOCodes
      @IOCodes 11 วันที่ผ่านมา

      I'm glad you like it

  • @IOCodes
    @IOCodes 12 วันที่ผ่านมา

    Hey let me know your thoughts about the video tutorial and project in the comment section.

  • @shashanksingh4708
    @shashanksingh4708 14 วันที่ผ่านมา

    can u pls attach a link to the relevant docs for this part ?

    • @IOCodes
      @IOCodes 13 วันที่ผ่านมา

      @shashanksigh4708 The firebase API does not have much docs on how to work with Java/Springboot applications I checked the libraries in the maven repository to see if there was any relevant documentation on how to use the different classes&methods, but still found none I had to play around it for sometime before I saw a way. So it all depends on the use case for the application you're building and depending on which of the firebase service you're integrating in your application. And pls if you do find one let me know. Then again your can check using the link below firebase.google.com/docs/reference/

  • @alessandrocattaneo-v7q
    @alessandrocattaneo-v7q 14 วันที่ผ่านมา

    In this tutorial i did not understand how you verfy the token when you make a request from the UI or postman to the beckend. You only check if the token is not exiperd, if the user is present in the db and if the user is logged in, but you never verify the token sign. Can you ,with your implementation, have multiple user logged in at the same time? If i'm not wrong no. And if you can, you could have logged in a user with User Role and a user logged in with an Admin Role at the same time, an attacker can forge a token which is not exipired and has set as username the username of an admin user and interact with your application as an admin because you never check the token sign. Am i wrong?

    • @IOCodes
      @IOCodes 13 วันที่ผ่านมา

      @alessandrocattaneo-v7q Firstly I'll love to start of by saying yes, you can have multiple logged in user at the same time making a request to the application, although I've implemented the project with the use of an 'In Memory Db', it is still very possible to have other logged in users in the application because I've included a '/register' endpoint where a new user can be registered. And Secondly with every request that is been made from the client to the server the jwtToken is been verified due to the presence of the extractClaims method in the JwtService class, which the defined snippet is seen below; public Claims extractClaims(String jwtToken) { return Jwts.parser() .verifyWith(generateSigningKey()) // This line ensures that the token is verified with the initial key that was used in the creation of the token. .build() .parseSignedClaims(jwtToken) .getPayload(); } and the process of checking if the token has expired involves extracting the claims which also involves verifying the token with the initial key that was used in signing it. I hope with this response I've answered your questions?

  • @patel5532
    @patel5532 16 วันที่ผ่านมา

    Ig it's not secure to store the firebase config file in resources section or project dir. What's your on thought on this?

    • @IOCodes
      @IOCodes 16 วันที่ผ่านมา

      Yeah it is definitely not secure to store a sensitive details as such directly in the project directory, what I did here was just for demonstration purpose. I'll be uploading a video in coming days on how to store and retrieve sensitive files or information for apps that would be deployed on a cloud platform.

    • @patel5532
      @patel5532 16 วันที่ผ่านมา

      @@IOCodes Thanks brother, I'm waiting for your video. And just one feedback ig you can shorten your videos and can copy paste the code if you've dual screen. So, it'll be short and crisp.

  • @RahulBake-h1b
    @RahulBake-h1b 26 วันที่ผ่านมา

    Please provide the impmentation of it

    • @IOCodes
      @IOCodes 26 วันที่ผ่านมา

      Check my first video on the topic using the link below: th-cam.com/video/LM_Bnhf26Ew/w-d-xo.htmlsi=J-Yin4Rho495kGVe and if you need the source code, I've provided a link to the code's github repository in the description of the video.

  • @estebansalazar234
    @estebansalazar234 27 วันที่ผ่านมา

    Good tutorial bro

    • @IOCodes
      @IOCodes 27 วันที่ผ่านมา

      Glad it was helpful

  • @TochukwuVictor-qe4xd
    @TochukwuVictor-qe4xd 2 หลายเดือนก่อน

    ❤❤❤Thanks allot..

    • @IOCodes
      @IOCodes 2 หลายเดือนก่อน

      You're welcome, glad you loved it.

  • @userozancinci
    @userozancinci 3 หลายเดือนก่อน

    thanks! it worked fine

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      I'm glad you found it helpful

  • @davidosabohien262
    @davidosabohien262 3 หลายเดือนก่อน

    Iocodes is the best o have seen

  • @eugenekoiner
    @eugenekoiner 3 หลายเดือนก่อน

    man thx a lot you saved my day! documentation of that jjwt is so difficult

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      Glad it helped!

  • @BiswajitSamalOdisha
    @BiswajitSamalOdisha 3 หลายเดือนก่อน

    Thank you for sharing

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      I'm glad it was helpful

  • @venkataramanapattem5860
    @venkataramanapattem5860 3 หลายเดือนก่อน

    Please do if possible so more videos not this content

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      Okay, I would love to know what you'll like to see.

  • @pixellight3447
    @pixellight3447 3 หลายเดือนก่อน

    Hi, i have exactly done what you did and after testing an endpoint in postman with the jwt token, i get the below error , what is wrong with this? io.jsonwebtoken.security.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted. at io.jsonwebtoken.impl.DefaultJwtParser.verifySignature(DefaultJwtParser.java:340) ~[jjwt-impl-0.12.5.jar:0.12.5]

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      From the error statement I think you didn't copy the correct jwt token so just try this time around to properly highlight the token and ensure that you're not adding or removing any character from the it. then let me know the result you got.

    • @pixellight3447
      @pixellight3447 3 หลายเดือนก่อน

      ​@@IOCodesi had copied the token correctly...it seems that this one request i am testing has some issues, because other req calls work fine with this token...so the problem lies within my own code (controller) which i need to fix ...thank you very much for your quick response 👍 keep up the good work 👌

  • @zuxcode
    @zuxcode 3 หลายเดือนก่อน

    Love your consistency bro ❤

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      Thank you

  • @IOCodes
    @IOCodes 3 หลายเดือนก่อน

    @Sliepov checkout these video using the link th-cam.com/video/KW5EwW1iPJE/w-d-xo.html

  • @Sliepov
    @Sliepov 3 หลายเดือนก่อน

    Cannot resolve method 'parserBuilder' in 'Jwts'

    • @Sliepov
      @Sliepov 3 หลายเดือนก่อน

      for jjwt-api:0.12.5

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      In that case make use of the parser function like we have below but you'll have to note that some of the function have been deprecated for this particular dependency version.

    • @IOCodes
      @IOCodes 3 หลายเดือนก่อน

      Jwts.parser() .setSigningKey(generateSigningKey()) .build() .parseClaimsJws(jwtToken) .getBody();

  • @КристијанРалевски
    @КристијанРалевски 4 หลายเดือนก่อน

    Download link ?

    • @IOCodes
      @IOCodes 4 หลายเดือนก่อน

      I'll be providing the link to the github repo soon

  • @electrolux5786
    @electrolux5786 8 หลายเดือนก่อน

    Where is MVC design pattern 🤦🏻

    • @isaiahosarobo3217
      @isaiahosarobo3217 8 หลายเดือนก่อน

      Spring data rest automatically exports repository endpoints for your model objects so you don't necessarily need to start creating controllers and mapping them to different endpoints. And in the case of the view you'll have to take into consideration that the app been developed only consists of the API endpoints that would be consumed by any client side framework such as react or angular and displayed to the users of the application.

  • @SomnathDas-fg2qc
    @SomnathDas-fg2qc 8 หลายเดือนก่อน

    Please provide GitHub link

  • @nadetdevfullstack7041
    @nadetdevfullstack7041 8 หลายเดือนก่อน

    It's a good one for beginners who want to learn the necessary basics of Spring boot. Excellent.

  • @davidasiamah2898
    @davidasiamah2898 9 หลายเดือนก่อน

    Well done. Great video. Can you make this same video with GraphQL and Postgres?

    • @IOCodes
      @IOCodes 9 หลายเดือนก่อน

      I would take it into consideration after uploading the second part of this project

  • @maryjaneokafor1898
    @maryjaneokafor1898 9 หลายเดือนก่อน

    Thanks for this video and explanation.....

    • @IOCodes
      @IOCodes 9 หลายเดือนก่อน

      Glad it was helpful!

  • @maryjaneokafor1898
    @maryjaneokafor1898 9 หลายเดือนก่อน

    Please more tutorial on spring boot

    • @IOCodes
      @IOCodes 9 หลายเดือนก่อน

      Sure just try and stick around

  • @janardankumar5255
    @janardankumar5255 9 หลายเดือนก่อน

    Provide source code sir

    • @IOCodes
      @IOCodes 9 หลายเดือนก่อน

      I'll in due time I've been a little bit busy with some stuff

  • @Doggy_Styles_Coding
    @Doggy_Styles_Coding 10 หลายเดือนก่อน

    This is what i cool a fascinating project <3

    • @IOCodes
      @IOCodes 10 หลายเดือนก่อน

      Thanks for your lovely comment 🙏

  • @Doggy_Styles_Coding
    @Doggy_Styles_Coding 11 หลายเดือนก่อน

    Why do Java programmers have to wear glasses? Because they don’t C#

    • @IOCodes
      @IOCodes 11 หลายเดือนก่อน

      That is the exact opposite cause I'm a Java dev I C# and I don't wear glasses😎😎

  • @hknemn
    @hknemn ปีที่แล้ว

    Can you more explain as algorithm that sentence: "MEX of the ith element is the minimum element greater than or equal to 0 which is not present in array till the ith index." I dont understand anything. I just want to know what's MEX not how to coding. More example more understandable for me

    • @IOCodes
      @IOCodes ปีที่แล้ว

      The MEX of an array is the minimun value that does not exist in that array from the start of the array to the present index when iterating through the array. Take an example where we have an array with values [2 7 0 4 8 1 8 2 1 4], using a for loop to iterate through the array at the index 0 and 1 of the array the mininum positive value that does not yet exist is 0. but at index 2 we have 0, so 0 is no longer the MEX from that point but the new MEX is now 1 up until the 5th index where 1 appears in the array for the first time. Now the next lowest positive value should be 2, however the number 2 was the very first value in the given array as a result of that 2 cannot be the next MEX since it already exists in the array before the current index so the next MEX should be 3 and it appears to be the MEX till the end of the array since it does not appear in the array. final result from the above example show that the MEX from the above array is 0, 1, 3. Sorry for the late reply I replied previously but don't think the reply was published probably due to network issues. A new algo video coming in the next 24-48 hrs would love you to check it out.

    • @kushikaagarwal3555
      @kushikaagarwal3555 ปีที่แล้ว

      ​@@IOCodesthanks for explaining

    • @IOCodes
      @IOCodes ปีที่แล้ว

      @@kushikaagarwal3555 You're welcome

    • @hknemn
      @hknemn 11 หลายเดือนก่อน

      thank you so so much <3 @@IOCodes

  • @NosadebaIhaza-pi8lz
    @NosadebaIhaza-pi8lz ปีที่แล้ว

    Dey hott🔥

  • @bendaboss2895
    @bendaboss2895 ปีที่แล้ว

    Nice

    • @IOCodes
      @IOCodes ปีที่แล้ว

      Thanks

  • @ayorosiji8279
    @ayorosiji8279 ปีที่แล้ว

    Good one

  • @WilliamsMarvel-x6l
    @WilliamsMarvel-x6l ปีที่แล้ว

    💯

  • @odomenepromise3672
    @odomenepromise3672 ปีที่แล้ว

    Nice one

  • @ChijiokeEzeh-h9x
    @ChijiokeEzeh-h9x ปีที่แล้ว

    Nice

    • @IOCodes
      @IOCodes ปีที่แล้ว

      Thanks

  • @CynthiaJanet-m3w
    @CynthiaJanet-m3w ปีที่แล้ว

    Keep going brother 💯

    • @IOCodes
      @IOCodes ปีที่แล้ว

      I will

  • @ibhafidonose6832
    @ibhafidonose6832 ปีที่แล้ว

    Nice video ❤❤❤

  • @divineigbinoba4506
    @divineigbinoba4506 ปีที่แล้ว

    Very grateful for this. Thanks 🙏🏽