Mern Stack Development Training by Experts

;

Our Training Process

Mern Stack Development - Syllabus, Fees & Duration

Module 1: Introduction to React

  • What is React?
  • Why React?
  • React version history
  • React 16 vs React 15
  • Just React – Hello World
  • Using create-react-app
  • Anatomy of react project
  • Running the app
  • Debugging first react app

Module 2: Templating using JSX

  • Working with React. create Element
  • Expressions
  • Using logical operators
  • Specifying attributes
  • Specifying children
  • Fragments

Module 3: About Components

  • Significance of component architecture
  • Types of components
  • Functional
  • Class based
  • Pure
  • Component Composition

Module 4: Working with state and props

  • What is state and it significance
  • Read state and set state
  • Passing data to component using props
  • Validating props using prop Types
  • Supplying default values to props using default Props

Module 5: Rendering lists

  • Using react key prop
  • Using map function to iterate on arrays to generate elements

Module 6: Event handling in React

  • Understanding React event system
  • Understanding Synthetic event
  • Passing arguments to event handlers

Module 7: Understanding component lifecycle and  handling errors

  • Understand the lifecycle methods
  • Handle errors using error boundaries

Module 8: Working with forms

  • Controlled components
  • Uncontrolled components
  • Understand the significance to default Value prop
  • Using react ref prop to get access to DOM element

Module 9: Context

  • What is context
  • When to use context
  • Create Context
  • Context Provider
  • Context Consumer
  • Reading context in class

Module 10: Code-Splitting

  • What is code splitting
  • Why do you need code splitting
  • React lazy
  • Suspense
  • Route-based code splitting

Module 11: hooks

  • What are hooks
  • Why do you need hooks
  • Different types of hooks
  • Using state and effect hooks
  • Rules of hooks

Module 12: Routing with react router

  • Setting up react router
  • Understand routing in single page applications
  • Working with Browser Router and Hash Router components
  • Configuring route with Route component
  • Using Switch component to define routing rules
  • Making routes dynamic using route params
  • Working with nested routes
  • Navigating to pages using Link and NavLink component
  • Redirect routes using Redirect Component
  • Using Prompt component to get consent of user for navigation
  • Path less Route to handle failed matches

Module 14: Immutable.js

  • What is Immutable.js?
  • Immutable collections
  • Lists
  • Maps
  • Sets

Module 17: Unit Testing

  • Understand the significance of unit testing
  • Understand unit testing jargon and tools
  • Unit testing react components with Jest
  • Unit testing react components with enzyme

Module 18: Web pack Primer

  • What is web pack
  • Why web pack
  • Install and setup web pack
  • Working with web pack configuration file
  • Working with loaders
  • Working with plugins
  • Setting up Hot Module Replacement

Module 19: Isomorphic React

  • What is server-side rendering (SSR)?
  • Why SSR
  • Working with render To String and render To Static Markup methods

Syllabus -> React JS
This syllabus is not final and can be customized as per needs/updates
IT Courses / Internship

Module 1: Introduction to Node.js

  • What is Node.js
  • Features of Node.js
  • Concept
  • Where to fit and not fit
  • Event-Driven programming style
  • What is Asynchronous

Module 2: Installation / Setup

  • Local environment setup
  • Node.js runtime
  • Download source code
  • Installation on OS
  • Verify

Module 3: Node Package Manager

  • Install module by NPM
  • Global vs Local setup
  • Update Module
  • CRUD Module

Module 4: Express Framework

  • What is Express
  • Setup Express
  • Request And Response
  • Handling Routes
  • Route Middleware
  • Objects
  • Cookies Management
  • File upload
  • HTTP methods

Module 5: Buffers and Streams

  • What is buffers and Streams
  • Benefit of Streams over buffers
  • Create / Write / Read operation on Buffers
  • Process on Buffers
  • Read / Write data by Streams
  • Pipeline
  • Chaining Stream

Module 7: REST API

  • RESTful Architecture
  • HTTP URI and Methods
  • RESTful web services
  • Expose solution as API
  • Best practice for REST API solution

Module 8: Callback

  • What is Callback
  • Benefit of Callback
  • Asynchronous communications
  • Block and Non-Blocking
  • Standard Callback pattern
  • Async Flow control Library
  • Executing in parallel

Module 9: Events

  • What is Events
  • Events types
  • Event Emitter API
  • Multiple event listeners
  • Event emitter pattern
  • Class methods
  • Event Loop
  • Blocking Event Loop
  • Escaping Event Loop

Module 10: Connecting with Database

  • Introduction of MySQL
  • Connect with MySQL
  • Introduction of MongoDB
  • Features of MongoDB
  • Connect with MongoDB
  • Defining a schema
  • Defining a Model

Module 11: External Processes and Services

  • What is processes
  • Spawning Child process
  • Create and kill processes
  • Building with HTTP Severs
  • HTTP requests
  • Secure HTTP Server

Module 12: External Processes and Services

  • Using Test Runner
  • Using Assertion Testing Module
  • Built-in Debugger
  • Console log
  • Node Inspector

Syllabus -> Node JS
This syllabus is not final and can be customized as per needs/updates
IT Courses / Internship

Module 1 : INTRODUCTION EXPRESS JS

  • The model-view-controller pattern
  • Defining Jade templates
  • Configuring Express
  • Postman configuration
  • Using REST
  • JSON Data
  • Reading POST data
  • CRUD operations
  • Adding middleware

Module 2 : EXPRESS JS WITH MONGODB AND SQLITE

  • Connecting to RDBMS and Mongodb databases
  • Performing CRUD operations
  • Module 3 : SOCKET.IO, THE FRONT-END, AND A CHAT APP

    • Getting Started
    • Adding Socket.io To Your App
    • Exploring The Front-end
    • Sending Live Data Back & Forth
    • Creating The Front-end UI
    • Showing Messages In App
    • Working With Time
    • Timestamps
    • Show Message Time In Chat App
    • Chat application Project

    Module 4 : INTRODUCTION TO TASK MANAGERS WITH UNIT TESTING

    • Working with gulp
    • Working with grunt
    • Working with unit and E2E testing

    Module 5: LEARNING EXPRESS ROUTES

    • starting a server
    • Writing your first route
    • Sending a response
    • Macthing route paths
    • Getting a single expression
    • Setting status codes
    • Macthing longer paths
    • Other HTTP methods

    Syllabus -> Express JS
    This syllabus is not final and can be customized as per needs/updates
    IT Courses / Internship

    Module 1: Introduction to NoSQL

    • What Is NoSQL?
    • Why NoSQL databases are required
    • Types of NoSQL Database
    • NoSQL vs SQL Comparison
    • ACID & BASE Property
    • CAP Theorem
    • Benefits of NoSQL databases
    • Installation
    • Start and Stop the MongoDB process

    Module 2: MongoDB Architecture

    • Document, Collection, Databases
    • JSON and BSON
    • Storage Engines
    • Read Path
    • Journaling
    • Write Path
    • Working Set
    • Capped Collection
    • Oplog collection
    • TTL Index
    • GridFS

    Module 3: CRUD Operations

    • MongoDB Data Types
    • Inserting, Update, Deleting the documents
    • Querying the documents
    • Bulk insert operation
    • Updating multiple document
    • Limiting documents
    • Filtering documents

    Module 4: Schema Design and Data modeling

    • Dynamic Schema
    • What is Data modeling?
    • RDBMS and MongoDB Data modeling difference
    • Embedding Document
    • Reference Document

    Module 5: Indexes

    • Index concepts in MongoDB
    • Types of indexes
    • Indexes and its use cases
    • Creating Indexes
    • Managing Indexes
    • Index strategies

    Module 6: Database Administration in MongoDB

    • Database status
    • Troubleshooting issues
    • Current Operations
    • Rotating log files
    • Users and Roles
    • Copy and Clone database
    • DB and Collection Stats
    • Explain plan
    • Profiling
    • Changing configuration files
    • Upgrading the database

    Module 7: MongoDB: Backup and Security

    • Concept of backups
    • mongoexport/mongoimport
    • mongodump/mongorestore
    • Oplog backups
    • LVM Backups
    • Backups using MMS/Ops Manager
    • Purpose of security
    • Authentication and authorization
    • Role based access control

    Module 8: Replication in MongoDB

    • Concept of replication
    • ReplicaSet member roles
    • Voting and Electing primary
    • Role of Oplog in replication
    • Read and Write Concern
    • Arbiter,Hidden and Delayed replica node
    • Priority settings
    • Replicaset nodes health check
    • Concept of resyncing the nodes
    • Rollbacks during failover
    • Keyfile authentication

    Module 9: MongoDB Scalability

    • Concept of Scalability
    • Sharding concept
    • Shardkey and Chunks
    • Choosing shardkey
    • Sharding components
    • Types of Sharding
    • Balanced data distribution
    • Sharded and Non-sharded collection
    • Sharded Replicaset
    • Tag aware sharding

    Module 10: MongoDB Monitoring and Other Tools

    • MMS Manager
    • Ops Manager
    • Mongo utility commands
    • Mongo developer tools
    • MongoDB Atlas
    • MongoDB client drivers

    Syllabus -> MongoDB
    This syllabus is not final and can be customized as per needs/updates
    IT Courses / Internship
     
    10000+
    20+
    50+
    25+

    Mern Stack Development Jobs in Portland

    Enjoy the demand

    Find jobs related to Mern Stack Development in search engines (Google, Bing, Yahoo) and recruitment websites (monsterindia, placementindia, naukri, jobsNEAR.in, indeed.co.in, shine.com etc.) based in Portland, chennai and europe countries. You can find many jobs for freshers related to the job positions in Portland.

    • mern stack developer
    • mern stack
    • mern stack programmer
    • reach js developer
    • node js developer
    • express js developer
    • mern stack expert
    • mern stack fresher
    • full stack developer
    • mongo db

    Mern Stack Development Internship/Course Details

    Mern Stack Development internship jobs in Portland
    Mern Stack Development key-value pairs. built-in scaling is a must-have feature of many organizations, as you adapt to an ever-changing market. js, this cost is significantly low compared to others because Node. Learn from expert trainers with the best skills through the best sources. The best MongoDB online Training Institutes in Dubai . e. Its NoSQL database working with data very efficiently. How is it achievable that a simple library has gotten so popular? You may have caught on to ReactJS before, seeing a lot of people talking about it, a lot of people using it, and a bunch of products made by this technology. js for developing web applications. React web framework is currently being used by reputed companies including Netflix, NASA, BBC, Facebook, Paypal, etc.

    Meet a Few of our Industry Experts 🚀 Your Pathway to IT Career

    vijay

    Mobile: +91 9446600368
    Location: Karnataka, Online (Portland)
    Qualification: be

    Experience: siem splunk firewall network device sql information security log analysis  more..

    Sountheria

    Mobile: +91 98474 90866
    Location: Thoothukudi, Online (Portland)
    Qualification: B.E civil

    Experience: AutoCAD MS word MS Excel Software testing MS PowerPoint | Resume for   more..

    Ramya

    Mobile: +91 89210 61945
    Location: Telangana, Online (Portland)
    Qualification: Btech

    Experience: 9+ exp ad dotnet developer |   more..

    Dhruv

    Mobile: +91 91884 77559
    Location: Delhi, Online (Portland)
    Qualification: BCA

    Experience: Html css js mern stack developer internet linux python  more..

    Umarani

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Portland)
    Qualification: MCA

    Experience: Html Css Bootstrap Software Manual tester Willing to learn Automation testing  more..

    srilakshmi

    Mobile: +91 91884 77559
    Location: Gudivada, Online (Portland)
    Qualification: B. Tech

    Experience: Front end developer (html css bootstrap and javascript) Technical support engineer (international voice)   more..

    Pratik

    Mobile: +91 91884 77559
    Location: Belagum, Karnataka, Online (Portland)
    Qualification: Bachelor of commerce

    Experience: SQL Manual testing Informatica power center ETL JIRA HPALM TOAD Data warehouse testing Oracle Database Microsoft Office Team Player Experienced  more..

    Arun

    Mobile: +91 91884 77559
    Location: Hyderabad , Online (Portland)
    Qualification: B.tech

    Experience: Manual testing and automation tool functional testing integration testing smoke testing   more..

    Prerana

    Mobile: +91 9446600368
    Location: Pune, Online (Portland)
    Qualification: BE

    Experience: I am fresher and have no work experience in any company but my strength is that I can adapt quickly  more..

    Vinisha

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Portland)
    Qualification: BCA

    Experience: I have almost two years experience in flutter developer role ASP net web application developer and powerapps canvas application developer  more..

    Akshay

    Mobile: +91 9895490866
    Location: patna, Online (Portland)
    Qualification: B.Tech ( Information Technology)

    Experience: Hii sir I am Akshay Kumar a highly motivated and enthusiastic individual with strong leadership skills and a Bachelor's degree  more..

    Shivam

    Mobile: +91 91884 77559
    Location: Bihar, Online (Portland)
    Qualification: BCA

    Experience: C c++ Java python html CSS Linux and project management   more..

    HARSHITHA

    Mobile: +91 89210 61945
    Location: Karnataka, Online (Portland)
    Qualification: Bachelor of Engineering

    Experience: python tkinter C Language Data Structures and Algorithms SQL MySQL HTML CSS  more..

    Prince

    Mobile: +91 9446600368
    Location: Madhya Pradesh, Online (Portland)
    Qualification: Graduated from B.com (CA) , Web development course

    Experience: MY name is Prince Khedkar❤️ I am a skilled and motivated Web Developer & Designer with a passion for creating  more..

    Arshad

    Mobile: +91 91884 77559
    Location: Kerala, Online (Portland)
    Qualification: B.TECH

    Experience: flutter dart firebase bloc clean architecture  more..

    Shivani

    Mobile: +91 89210 61945
    Location: Uttar Pradesh, Online (Portland)
    Qualification: Bachelor of designing in textile

    Experience: As a textile designer i think design as a medium for me to communicate and share my experience with audience  more..

    Sonu

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Portland)
    Qualification: MBA

    Experience: As a quality analyst to read the requirment and test the functionality find bugs and report it is my responsibility  more..

    Hafeed

    Mobile: +91 98474 90866
    Location: Calicut Kerala, Online (Portland)
    Qualification: Btech in electronics and communication engineering

    Experience: I have 1 year and 11 months of experience as a flutter developer I already worked in more than 10  more..

    lakhan

    Mobile: +91 91884 77559
    Location: Madhya Pradesh, Online (Portland)
    Qualification: Diploma in cloud computing

    Experience: I'm a dedicated and hardworking person with hardware and networking skills I've completed my diploma in cloud computing course from  more..

    daniel

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Portland)
    Qualification: Bachellor degree

    Experience: Four years of hand on experience designing field Experience in adobe photoshop illustrator indesign XD figma Logo design social media  more..

    Achal

    Mobile: +91 9446600368
    Location: Maharashtra, Online (Portland)
    Qualification: MCA

    Experience: Node js - 1year react js - 1 year JavaScript - 1 Year HTML CSS - 2 years nest js  more..

    Linkan

    Mobile: +91 8301010866
    Location: Amravati, Online (Portland)
    Qualification: M.E

    Experience: Manual testing Automation Testing API Testing SQL  more..

    Vishal

    Mobile: +91 98474 90866
    Location: Kerala, Online (Portland)
    Qualification: Degree

    Experience: AWS ec2 AWS vpc AWS S3 AWS RDS AWS cloudwatch beanstalk ansible Jenkins docker kubernetes terraform python nagios apache tomcat  more..

    Sakshi

    Mobile: +91 91884 77559
    Location: Thane , Online (Portland)
    Qualification: Be mechanical engineer

    Experience: I am very good graphic designer I know how to make logo design banners portfolios advertisements invitations and etc etc  more..

    Soubarniya

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Portland)
    Qualification: BSc IT

    Experience: One of my most notable projects involved designing and implementing an automated CI CD pipeline using Jenkins Docker and Kubernetes  more..

    Vishnupriya

    Mobile: +91 98474 90866
    Location: Kerala, Online (Portland)
    Qualification: MCA

    Experience: Python html css javascript jquery ajax xml django git github gui tkinter php laravel  more..

    Arthiya

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Portland)
    Qualification: Bachelor of Engineering

    Experience: Report writing and presenting Problem solving Communication skills Team work and time management Leadership I have over 1 4 years  more..

    Pooja

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Portland)
    Qualification: MCS

    Experience: I have only 1year experience in WordPress but I Loved to design and develop website  more..

    Maria

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Portland)
    Qualification: PHD

    Experience: Experienced educator and trainer with expertise in curriculum development training delivery public speaking research and academic leadership Proficient in designing  more..

    Vipitha

    Mobile: +91 98474 90866
    Location: Palakkad , Online (Portland)
    Qualification: Iti

    Experience: I year experience in computer operator and programming assistant   more..

    Aaditya

    Mobile: +91 9446600368
    Location: Madhya Pradesh, Online (Portland)
    Qualification: Higher Education Diploma

    Experience: Graphic Design basic understanding of design principles skilled in adobe crrstive suite  more..

    Tambolkar

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Portland)
    Qualification: MCA

    Experience: I have 3 years experience in manual and automation testing | Resume for   more..

    Nitish

    Mobile: +91 9446600368
    Location: Uttar Pradesh, Online (Portland)
    Qualification: Mca

    Experience: I have 1 year experience in Android development I develop application in kotlin as well as java  more..

    Rahul

    Mobile: +91 8301010866
    Location: Karnataka, Online (Portland)
    Qualification: BE in information science and engineering

    Experience: Python networking MySQL data science data structures |   more..

    Arun

    Mobile: +91 9446600368
    Location: Uttarakhand, Online (Portland)
    Qualification: Btech

    Experience: I have exp in data science machine learning data analytics tools web scrapping Till now i have tought more than  more..

    Sooraj

    Mobile: +91 9446600368
    Location: Trivandrum, Online (Portland)
    Qualification: BTech

    Experience: 2 5 years of experience in testing with Selenium JavaApplication for Software Testing  more..

    Kasaboina

    Mobile: +91 98474 90866
    Location: Telangana, Online (Portland)
    Qualification: BE Automobile Engineering

    Experience: Manual Testing Automation Testing Selenium Webdriver Automation Frameworks familiarity with SDLC and STLC concepts TestNG Jenkins Jira Tool API Testing  more..

    abutalha

    Mobile: +91 89210 61945
    Location: Madhya Pradesh, Online (Portland)
    Qualification: 2 year pursuing btech

    Experience: i am full stack web developer and was co-trainer also in orange antelopes now i am doing internship at wenodo  more..

    Mohit

    Mobile: +91 89210 61945
    Location: West Bengal, Online (Portland)
    Qualification: M.C.A

    Experience: Skill: flutter firebase api and web socket integration Experience : 1 year in flutter development |   more..

    Sneha.

    Mobile: +91 98474 90866
    Location: Kerala, Online (Portland)
    Qualification: Deploma in advanced computer application andBachelor degree in economics

    Experience: Skils in microsoft word excel web design and development graphics design Soft skills-Communication skill decision making skills teaching skills  more..

    Surendra

    Mobile: +91 8301010866
    Location: Rajasthan, Online (Portland)
    Qualification: BCA

    Experience: Digital Marketing E-commerce web development woocommerce Wordpress web development Shopify Web Development Amazon Com Etsy Com Ecommerce Portal | (Work  more..

    Vivek

    Mobile: +91 98474 90866
    Location: Ahmedabad, Online (Portland)
    Qualification: MscIT

    Experience: I have 2+ year of experience of full time flutter developer Thank you   more..

    Akshay

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Portland)
    Qualification: Diploma

    Experience: Civil all design details drawing SketchUp  more..

    Rekshika

    Mobile: +91 9895490866
    Location: Tamil Nadu, Online (Portland)
    Qualification: MCA

    Experience: Accomplished QA Engineer with over 1 years of experience specializing in both manual and automated testing Demonstrated expertise in identifying  more..

    Margam

    Mobile: +91 98474 90866
    Location: Hyderabad, hanamakonda, Online (Portland)
    Qualification: 12 pass

    Experience: Java python c and c++ programming project management etc  more..

    Prathyusha

    Mobile: +91 91884 77559
    Location: Telangana, Online (Portland)
    Qualification: Bsc

    Experience: Hi Currently I'm working as a software Tester I have knowledge on Manual testing automation Testing selenium postman Java and  more..

    Deepak

    Mobile: +91 91884 77559
    Location: Chengamanad, Online (Portland)
    Qualification: Msc bioinformatics

    Experience: Data entry ms office photoshop html perl python c c++ video editing   more..

    Aishath

    Mobile: +91 8301010866
    Location: Kerala, Online (Portland)
    Qualification: B.Sc. Computer Science

    Experience: Manual testing Automated Testing Test case creation Test planning Test execution Defect tracking and reporting Documentation Agile Methodologies SDLC STLC  more..

    Akshay

    Mobile: +91 8301010866
    Location: Rajasthan, Online (Portland)
    Qualification: Bsc 3rd year Running

    Experience: More than 6 month experience interest in graphic design editing etc   more..

    Rajesh

    Mobile: +91 8301010866
    Location: Andhra Pradesh, Online (Portland)
    Qualification: B.tech

    Experience: Having a good knowledge on cyber kill chain process Having a good networking concepts& networking protocols Having a good knowledge  more..

    Aditi

    Mobile: +91 91884 77559
    Location: Uttar Pradesh, Online (Portland)
    Qualification: M.phil mathematics/ Pursuing Ph.D

    Experience: My teaching experience spans several key areas contributing to student growth and understanding I design and implement engaging lesson plans  more..

    Ashly

    Mobile: +91 91884 77559
    Location: Kerala, Online (Portland)
    Qualification: Bsc computer science

    Experience: I have a good communication skill and completed software testing course looking forward for opportunity   more..

    Arpit

    Mobile: +91 9895490866
    Location: Gujarat, Online (Portland)
    Qualification: Flutter developer

    Experience: I am a senior flutter developer and i have a having 1 5 year experience |   more..

    Suresh

    Mobile: +91 91884 77559
    Location: Andhra Pradesh, Online (Portland)
    Qualification: BSE(Computers)

    Experience: I have 2 years experience in flutter and dart language and strong knowledge and firebase git postman restapis this both  more..

    ISHA

    Mobile: +91 91884 77559
    Location: Uttar Pradesh, Online (Portland)
    Qualification: B.Tech (CS)

    Experience: Dear Hiring Manager I am writing to express my interest in the Intership at your company As a recent graduate  more..

    Swetha

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Portland)
    Qualification: BCA

    Experience: I have I possess strong skills and experience in natural language processing machine learning and artificial intelligence With proficiency in  more..

    Aishwarya

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Portland)
    Qualification: Msc. Computer science

    Experience: Manual testing java python selenium html software testing   more..

    Khushi

    Mobile: +91 9446600368
    Location: Kekri (Ajmer), Online (Portland)
    Qualification: BCA, MBA(Information Technology /Marketing)

    Experience: 1 Knowing fundamental of Digital marketing concepts and practices 2 Knowing SEO and SMM 3 Know how to use  more..

    AMALU

    Mobile: +91 9446600368
    Location: kollam, Online (Portland)
    Qualification: btech

    Experience: python django html css bootstrapApplication for Python Django  more..

    Fathima

    Mobile: +91 9895490866
    Location: Ernakulam, Online (Portland)
    Qualification: PGDCA

    Experience: Strong understanding of Python programming language and its libraries such as NumPy Pandas and Matplotlib Experience in developing web  more..

    Success Stories

    The enviable salary packages and track record of our previous students are the proof of our excellence. Please go through our students' reviews about our training methods and faculty and compare it to the recorded video classes that most of the other institutes offer. See for yourself how TechnoMaster is truly unique.

    Photos of Training / Internships

    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland
    Internship/projects in portland

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer