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 Kottayam

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

    • 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 Kottayam
    Mern Stack Development e. All the info is kept in JSON format, i. In fact, NodeJs has essentially supported Java, that too on the server-side. . js, this cost is significantly low compared to others because Node. The training costs for developers are usually high, but when it comes to Node. Node. Complete, updated list. The modular design of ReactJS allows you to produce small fluctuations with ease. 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

    Pratik

    Mobile: +91 89210 61945
    Location: Pune, Online (Kottayam)
    Qualification: B.Tech CSE

    Experience: CCNA CEH Firewalls Penetration testing networking Kali linux  more..

    Pakala

    Mobile: +91 91884 77559
    Location: Pakala, Online (Kottayam)
    Qualification: B. Tech(CSE)

    Experience: C python java html css javascript mysql bootstrap  more..

    Supratik

    Mobile: +91 8301010866
    Location: West Bengal, Online (Kottayam)
    Qualification: Btech

    Experience: Manual testing MySQL Bug fixing mobile testing  more..

    Pooja

    Mobile: +91 91884 77559
    Location: Trivandrum, Online (Kottayam)
    Qualification: BE

    Experience: Dear Hiring Manager I am submitting my resume for the position of Software Tester As a skilled and highly educated  more..

    Chandhiravathani

    Mobile: +91 9446600368
    Location: Tiruchengode, Online (Kottayam)
    Qualification: B.tech (it)

    Experience: Skills - data entry Ms office web researching sap basic Content writing Basic programming knowledge in c c++ python Experience  more..

    Krish

    Mobile: +91 9446600368
    Location: Gujarat, Online (Kottayam)
    Qualification: Btech

    Experience: I am a skilled python developer working in python and backend technologies from last 2 years Previously I had worked  more..

    Prince

    Mobile: +91 91884 77559
    Location: Haryana, Online (Kottayam)
    Qualification: B.tech

    Experience: I have 4 years of experience in the manual testing profile and looking for a job in same profile |  more..

    Sreejith

    Mobile: +91 89210 61945
    Location: Kerala, Online (Kottayam)
    Qualification: BCA

    Experience: Dart flutter Time management Decision Making I have completed 5 months flutter internship from soften Technologies  more..

    Mohamed

    Mobile: +91 9446600368
    Location: Chennai, Online (Kottayam)
    Qualification: B.E(MECHANICAL)

    Experience: Proficient Backend Developer with 2+ years of expertise in web and mobile app development Recognized for implementing Python frameworks such  more..

    Ashwini

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: Btech IT

    Experience: Automation testing- selenium content writer  more..

    Vaghasiya

    Mobile: +91 9446600368
    Location: Gujarat, Online (Kottayam)
    Qualification: Bca

    Experience: I have 2 6 years of experience in flutter development and created more than 10 apps using flutter I have  more..

    Kavinkumar

    Mobile: +91 91884 77559
    Location: Dindigul, Online (Kottayam)
    Qualification: B.sc computer science

    Experience: I have Knowledge in python full stack development both frontend and backend and I have Experience in Application support Executive  more..

    Kokila

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

    Experience: Customer service website design |   more..

    Abhijith

    Mobile: +91 91884 77559
    Location: Palakkad, Online (Kottayam)
    Qualification: BCA

    Experience: 3 months of internship in manual testing Quality Analyst Communication Documentation Finding bugs Reporting bugs Application for Software Testing  more..

    Karthikeyan

    Mobile: +91 91884 77559
    Location: Coimbatore , Online (Kottayam)
    Qualification: BSC Computer Science

    Experience: Html Css Bootstrap Javascript Jquery python Django SQLApplication for Python Django  more..

    Sri

    Mobile: +91 89210 61945
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: Btech

    Experience: I have over three years of experience in odoo where I have worked on inventory sales purchase POS and HR  more..

    Shubham

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Kottayam)
    Qualification: BSC-IT

    Experience: 2 years of experience as Software Tester in word Publishing I have experience in Regression Testing Exploratory Testing Smoke Testing  more..

    Rosemerin

    Mobile: +91 9895490866
    Location: Kerala, Online (Kottayam)
    Qualification: Mtech

    Experience: Canva design angular development html java  more..

    Paresh

    Mobile: +91 9446600368
    Location: Gujarat, Online (Kottayam)
    Qualification: MCA

    Experience: Have 10+ experience in wordpress PHP and ecommerce website |   more..

    Mayank

    Mobile: +91 91884 77559
    Location: Delhi, Online (Kottayam)
    Qualification: Mca (persunig)

    Experience: As a Django developer I believe that I would be an excellent candidate for the job because of my extensive  more..

    Shivanand

    Mobile: +91 9895490866
    Location: Uttar Pradesh, Online (Kottayam)
    Qualification: B.tech

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

    Anjali

    Mobile: +91 98474 90866
    Location: Uttar Pradesh, Online (Kottayam)
    Qualification: BCA

    Experience: My skills is python c c++ html and css I am fresher currently I am pursuing MCA   more..

    Ganesh

    Mobile: +91 98474 90866
    Location: Andhra Pradesh, Online (Kottayam)
    Qualification: btech

    Experience: Broad knowledge of networking and security technologies to provide security to IT Infrastructure assets Having 2 2 years of experience  more..

    Vithika

    Mobile: +91 9895490866
    Location: Madhya Pradesh, Online (Kottayam)
    Qualification: Master in design

    Experience: I am excited to apply for the Graphic Designer position and bring my two years of experience and passion for  more..

    Jaswanth

    Mobile: +91 98474 90866
    Location: Andhra Pradesh, Online (Kottayam)
    Qualification: B.Tech

    Experience: python java sql sdlc oops  more..

    Nilesh

    Mobile: +91 91884 77559
    Location: Nagpur, Online (Kottayam)
    Qualification: Mtech

    Experience: Manual testing uipath | Resume for   more..

    AYYALSAMY

    Mobile: +91 89210 61945
    Location: Chennai, Online (Kottayam)
    Qualification: Bachelor's degree

    Experience: Proficiency in creating comprehensive test plans and test cases Skill in executing test cases recording results and documenting defects Experience  more..

    Kamal

    Mobile: +91 91884 77559
    Location: Madhya Pradesh, Online (Kottayam)
    Qualification: Graduation

    Experience: Django full stack developer with 1 year experience |   more..

    Basu

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

    Experience: Mongodb express node react Html css js core Java etc  more..

    Amit

    Mobile: +91 89210 61945
    Location: Uttar Pradesh, Online (Kottayam)
    Qualification: BTech

    Experience: I have worked on postman and error and bugs and I have knowledge about fork I have done a three  more..

    Mohammed

    Mobile: +91 89210 61945
    Location: Karnataka, Online (Kottayam)
    Qualification: M.tech

    Experience: Penetration testing VAPT  more..

    Revathi

    Mobile: +91 9895490866
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: B.E

    Experience: Good Mo I have 10 months of hands-on experience in Flutter development I am passionate about building user-friendly efficient applications  more..

    Shani

    Mobile: +91 9895490866
    Location: Gujarat, Online (Kottayam)
    Qualification: Mca

    Experience: I have experience in Testing tools and 6month of experience Manual testing and automation testing |   more..

    Rohit

    Mobile: +91 8301010866
    Location: Odisha, Online (Kottayam)
    Qualification: 12th Pass

    Experience: Skills & Experience: Programming Languages: JavaScript TypeScript Python Java Web Development: React js Next js Node js Express js EJS  more..

    Anjima

    Mobile: +91 91884 77559
    Location: Trivandrum , Online (Kottayam)
    Qualification: B.tech

    Experience: I know programming languages like c c++ HTML5 CSS Javascript SQL I done the website template using HTML5 and CSS  more..

    B.NAVEENA

    Mobile: +91 98474 90866
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: M.sc (Mathematics)

    Experience: Skills: Typing c programming python Experience: 2 year Maths teacher in institute and 5 years experience in online maths tutor  more..

    arun

    Mobile: +91 8301010866
    Location: punjab, Online (Kottayam)
    Qualification: 12

    Experience: video editing & graphic design  more..

    Manish

    Mobile: +91 91884 77559
    Location: Madhya Pradesh, Online (Kottayam)
    Qualification: Graduation ( in computer applications )

    Experience: Skills: 1 Visual Design 2 Branding and Identity 3 Typography 4 Color Theory 5 Layout and Composition 6 Print and  more..

    Devyani

    Mobile: +91 9446600368
    Location: Maharashtra, Online (Kottayam)
    Qualification: PGDM and BTECH (computer science)

    Experience: Content writing research seo graphic designing using canva market research competitive analysis  more..

    Ausali

    Mobile: +91 9895490866
    Location: Shamshabad, Hyderabad, Online (Kottayam)
    Qualification: B pharm

    Experience: Manual testing Automation Java selenium SDLC STLC writing test cases Test execution Agile methodology JiraApplication for Software Testing  more..

    Shivani

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Kottayam)
    Qualification: Btech

    Experience: I am Looking for job in python my skills are Html CSS JQuery Bootstrap Django MySQL SQL   more..

    Vaishali

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Kottayam)
    Qualification: Beit

    Experience: Networking software testing core java  more..

    Falguni

    Mobile: +91 9895490866
    Location: Gujarat, Online (Kottayam)
    Qualification: Bechelors

    Experience: Django python flask FastAPI Mongodb Laravel  more..

    Swaraj

    Mobile: +91 98474 90866
    Location: Odisha, Online (Kottayam)
    Qualification: Diploma in mechanical

    Experience: Skills: AutoCAD unigraphics SOLID WORK master cam CNC programming quality inspector Experience - I have experience in quality inspector 5  more..

    Deepali

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Kottayam)
    Qualification: MCA

    Experience: 1+ years of experience in Manual Testing Skills - Manual testing Automation testing Functional testing SDLC STLC Regression testing HTML  more..

    dharmik

    Mobile: +91 9895490866
    Location: Gujarat, Online (Kottayam)
    Qualification: Mechanical

    Experience: Sdlc test case Bug cycle Unit testing System testing 7600672941  more..

    Disha

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Kottayam)
    Qualification: Graduate

    Experience: Vulnerability assessment Penetration testing Familiar with security tools like nessus burpsuite metasploite Wireshark Familiar with owasp top 10  more..

    Pradip

    Mobile: +91 9895490866
    Location: Maharashtra, Online (Kottayam)
    Qualification: BTech

    Experience: Dear Hiring Manager I am writing to apply for the Manual Tester position With 1 8 years of hands-on testing  more..

    Dhanaraj

    Mobile: +91 8301010866
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: B.com

    Experience: python and django frontend in html and css and javascript and bootstrp  more..

    Suraj

    Mobile: +91 91884 77559
    Location: Navi Mumbai, Online (Kottayam)
    Qualification: BE

    Experience: An IT professional with 2 8 years of experience in Manual and Automation Testing including expertise in Functional Testing Non-Functional  more..

    Nalla

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

    Experience: Autocad 2d designer for residential building's sketchup 3d design site management and project management  more..

    AMRUTHA

    Mobile: +91 91884 77559
    Location: Kerala, Online (Kottayam)
    Qualification: MSc. Statistics

    Experience: I recently done Software Testing internship at Camerinfolks Pvt Ltd where I gained valuable experience in both automation and manual  more..

    Prava

    Mobile: +91 98474 90866
    Location: West Bengal, Online (Kottayam)
    Qualification: M.A,B.Ed

    Experience: Respected Ma'am Sir I am writing to express my interest in the English teacher role at your institution I am  more..

    Aakarshit

    Mobile: +91 89210 61945
    Location: Jammu and Kashmir, Online (Kottayam)
    Qualification: B.Tech

    Experience: 1 Experience of 17+ months as an automation engineer in Cognizant Technology Solutions 2 Skills - Java Selenium TestNG Manual  more..

    Dhanya

    Mobile: +91 89210 61945
    Location: COIMBATORE, Online (Kottayam)
    Qualification: MCA

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

    ABINAY

    Mobile: +91 9446600368
    Location: Kerala, Online (Kottayam)
    Qualification: Diploma in computer hardware engineering

    Experience: Knowledge about networking desktop os Hardworking efficient good communication eager to know about new technology and knowledge |   more..

    Tejaswini

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

    Experience: 2 Years and 1 Month Experience in Reformax Infotech Pune (From Feb 2022 to Till Date) Total Exp: Asp Net  more..

    RHITIK

    Mobile: +91 91884 77559
    Location: Ahmedabad , Online (Kottayam)
    Qualification: Mba

    Experience: 2 years of experience as a Graphic designer and currently head of design on the college newsletter committee   more..

    Shashwat

    Mobile: +91 91884 77559
    Location: Kolkata, India, Online (Kottayam)
    Qualification: English, Hindi, Bengali

    Experience: As a dedicated and passionate cybersecurity student I am committed to mastering the skills and knowledge needed to protect and  more..

    Vinigha

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Kottayam)
    Qualification: B. Tech

    Experience: I had completed my manual testing which includes functional integration regression testing I have experience in defect tracking logging the  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 kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam
    Internship/projects in kottayam

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer