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 Newry

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

    • 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 Newry
    Mern Stack Development All the info is kept in JSON format, i. Use the AngularJS framework, which allows web applications to have declarative, two-way data binding. Complete, updated list. React has lots of advantages, the main reason for people to choose react is its faster performance and good interface. built-in scaling is a must-have feature of many organizations, as you adapt to an ever-changing market. js services are getting more popular, so that they have something new all the time. 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. e. js developers is less compared to other technologies as it has come to common in recent years. The availability of Node.

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

    Karan

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Newry)
    Qualification: Bca

    Experience: I am interested in drawing reading and also have a little bit of knowledge about social media's and design knowledge  more..

    Ravaliya

    Mobile: +91 9446600368
    Location: Gujarat, Online (Newry)
    Qualification: Bachelor's degree

    Experience: Have internship experience and 1 year of CTF experience with 170+ machine solved and a global ranking of 600 on  more..

    Shivani

    Mobile: +91 91884 77559
    Location: Pune, Online (Newry)
    Qualification: Graduation

    Experience: I am writing this letter to express my interest for the post of Software test engineer I with "Eduvanz Financing  more..

    Fiza

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

    Experience: java Manual testing sql Automation testing Experience of 1 year in software Testing  more..

    Ramesh

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

    Experience: Java selenium manual testing Api testin database testing  more..

    vaishnavi

    Mobile: +91 9446600368
    Location: Madhya Pradesh, Online (Newry)
    Qualification: btech

    Experience: linux git github docker jenkins k8s jira aws terraform python  more..

    sharafat

    Mobile: +91 98474 90866
    Location: Uttarakhand, Online (Newry)
    Qualification: B. Tech

    Experience: Hardware networking server firewall NAS NVR  more..

    Priya

    Mobile: +91 89210 61945
    Location: Tamil Nadu, Online (Newry)
    Qualification: B.E CSE

    Experience: Am Priya Dharshini k my passion in the Web Developer role at our organization With a strong foundation in web  more..

    Pranay

    Mobile: +91 8301010866
    Location: Rajasthan, Online (Newry)
    Qualification: Btech

    Experience: Skills : Plugin and theme development PHP Javascript AJAX Wordpress HTML CSS  more..

    Aftab

    Mobile: +91 9446600368
    Location: Goa, Online (Newry)
    Qualification: Bachelors Degree in Computer Engineering

    Experience: I am a beginner with a solid foundation in Network Administration and am eager to deepen my understanding of firewalls  more..

    sarvajeet

    Mobile: +91 8301010866
    Location: Bihar, Online (Newry)
    Qualification: B.tech

    Experience: I am a Flutter developer with 2 5 years of experience in Flutter Dart Git (version control) and Firebase I  more..

    Vijayalaxmi

    Mobile: +91 9446600368
    Location: Bengaluru , Online (Newry)
    Qualification: B.com

    Experience: Seo Sem SMM Google ads email marketing and SMS marketing Totally i have 3yrs of experience as a seo analyst  more..

    Nayana

    Mobile: +91 9895490866
    Location: Kerala, Online (Newry)
    Qualification: Btech

    Experience: Teaching English verbal communication Team management Leadership Content development Research Aptitude knowledge Excellent reasoning skills Multi linguistic Excellent performance among  more..

    VIKASH

    Mobile: +91 89210 61945
    Location: Madhya Pradesh, Online (Newry)
    Qualification: Master in Technology

    Experience: Hand's on experience on Network and network hardware configuration Gained knowledge on fortinet firewall Routing vlans and other domains of  more..

    Shivanand

    Mobile: +91 89210 61945
    Location: Uttar Pradesh, Online (Newry)
    Qualification: B.tech

    Experience: HTML CSS javascript (basic) jQuery python django sql git GitHub figma canva   more..

    Nikita

    Mobile: +91 91884 77559
    Location: Vadodara, Online (Newry)
    Qualification: Diploma in information technology

    Experience: Resently i completed menual software testing course and well traine from welltech institute good knowledge about testing and test cases  more..

    Naveen

    Mobile: +91 8301010866
    Location: Tamil Nadu, Online (Newry)
    Qualification: MCA

    Experience: Python sql & 6 months work experience in java full stack developer |   more..

    Janardhan

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Newry)
    Qualification: Diploma in civil engg

    Experience: I have six years of experience in using AutoCAD Prior to this I was involved in my own construction business  more..

    Sri

    Mobile: +91 8301010866
    Location: Karnataka, Online (Newry)
    Qualification: BE

    Experience: Java selenium sql java mannual testing  more..

    Subinay

    Mobile: +91 89210 61945
    Location: Bokaro Jharkhand , Online (Newry)
    Qualification: MCA

    Experience: Experience in Web development   more..

    Atul

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Newry)
    Qualification: Diploma

    Experience: Hello! I am working as a graphics designer cum video editor from last 4+ years and have an exceptional knowledge  more..

    Shivani

    Mobile: +91 91884 77559
    Location: Himachal Pradesh, Online (Newry)
    Qualification: M.Tech

    Experience: html css bootstrap wordpress jQuery  more..

    Geesala

    Mobile: +91 91884 77559
    Location: Andhra Pradesh, Online (Newry)
    Qualification: Bachelor of Technology

    Experience: Proficient in Flutter app development with experience in integrating Firebase services including authentication real-time databases and cloud storage Skilled in  more..

    Supriya

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Newry)
    Qualification: B.E computert

    Experience: Java c++ html postman jira manual testing automation testing selenium cucumber testing maven API MySQL powerbi  more..

    sejal

    Mobile: +91 91884 77559
    Location: Gujarat, Online (Newry)
    Qualification: B. Tech CSIT

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

    UDAY

    Mobile: +91 9446600368
    Location: Madhya Pradesh, Online (Newry)
    Qualification: M.Sc in Computer Science

    Experience: I'm react developer I had developed a project on movie site in this i use api integration express for server  more..

    Swati

    Mobile: +91 91884 77559
    Location: Madhya Pradesh, Online (Newry)
    Qualification: B.sc

    Experience: I have 6 month of experience as manual tester and I am doing training in automation testing and performance testing  more..

    Neethu

    Mobile: +91 91884 77559
    Location: Murdeshwar, Online (Newry)
    Qualification: B E cse

    Experience: I have done diploma ttc in IT hardware and networking in IT and also diploma in computer science And  more..

    Mohamed

    Mobile: +91 8301010866
    Location: kannur, kerala, Online (Newry)
    Qualification: BSC computer science

    Experience: Software developer intern Angular DJango python mongo DB HTML CSS bootstrap Java scriptApplication for Python Django  more..

    Bhavana

    Mobile: +91 98474 90866
    Location: Chikkmagluru, Online (Newry)
    Qualification: BCA

    Experience: Manual testing sldc stlc SQL Java selenium webdriver APIApplication for Software Testing  more..

    Geetha

    Mobile: +91 98474 90866
    Location: Telangana, Online (Newry)
    Qualification: B pharm

    Experience: Good hands on experience in manual testing and automation |   more..

    Mohd

    Mobile: +91 91884 77559
    Location: Uttar Pradesh, Online (Newry)
    Qualification: MCA

    Experience: I'm MCA passout from Babu Banarsi Das University Lucknow Uttar Pradesh and looking forward to an opportunity My skills are  more..

    Mohit

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Newry)
    Qualification: Graduate, ISTQB, NISM

    Experience: Functional testing Regression Retesting Blackbox testing Jira tool Understanding of Python |   more..

    Ramya

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Newry)
    Qualification: Diploma in computer engineering

    Experience: 2years in manufacturing : Testing operator and line leader Skills : C programming Basic level C++ programming Basic level  more..

    Gaurav

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Newry)
    Qualification: B. Tech

    Experience: Functional Testing Retesting Regression testing Jira Defect life cycle STLC Selenium Webdriver TestNG TestSuit Undergone 1 year Internship at Rakuten  more..

    Shushant

    Mobile: +91 91884 77559
    Location: Bhopal, Online (Newry)
    Qualification: Btech

    Experience: python Machine learningApplication for Python Django  more..

    Balavignesh

    Mobile: +91 9446600368
    Location: Tamil Nadu, Online (Newry)
    Qualification: Bca

    Experience: Healthcare and claims experience with manual testing overall of 8 yrs experience Immediate joinee  more..

    RAVI

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Newry)
    Qualification: B.Voc in Software Development

    Experience: In my recent role at Degitalize The Globe from July 2022 to January 2024 I served as a Web Developer  more..

    Raushan

    Mobile: +91 98474 90866
    Location: Bihar, Online (Newry)
    Qualification: B.E. Computer Science and Engineering

    Experience: Seasoned cybersecurity analyst adeptin threat detection incidentresponse and risk mitigation Skilled in analyzing security systems identifying vulnerabilities and implementing robust  more..

    Ankit

    Mobile: +91 91884 77559
    Location: Indore, Online (Newry)
    Qualification: B tech

    Experience: Skill - manual testing smoke sanity performance UAT regression integration Stlc sdlc bug Life cycle Water fall model mobile testing  more..

    kajal

    Mobile: +91 8301010866
    Location: Nagpur, Online (Newry)
    Qualification: M. Tec

    Experience: I have experience in manual testing and basic automation testing sql mysql api | Resume for   more..

    sonali

    Mobile: +91 8301010866
    Location: Madhya Pradesh, Online (Newry)
    Qualification: MCA

    Experience: Having 1 year of experience in manual testing with skills of good communication Knowledge of STLC SDLC Agile Test scenarios  more..

    RAMALA

    Mobile: +91 9895490866
    Location: Telangana, Online (Newry)
    Qualification: MCA

    Experience: Digital Marketing - Website design SEO Google Ads Facebook Ads   more..

    Priyanka

    Mobile: +91 91884 77559
    Location: Karnataka, Online (Newry)
    Qualification: Mtech

    Experience: Content writing social media management web designing programming designing  more..

    Nilam

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Newry)
    Qualification: BE(Computer Science)

    Experience: I have 2+ year's of experience in manual as well automation testing I am looking for job switch If I  more..

    Gayatri

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Newry)
    Qualification: Btech in Computer science

    Experience: Proficient in Hindi English and marathi languages Good Communication skills and programming languages like C core java Python and also  more..

    Karobi

    Mobile: +91 9895490866
    Location: West Bengal, Online (Newry)
    Qualification: MA in English

    Experience: Content writing Blog writing content editing grammar seo writing 12+ years of experience in SEO content writing and editing  more..

    Magdaline

    Mobile: +91 91884 77559
    Location: Nairobi, kenya, Online (Newry)
    Qualification: Bsc Computer Technology

    Experience: Solution oriented problem solver software developer with 3+ years of experience in the software development field using Flutter Javascript (Node  more..

    Tanmoy

    Mobile: +91 9446600368
    Location: West Bengal, Online (Newry)
    Qualification: B.Tech

    Experience: I have decent knowledge of Html css Javascript and it's framework React js Basic knowledge of databases like MongoDB SQL  more..

    Ankita

    Mobile: +91 9895490866
    Location: Madhya Pradesh, Online (Newry)
    Qualification: 12

    Experience: Web development graphics design animation corel photography computer skill   more..

    vaishnavi

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Newry)
    Qualification: BE computer engineer

    Experience: I m vaishnavi pramod shewale I m from nashik I have completed my bachelor's degree in computer engineer n i  more..

    Linta

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

    Experience: Manual and Automation Testing Selenium IDE Selenium Webdriver Cucumber 5 months experience in manual and automation testing Currently working as  more..

    Appasaheb

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

    Experience: Full stack developer with 3+ years of industry experience Application for Python Django  more..

    suja

    Mobile: +91 8301010866
    Location: Kerala, Online (Newry)
    Qualification: B.Tech in BIO-MEDICAL ENGG

    Experience: ISTQB CERTIFICATION Familier to c and c++ In depth knowledge in manual testing completed small demo projects in automation testing  more..

    VAISAGH

    Mobile: +91 91884 77559
    Location: Edappally , Online (Newry)
    Qualification: Btech

    Experience: Dear Sir Ma’am My name is vaisagh mp I am writing this letter to express my interest in the  more..

    pranav

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Newry)
    Qualification: Bachelors

    Experience: Fresher with skills like python django django rest framework SQL html css  more..

    Challa

    Mobile: +91 9895490866
    Location: Andhra Pradesh, Online (Newry)
    Qualification: BE

    Experience: Python -Oops Sql and c programming  more..

    Akash

    Mobile: +91 98474 90866
    Location: Kochi, Online (Newry)
    Qualification: Btech

    Experience: Windows Linux Ccna Ccnp Hardware and networking | Resume for   more..

    Jayeeta

    Mobile: +91 91884 77559
    Location: West Bengal, Online (Newry)
    Qualification: M.A.B.Ed

    Experience: Lesson plan teaching classroom management behavioral management fostering creativity in class Ensuring holistic development of the students   more..

    Saakshi

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Newry)
    Qualification: BE mechanical

    Experience: AutoCAD Solidworks ansys Arduino python PCB  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 newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry
    Internship/projects in newry

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer