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 Jaipur

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

    • 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 Jaipur
    Mern Stack Development Node Package Manager (NPM) is one of all the world’s prime package registries. Node. Do you need to learn the Node. . In fact, NodeJs has essentially supported Java, that too on the server-side. key-value pairs. React JS is formed via means of Facebook and is the most efficient solution for front-end developers of mobile and web apps. built-in scaling is a must-have feature of many organizations, as you adapt to an ever-changing market. ReactJS contains a reputation for being a robust tool for making user interfaces. Learn the most effective skills from the best sources through the best trusty teachers.

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

    Nitish

    Mobile: +91 89210 61945
    Location: Tamil Nadu, Online (Jaipur)
    Qualification: Undergraduate

    Experience: I am writing to express my interest in the UI UX Designer position at your company as advertised As a  more..

    K

    Mobile: +91 98474 90866
    Location: Kerala, Online (Jaipur)
    Qualification: Bsc cyber forensic

    Experience: Manual testing types of testing test scenarios test cases SQL core Java and also pursuing automation testing   more..

    AliAsgar

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Jaipur)
    Qualification: SSC/Graphic Designer/Cybersecurity Student

    Experience: Arabic 4 years Business analysis 1 year Business intelligence 1 year Business management 2 years Communication skills 2 years Computer  more..

    Nikita

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Jaipur)
    Qualification: BE

    Experience: Manual testing jira tool SQL core jawa test cases writing good communication skills leadership  more..

    shaheen

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

    Experience: python scala kafka django  more..

    Jayesh

    Mobile: +91 91884 77559
    Location: Jalgaon , Online (Jaipur)
    Qualification: MCA

    Experience: I have good knowledge of python Django and web development i have created many projects using python HTML and javascript  more..

    Ajeesh

    Mobile: +91 91884 77559
    Location: cochin, Online (Jaipur)
    Qualification: MCA

    Experience: Dear sir madam I am sending this application for the position of PHP developer I have 6+ years of experience  more..

    Tashvi

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Jaipur)
    Qualification: Studying 2nd year bammc right now

    Experience: Website designing logo design brochure design banner 1 year experience in total  more..

    Frazi

    Mobile: +91 89210 61945
    Location: Delhi, Online (Jaipur)
    Qualification: B.tech Computer Science Engineering (Graduated) from Jamia Hamdard University

    Experience: SKILLS RPA Automation Anywhere (A360) SQL Python (Pandas Seaborn Matplotlib OpenCV) Power BI EXPERIENCE YOHO New Delhi — Web Developer  more..

    Vaishali

    Mobile: +91 89210 61945
    Location: Rajasthan, Online (Jaipur)
    Qualification: B.tech

    Experience: I am having total experience of 6 5 years and I am angular developer with 4 5 experience and I  more..

    Akshaya

    Mobile: +91 89210 61945
    Location: Tamil Nadu, Online (Jaipur)
    Qualification: B.tech IT

    Experience: Certification course on automation testing core Java SQL |   more..

    trupti

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Jaipur)
    Qualification: BE (computer)

    Experience: I'm junior software testing Engineer I have १ ३years experience |   more..

    Jaladanki

    Mobile: +91 89210 61945
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: B.com Computer Applications

    Experience: Basics of manual testing like *Black box testing *SDLC and STLC *System testing etc   more..

    Jayasurya

    Mobile: +91 89210 61945
    Location: Chennai, Online (Jaipur)
    Qualification: B.tech

    Experience: Manual testing Java selenium api sql Having 1 8 years experience in it sector as software test engineerApplication for Software  more..

    Chunduru

    Mobile: +91 8301010866
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: B.Tech[ECE]

    Experience: I have 1 year experience in manual testing and during the that worked two projects in those projects i done  more..

    Kavish

    Mobile: +91 9446600368
    Location: Dombivli, Online (Jaipur)
    Qualification: B.Sc in Computer Science

    Experience: 1 5 Years of Experience in developing WordPress and HTML websites from scartch using themes and customising different aspects as  more..

    Lakshmana

    Mobile: +91 91884 77559
    Location: coimbatore, Online (Jaipur)
    Qualification: B.E automobile engneering

    Experience: I havebeen certified in python AWS and Django Application for Python Django  more..

    Shubhamraj

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

    Experience: I am a Experienced Python developer with a demonstrated track record of creating efficient and scalable solutions across diverse domains  more..

    Kajal

    Mobile: +91 9446600368
    Location: Pune, Online (Jaipur)
    Qualification: BCA

    Experience: Hello I am kajal patil Talking about technical knowledge i have deeply knowledge on Manual Testing Also i have practical  more..

    Lalita

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Jaipur)
    Qualification: MSc computer

    Experience: Manual testing API testing SDLC STLC Automation testing along with the Selenium with Java |   more..

    Manish

    Mobile: +91 9446600368
    Location: Chandrapur , Online (Jaipur)
    Qualification: B.E

    Experience: I have 1 year of experience in Autocad design and have worked on site I am very much sure that  more..

    CharanKumarReddy

    Mobile: +91 89210 61945
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: Btech

    Experience: * Python : Data Structures OOPS Concept problem-solving debugging coding programming * Sql : Operations on Database RDBMS Joins views  more..

    Samir

    Mobile: +91 91884 77559
    Location: Odisha, Online (Jaipur)
    Qualification: MCA

    Experience: I completed MCA in 2024 I have 1 year of experience in python django   more..

    Sakshi

    Mobile: +91 9446600368
    Location: Maharashtra, Online (Jaipur)
    Qualification: Bsc in computer science

    Experience: Computer language c DBMS net ado net asp net c# Mathematics | Resume for IT Counselor (Work from Home) Hindi  more..

    sonali

    Mobile: +91 8301010866
    Location: Jammu, Online (Jaipur)
    Qualification: Mtech

    Experience: Test cases performance testing smoke testing functional testingApplication for Software Testing  more..

    Yash

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Jaipur)
    Qualification: MSc computer science

    Experience: I’ve been working on modern tech stacks for multiple startups building prototypes and MVP’s using flutter for mobile apps nodejs  more..

    Uma

    Mobile: +91 98474 90866
    Location: Madhya Pradesh, Online (Jaipur)
    Qualification: BTech

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

    jayant

    Mobile: +91 9446600368
    Location: noida, Online (Jaipur)
    Qualification: b.tech cse

    Experience: django python html cssApplication for Python Django  more..

    prakash

    Mobile: +91 9446600368
    Location: Tamil Nadu, Online (Jaipur)
    Qualification: BE

    Experience: Hii Good Afternoon; I am Prakash Raj a Flutter developer with 1 3 years of experience in building mobile applications  more..

    Tanish

    Mobile: +91 91884 77559
    Location: Bengaluru, Online (Jaipur)
    Qualification: Bachelor's

    Experience: Skills: Manual testing SQL agile methodologies API testing defect tracking Jira github | Resume for   more..

    Ashish

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Jaipur)
    Qualification: BE

    Experience: Overall 3+ years of experience in software Development and Analysis of application I specialize in building robust and scalable web  more..

    G

    Mobile: +91 8301010866
    Location: Tamil Nadu, Online (Jaipur)
    Qualification: M.Sc

    Experience: I have 3 yoe in software testing I am a good team player with good communication   more..

    Sukanya

    Mobile: +91 98474 90866
    Location: Banglore, Online (Jaipur)
    Qualification: BSC cs

    Experience: I have 3+ years of experience in manual testing I have also completed automation testing certification and I am currently  more..

    Abhishek

    Mobile: +91 9895490866
    Location: Uttar Pradesh, Online (Jaipur)
    Qualification: Diploma in mechanical

    Experience: Autocad and solidworks 2d and 3d Drafting 2 years experience in quality engineer 1 years experience in design engineer |  more..

    sharafat

    Mobile: +91 9895490866
    Location: Uttarakhand, Online (Jaipur)
    Qualification: B. Tech

    Experience: Hardware networking server firewall NAS NVR  more..

    Ganesh

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Jaipur)
    Qualification: Msc (science)

    Experience: I Ganesh Mahajan I have 1 6 years of the experience as software developer at myrah consultancy services Andheri west  more..

    Shivraj

    Mobile: +91 98474 90866
    Location: Madhya Pradesh, Online (Jaipur)
    Qualification: Bachelor's

    Experience: Having 1 year of experience in flutter and also worked in python  more..

    Harshada

    Mobile: +91 9895490866
    Location: Badlapur, Online (Jaipur)
    Qualification: M.tech

    Experience: Embedded software test engineer with 2 years of experience in testing and quality assurance Skilled in designing and executing test  more..

    Raja

    Mobile: +91 91884 77559
    Location: Hyderabad, Online (Jaipur)
    Qualification: B-Tech

    Experience: python data science artificial intelligence machine learning| Application for Python Data Science Machine Learning Artificial Intelligence  more..

    Mayuri

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Jaipur)
    Qualification: MCA

    Experience: Java development SQL hands on experience  more..

    Aarti

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Jaipur)
    Qualification: BE

    Experience: Data analyst like python advance excel sql power bi  more..

    JITHA

    Mobile: +91 89210 61945
    Location: TRIPUNITHURA , Online (Jaipur)
    Qualification: Btech in electronics and communication engineering

    Experience: Html selenium Java RPA Embedded C Iam a software tester having experience in manual and automation testing Having certificate of  more..

    saloni

    Mobile: +91 9446600368
    Location: Punjab, Online (Jaipur)
    Qualification: BCA

    Experience: python django html css Javascript  more..

    Vishal

    Mobile: +91 98474 90866
    Location: Delhi, Online (Jaipur)
    Qualification: B.E

    Experience: I have total 5 years of experience in manual testing i performed functional testing on web application I performed multiple  more..

    tannu

    Mobile: +91 9895490866
    Location: Madhya Pradesh, Online (Jaipur)
    Qualification: b.tech

    Experience: python flask aws Linux sql  more..

    Muhammed

    Mobile: +91 91884 77559
    Location: Kerala, Kochi, Aluva, Online (Jaipur)
    Qualification: BCA

    Experience: I have over 3 years of experience as a lead Flutter and Android developer with a strong background in UI  more..

    Samarpan

    Mobile: +91 89210 61945
    Location: Gujarat, Online (Jaipur)
    Qualification: MCA

    Experience: Any software installation in PC or laptop Google ads digital marketing I am also wordpress developer I worked in php  more..

    Sreejith

    Mobile: +91 89210 61945
    Location: Alappuzha, Online (Jaipur)
    Qualification: Bsc Electronics,Software testing training

    Experience: I did my bachelors degree in electronics from the kerala university I have done software testing training from Techmasters I  more..

    Siddharth

    Mobile: +91 98474 90866
    Location: Kerala, Online (Jaipur)
    Qualification: Msc Microbiology

    Experience: 4 years of teaching experience in various coaching centre across Kerala and life skills development trainee  more..

    Piyush

    Mobile: +91 89210 61945
    Location: Maharashtra, Online (Jaipur)
    Qualification: Bsc graduate

    Experience: I completed this course big data data engineer data analytics python language aslo  more..

    Dinesh

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Jaipur)
    Qualification: Be

    Experience: Soc cybersecurity pentesting ethical hacking vulnerability assessment  more..

    Disha

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Jaipur)
    Qualification: B.des

    Experience: As a graphic designer I have strong hands-on experience with industry-standard software such as Adobe Creative Suite (Photoshop Illustrator InDesign)  more..

    Ajinkya

    Mobile: +91 89210 61945
    Location: Karnataka, Online (Jaipur)
    Qualification: BE

    Experience: I have 3 9 year experience in Manual Testing Mobile app testing Agile model etc |   more..

    Shahanas

    Mobile: +91 91884 77559
    Location: Kerala, Online (Jaipur)
    Qualification: Bachelor of Technology

    Experience: Hello There ! I am an Android developer who is now looking for a part time job role I look  more..

    kulsum

    Mobile: +91 98474 90866
    Location: Delhi, Online (Jaipur)
    Qualification: B.A.English (Hons), B.Ed, M.A English

    Experience: As an English language teacher I have developed strong skills in lesson planning curriculum development classroom management and student assessment  more..

    Chandhu

    Mobile: +91 9446600368
    Location: kottayam,marangattupilly,686635, Online (Jaipur)
    Qualification: MCA

    Experience: python html css Application for Python Django  more..

    Achsah

    Mobile: +91 8301010866
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: Btech

    Experience: Malware analysis firewall cyber attacks   more..

    DHARA

    Mobile: +91 91884 77559
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: master of computer applications(MCA)

    Experience: I am a software intern at Kasmo Technologies Pvt Ltd I have overall 1+ years of experience in the IT  more..

    Anurag

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

    Experience: 1 year experience as flutter developer | Resume for   more..

    Venkateswara

    Mobile: +91 9446600368
    Location: Andhra Pradesh, Online (Jaipur)
    Qualification: B.tech

    Experience: skills : python MYSQL AWS HTML CSS java script tensorflow keras numpy pandas matplotlib django flask  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 jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur
    Internship/projects in jaipur

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer