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 Kalyan

    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 Kalyan, chennai and europe countries. You can find many jobs for freshers related to the job positions in Kalyan.

    • 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 Kalyan
    Mern Stack Development Thus the basic syntax and specifications are of JavaScript only. The two situations that it addresses specifically are indexes that don’t work into memory and write-heavy data. The training costs for developers are usually high, but when it comes to Node. If you're familiar with JavaScript then you would realize Node. Learn from expert trainers with the best skills through the best sources. Actually, React has been formed to arrange the development, maintenance and updating of the UI with the goal of assisting the development groups operating on projects of average and extremely difficult. Be it web development or mobile application development, developers intimate with JavaScript can effortlessly learn ReactJS. React(also referred to as React. Moreover, knowledge of HTML is preferred. js training at Nestsoft in Dubai may be a great stepping stone for your IT career.

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

    Ankush

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Kalyan)
    Qualification: Bachelor's

    Experience: • Python • Django • Django Rest Framework • Javascript • SQL • MySQL • HTML5 CSS3 • React •  more..

    Nihar

    Mobile: +91 98474 90866
    Location: Gujarat, Online (Kalyan)
    Qualification: Pursuing BTech

    Experience: During my 5th-semester internship I was the only intern entrusted with client-site visits owing to my strong soft skills and  more..

    Rohit

    Mobile: +91 9446600368
    Location: Lucknow, Online (Kalyan)
    Qualification: Btech

    Experience: Flutter and dart programming with IoS and Android  more..

    Sreemathi

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Kalyan)
    Qualification: B. E. CSE

    Experience: having 2 5 years experience in software testing   more..

    Ashutosh

    Mobile: +91 9895490866
    Location: Chhattisgarh, Online (Kalyan)
    Qualification: Bachelor of engineering

    Experience: Wordpress HTML CSS PHP JS MYSQL SEO etc 5yrs of experience in wordpress 5yrs of experience in HTML and CSS  more..

    Harsh

    Mobile: +91 91884 77559
    Location: Roorkee, Online (Kalyan)
    Qualification: B.E (Computer science and Engineering)

    Experience: I have worked on Content creation of Unity game development documents I Also have a experience to work as a  more..

    Vicky

    Mobile: +91 9895490866
    Location: Meghalaya, Online (Kalyan)
    Qualification: 12 pass ( Arts)

    Experience: I have completed my graphic design diploma course within a period of 3 months and I have acquired a skills  more..

    Isra

    Mobile: +91 91884 77559
    Location: Srinagar, Online (Kalyan)
    Qualification: B.E Information Technology

    Experience: Skills mentioned in resume and proper experience in flutter nearly about 2 years   more..

    Mayuri

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Kalyan)
    Qualification: Graphic designer

    Experience: Hello I am Mayuri a graphic designer and an artist I worked as a graphic designer in dyanganga English medium  more..

    Aabid

    Mobile: +91 8301010866
    Location: Andhra Pradesh, Online (Kalyan)
    Qualification: Bachelors of Technology - Computer Science

    Experience: A Software Developer with experience of over 2 years with expertise in Cloud technology preferably AWS and Backend development |  more..

    Gautam

    Mobile: +91 89210 61945
    Location: Gujarat, Online (Kalyan)
    Qualification: Mcs

    Experience: Greetings of the day ma'am I am a Python Developer with 2 years of experience and also experience in python  more..

    Apurva

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

    Experience: My skills are manual and automation testing I have done projects on automation testing I have also knowledge of jframe  more..

    Sreejith

    Mobile: +91 89210 61945
    Location: Kerala, Online (Kalyan)
    Qualification: Btech

    Experience: Skilled in crafting and executing test cases detecting and documenting defects and upholding software quality through manual testing Familiar with  more..

    Shruti

    Mobile: +91 91884 77559
    Location: Karnataka, Online (Kalyan)
    Qualification: MBA

    Experience: Python html css bootstrap responsive web design  more..

    Swanooja

    Mobile: +91 9895490866
    Location: Kerala, Online (Kalyan)
    Qualification: M.Sc. Digital Forensics and Information Security(pursuing)

    Experience: Technical skills: Cybersecurity operating system knowledge python(basics) Soft skills: Communication team management dedication  more..

    Uma

    Mobile: +91 91884 77559
    Location: Madhya Pradesh, Online (Kalyan)
    Qualification: BTech

    Experience: I have 7 month experience in web developer in front end   more..

    DEVENDRA

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Kalyan)
    Qualification: B. E computer

    Experience: Good experience in flutter and react native and also good knowledge of deployed applications on app store and play store  more..

    Farzan

    Mobile: +91 9895490866
    Location: Uttar Pradesh, Online (Kalyan)
    Qualification: Master of computer application

    Experience: Theme customisation & design new portfolio and e-commerce website in 1 3 years |   more..

    Ravikumar

    Mobile: +91 9895490866
    Location: Salem, Online (Kalyan)
    Qualification: B.E

    Experience: Hi I am Ravikumar Thangaraj having 16 Years of solid experience in Software testing practices Previously I was associated with  more..

    Gulla

    Mobile: +91 98474 90866
    Location: Andhra Pradesh, Online (Kalyan)
    Qualification: Btech

    Experience: I have six months experience in APCFSS company as an java developer intern My skills are python Java HTML and  more..

    Insiya

    Mobile: +91 91884 77559
    Location: Mumbai, Online (Kalyan)
    Qualification: Bachelor in computer science

    Experience: I am fresher In my due course I have completed various courses like java ethical hacking cloud computing As I  more..

    Khushi

    Mobile: +91 8301010866
    Location: Rajasthan, Online (Kalyan)
    Qualification: Bachelor of Technology

    Experience: I have 1 5 years of experience in linguist or content quality analyst I am skilled in manual testing test  more..

    Hari

    Mobile: +91 91884 77559
    Location: Chennai, Online (Kalyan)
    Qualification: BE-CSE

    Experience: I Done my software testing course in Qspider velachery and I have good consistency knowledge in Manual testing and SQL  more..

    veda

    Mobile: +91 91884 77559
    Location: Karnataka, Online (Kalyan)
    Qualification: BE

    Experience: Manual testing Having 1 year experience in Manual testing |   more..

    Sumit

    Mobile: +91 8301010866
    Location: Delhi, Online (Kalyan)
    Qualification: Bcom

    Experience: Regression testing Functional testing Non functional testing | Resume for   more..

    Abushema

    Mobile: +91 9895490866
    Location: Uttar Pradesh, Online (Kalyan)
    Qualification: 12th

    Experience: Expierenced candidate with 2+ years of long knowledge in Advertising UI Packages Design Social media post formats and Special of  more..

    Chauhan

    Mobile: +91 9895490866
    Location: Gujarat, Online (Kalyan)
    Qualification: Graduation

    Experience: C c++ java python cybersecurity fundamentals networking operating systems compliance and governance phishing analysis malware analysis encryption and cryptography cloud  more..

    Jaseera

    Mobile: +91 89210 61945
    Location: Kerala, Online (Kalyan)
    Qualification: MCA

    Experience: Over the past 1+ years I have gained extensive experience in creating maintaining and executing test cases for various software  more..

    Nimitha

    Mobile: +91 91884 77559
    Location: Kannur, Online (Kalyan)
    Qualification: B tech

    Experience: Software testing  more..

    Jay

    Mobile: +91 9446600368
    Location: Surat, Online (Kalyan)
    Qualification: BCA

    Experience: I have 1 9+ years of experience in python| Django SKILLS: Enterprise Technologies: Python Web Technologies Frameworks: Django Django Rest  more..

    Adhithyan

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Kalyan)
    Qualification: Bachelor of computer applications

    Experience: Iam a fresher candidate seeking for an job for Web developer I completed my additional course Python Full Stack Web  more..

    Barath

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Kalyan)
    Qualification: B.Tech,IT

    Experience: Manual testing Java Automation testing using selenium-completed certification courses  more..

    Aswathi

    Mobile: +91 91884 77559
    Location: Kerala, Online (Kalyan)
    Qualification: B.Tech

    Experience: Proficiency in Software Development Life Cycle and Software Testing Life Cycle Good knowledge in testing level testing type and test  more..

    FEBIN

    Mobile: +91 91884 77559
    Location: Kerala, Online (Kalyan)
    Qualification: btech

    Experience: php javascript html jquery  more..

    Pooja

    Mobile: +91 8301010866
    Location: Uttar Pradesh, Online (Kalyan)
    Qualification: M.tech

    Experience: Can teach using pentab worked on physics projects robotics c and Java programming languages and matlab  more..

    Aiswarya

    Mobile: +91 91884 77559
    Location: Kerala, Online (Kalyan)
    Qualification: Bachelor degree in Mathematics

    Experience: I have hands on experience in basic python machine learning I have done projects on global missing migrants using machine  more..

    Anjali

    Mobile: +91 98474 90866
    Location: Gujarat, Online (Kalyan)
    Qualification: Msc cyber security

    Experience: Vulnerability assessment penetration testing  more..

    Rina

    Mobile: +91 9446600368
    Location: Virar, Online (Kalyan)
    Qualification: Bsc computer science

    Experience: 1 year experience in WordPress development and SEO | Resume for   more..

    Ramana

    Mobile: +91 91884 77559
    Location: Andhra Pradesh, Online (Kalyan)
    Qualification: B.tech

    Experience: Respected sir Madam I am Ramana v I am electrical and electronics engineering I have total experience 7 year but  more..

    Abhishek

    Mobile: +91 89210 61945
    Location: Goa, Online (Kalyan)
    Qualification: Bca

    Experience: Html css basic knowledge of Javascript php Java python video editor like Filmora  more..

    Hardi

    Mobile: +91 98474 90866
    Location: Gujarat, Online (Kalyan)
    Qualification: BE computer engineer

    Experience: Adobe creative Suite ( Photoshop Illustrator Xd) Branding Graphic design & Layout Color theory and management Team work Creative thinking  more..

    Bharath

    Mobile: +91 89210 61945
    Location: Chennai, Online (Kalyan)
    Qualification: BE. Mechanical engineering

    Experience: Aws python sql  more..

    Rakesh

    Mobile: +91 91884 77559
    Location: Kerala, Online (Kalyan)
    Qualification: Btech

    Experience: Python full stacks developer Experienced in django project Developed web using Django   more..

    N

    Mobile: +91 9895490866
    Location: Bangalore, Online (Kalyan)
    Qualification: BE

    Experience: Good foundation in programming languagesApplication for System Administration Server Admin  more..

    Vishwa

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Kalyan)
    Qualification: Master of Computer Applications

    Experience: Manual testing Java Html Css |   more..

    Arya

    Mobile: +91 91884 77559
    Location: Kochi, Online (Kalyan)
    Qualification: BCA

    Experience: Python Django developer with 1 year and 7 months of experience Application for Python Django  more..

    Raj

    Mobile: +91 91884 77559
    Location: Navi Mumbai, Online (Kalyan)
    Qualification: B tech

    Experience: I possess a strong proficiency in Python C++ MySQL and Node js I have gained substantial experience in Python web  more..

    SWAYAMPU

    Mobile: +91 9446600368
    Location: Prakasam District, Online (Kalyan)
    Qualification: Btech

    Experience: Manual testing and automation testing (selenium java) | Resume for   more..

    Devina

    Mobile: +91 91884 77559
    Location: Pune karve Nagar , Online (Kalyan)
    Qualification: Btech

    Experience: Skills - Figma UI design banner making and poster making   more..

    HARITHA

    Mobile: +91 9446600368
    Location: Cherthala, Online (Kalyan)
    Qualification: MCA

    Experience: I have Completed my 3 months internship in Full stack python from One team Solutions Kakkanad I have also  more..

    Anuradha

    Mobile: +91 89210 61945
    Location: Andhra Pradesh, Online (Kalyan)
    Qualification: Mca

    Experience: I have 4 years of experience in both manual testing and automation testing selenium with java |   more..

    Ankur

    Mobile: +91 91884 77559
    Location: Uttar Pradesh, Online (Kalyan)
    Qualification: B. Tech (4th year)

    Experience: Skill-flutter (ui api state management) |   more..

    Priyanka

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Kalyan)
    Qualification: Btech

    Experience: I have 1 3 years of experience as a NET developer with a strong skill set in C# NET MVC  more..

    Barsopiya

    Mobile: +91 98474 90866
    Location: Gujarat, Online (Kalyan)
    Qualification: Msc. It&ca

    Experience: I have 2 year's of experience in Android native and also have 1 5 year's experience in flutter  more..

    Vibekananda

    Mobile: +91 91884 77559
    Location: Jatani, Online (Kalyan)
    Qualification: Btech CSE (currently studying)

    Experience: Skills- Canva graphic design using softwares such as Photoshop adobe creative express etc Experience- working as a freelancing graphic designer  more..

    sagar

    Mobile: +91 98474 90866
    Location: gujarat, Online (Kalyan)
    Qualification: civil engineer

    Experience: hi my yself sagar im currently looking for batter new apportunity and want to learn new skills i have a  more..

    DRISHYA

    Mobile: +91 9895490866
    Location: Kerala, Online (Kalyan)
    Qualification: MCA

    Experience: Having experience in doing programming skills as well as teaching experience The teaching method of triggering the basic will in  more..

    shanaya

    Mobile: +91 91884 77559
    Location: Bihar, Online (Kalyan)
    Qualification: MBA

    Experience: Management Business development Recruitment Advance Excel mgt | (Work from Home)  more..

    seema

    Mobile: +91 9446600368
    Location: Maharashtra, Online (Kalyan)
    Qualification: BE

    Experience: Angular developer with over 2 years and 8 months of practical expertise excelling in the creation of dynamic websites and  more..

    Amreen

    Mobile: +91 89210 61945
    Location: Andhra Pradesh, Online (Kalyan)
    Qualification: BCA

    Experience: "Proficient in programming languages such as Java Python and C++ along with experience in software development and problem-solving "  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 kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan
    Internship/projects in kalyan

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer