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 Sydney

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

    • 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 Sydney
    Mern Stack Development The availability of Node. Node Package Manager (NPM) is one of all the world’s prime package registries. js are generally preferred. Working with MongoDB NoSQL information is much easier than operating with any relational database. js or ReactJS) is a free and open source front-end JavaScript Library for building user interface or UI components. There are no tables in MongoDB. Complete, updated list. You will learn how to build applications backed by MongoDB and gain in-depth knowledge of REST APIs, implement testing, build applications the usage of microservices architecture, and write a real-time chat software using Socket IO. js for developing web applications. Node.

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

    Nikhil

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Sydney)
    Qualification: BCA

    Experience: No experience python language  more..

    Kayathri

    Mobile: +91 8301010866
    Location: Kumbakonam, Online (Sydney)
    Qualification: B.E., Computer Science and Engineering

    Experience: I have completed manual and automation testing courses from Qspiders Chrompet Chennai Having 5 years experience in Executive tutor Currently  more..

    Sushma

    Mobile: +91 91884 77559
    Location: Karnataka, Online (Sydney)
    Qualification: MHA

    Experience: Hospital operations HMIS implementation testing training quality insurance and prices designing and implementing   more..

    Komal

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

    Experience: Manual testing core java  more..

    Ashish

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Sydney)
    Qualification: B.e Mechanical

    Experience: Cad Softwares Machine design Technical proficiency  more..

    Jayasuriya

    Mobile: +91 98474 90866
    Location: Chennai, Online (Sydney)
    Qualification: BE CSE

    Experience: Full stack developer -python HTML CSS Bootstrap MySQL | Resume for   more..

    Mrunal

    Mobile: +91 9446600368
    Location: Maharashtra, Online (Sydney)
    Qualification: Post graduation in BSC

    Experience: Salesforce developer administrator SQL   more..

    Arsalan

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Sydney)
    Qualification: Bachelor's in computer science

    Experience: Skills : python Django and built a project using Django about e commerce  more..

    CHINNU

    Mobile: +91 91884 77559
    Location: Kerala, Online (Sydney)
    Qualification: MCA

    Experience: I am writing to express my strong interest in the fresher Software Testing Position at NestSoft As a post graduate  more..

    Neerugatti

    Mobile: +91 98474 90866
    Location: Bangalore, Online (Sydney)
    Qualification: BE

    Experience: I'm fresher I know core java and python  more..

    Tannu

    Mobile: +91 91884 77559
    Location: Haryana, Online (Sydney)
    Qualification: MCA

    Experience: I have 1 year of experience as a devops engineer with proficient skills in docker kubernetes terraform jenkins python promethus  more..

    Sridevi

    Mobile: +91 98474 90866
    Location: Telangana, Online (Sydney)
    Qualification: Btech

    Experience: Experience in manual testing skills are manual testing database testing API testing regression testing smoke testing sanity testing retesting writing  more..

    Vishal

    Mobile: +91 9895490866
    Location: Kerala, Online (Sydney)
    Qualification: B.sc mathematics

    Experience: Experience:Internship Currently I am doing a internship in python django full stack at Luminar Technolab Kakkanad  more..

    Anudita

    Mobile: +91 98474 90866
    Location: Haryana, Online (Sydney)
    Qualification: B.Tech

    Experience: I am a 2 9-year experienced Flutter developer with a deep interest in developing beautiful and interactive mobile UIs with  more..

    Katam

    Mobile: +91 8301010866
    Location: Telangana, Online (Sydney)
    Qualification: MCA

    Experience: My Skills are python html css bootstrap and basics of sql   more..

    B

    Mobile: +91 9895490866
    Location: Andhra Pradesh, Online (Sydney)
    Qualification: MCA

    Experience: Python Django framework html css php Laravel javascript  more..

    Afzal

    Mobile: +91 98474 90866
    Location: Mumbai, Online (Sydney)
    Qualification: Bsc IT

    Experience: Developed and styled web pages using HTML and CSS ensuring a visually appealing and responsive user interface Working with CSS  more..

    Pritam

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Sydney)
    Qualification: BSc

    Experience: Skills:-Java manual testing Automation testing sql Experience- 2 years of experience in administration accounts Fresher in software testing but knowledge  more..

    Tejaswini

    Mobile: +91 91884 77559
    Location: Karnataka, Online (Sydney)
    Qualification: B E

    Experience: Have 3 years of experience in manual testing  more..

    Ankit

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

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

    Swati

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Sydney)
    Qualification: Bachelor of Technology

    Experience: Java J2SE J2EE web development python MySQL SQL performance testing tools- Jmeter Neoload and loadrunner ISTQB certified   more..

    Sathyaboopathi

    Mobile: +91 91884 77559
    Location: Chennai, Online (Sydney)
    Qualification: Mca

    Experience: Manual testing -3 yrs automation testing with selenium java -3 yrs mobile testing with appium -2 yrs cucumber bdd -3  more..

    rahul

    Mobile: +91 8301010866
    Location: Maharashtra, Online (Sydney)
    Qualification: graphics designs

    Experience: (rahul chaudhari) [Graphic Designer] (city nandurbar state maharashtra pin 425412) rahulyaachaudhari002@gmail com >> Summary << Efficient creative and hard-working graphic  more..

    mihir

    Mobile: +91 9895490866
    Location: Ahmedabad Gujarat, Online (Sydney)
    Qualification: Mca continue

    Experience: Python django developer Basic knowledge of html API My sql I have a 12 month's experience in python django Application  more..

    Akshay

    Mobile: +91 9446600368
    Location: Telangana, Online (Sydney)
    Qualification: B.com

    Experience: Hello I'm Akshay a passionate and seasoned graphic designer with eight years of dedicated experience in the ever-evolving world of  more..

    Ganesh

    Mobile: +91 91884 77559
    Location: Ghansoli, Online (Sydney)
    Qualification: BE

    Experience: Skills: Manual testing functional regression sanity testing Automation testing (selenium) postgreSql Api testing (postman) Deployment Test cases bug report knowledge  more..

    Chitransha

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

    Experience: I have total 4 years of experience in Digital marketing but currently I want to switch in IT as a  more..

    rohini

    Mobile: +91 91884 77559
    Location: kharadi, pune, Online (Sydney)
    Qualification:

    Experience: python django django rest framework github docker basic of html css nlpApplication for Python Django  more..

    niyas

    Mobile: +91 9895490866
    Location: Kerala, Online (Sydney)
    Qualification: Diploma

    Experience: Am a MERN stack developer  more..

    Mohammed

    Mobile: +91 8301010866
    Location: Andhra Pradesh, Online (Sydney)
    Qualification: b.tech

    Experience: Aws serverless architech AWS sam devops python  more..

    Sateesh

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Sydney)
    Qualification: Bachelor's of engineering

    Experience: I have 1 9 years of experience in python PHP and it's frameworks |   more..

    Juraij

    Mobile: +91 89210 61945
    Location: Malappuram, Online (Sydney)
    Qualification: B.E Computer Science and Engineering

    Experience: completed 6 month apprenticeship in python fullstack developer front end in html5 css3 bootstrap javascript ReactJS and back end in  more..

    sahil

    Mobile: +91 91884 77559
    Location: Gujarat, Online (Sydney)
    Qualification: bca

    Experience: dart flutter java c# php html css  more..

    Sujitha

    Mobile: +91 98474 90866
    Location: Thiruvarur, Online (Sydney)
    Qualification: MBA

    Experience: Core java Selenium Cucumber Eclipse STLC Test cases Test scenarios Manual testing Jira MavenApplication for Software Testing  more..

    Priyanka

    Mobile: +91 9446600368
    Location: Pune, Online (Sydney)
    Qualification: Bsc(math)

    Experience: I have knowledge about python power bi ms-excel html machine learningpython data science artificial intelligence machine learning| Application for Python  more..

    Roshini

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Sydney)
    Qualification: Bachelor's of science in Information technology

    Experience: I'm Roshini I recently graduated with a BscIT degree from Sophia College Autonomous I have invested a lot of time  more..

    Poovarasan

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

    Experience: I completed internship in software testing I have skills like Java selenium automation manual testing cucumber TestNG SQL and Excel  more..

    Sasi

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Sydney)
    Qualification: MSc cs

    Experience: C c++ ai python Java js devops etc  more..

    Mayank

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

    Experience: Web development IOT Good communication skills  more..

    Tamana

    Mobile: +91 8301010866
    Location: Delhi, Online (Sydney)
    Qualification: Masters in Applied psychology

    Experience: Key Skills: Counseling & Therapeutic Skills: Individual counseling Group counseling Family counseling Crisis intervention CBT (Cognitive Behavioral Therapy) DBT (Dialectical  more..

    Lavanyasuriya

    Mobile: +91 91884 77559
    Location: Tamil Nadu, Online (Sydney)
    Qualification: BSC computer science

    Experience: Computer programming skills | (Work from Home)  more..

    Srishti

    Mobile: +91 9446600368
    Location: Delhi, Online (Sydney)
    Qualification: French graduate

    Experience: I'm applying for this role because I strongly believe I have the necessary skills qualities and experience to carry out  more..

    Mahantesh

    Mobile: +91 9895490866
    Location: Kalaburagi, Online (Sydney)
    Qualification: Bsc (electronics)

    Experience: I know the basics of python sql server html and css | Resume for   more..

    Varsha

    Mobile: +91 98474 90866
    Location: Ernakulam, Online (Sydney)
    Qualification: BCA

    Experience: Python django css HTML5 JavaScript nodejs angular bootstrap Application for Python Django  more..

    mohd

    Mobile: +91 89210 61945
    Location: mohali, Online (Sydney)
    Qualification: btech

    Experience: i have 2 5 years of experience in software testing | Resume for   more..

    Bhanu

    Mobile: +91 9895490866
    Location: Telangana, Online (Sydney)
    Qualification: BTech

    Experience: HTML CSS JavaScript bootstrap python django APIs SQL  more..

    Chandan

    Mobile: +91 8301010866
    Location: Delhi, Online (Sydney)
    Qualification: MCA

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

    Venkuzhali

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

    Experience: Manual testing Agile Jira SDLC STLC black box testing functional testing Integration testing E2E TESTING RTM  more..

    Aniket

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Sydney)
    Qualification: Graduation

    Experience: Hands on experience in Flutter development for 1 8 year Skills: Flutter dart git |   more..

    Abhishek

    Mobile: +91 91884 77559
    Location: Rajasthan, Online (Sydney)
    Qualification: Bachelor degree

    Experience: I have good knowledge of HTML5 CSS Bootstrap Javascript jQuery AJAX and PHP I make two project using html css  more..

    pramod

    Mobile: +91 98474 90866
    Location: Maharashtra, Online (Sydney)
    Qualification: B com

    Experience: I have 12+ years experience in graphic design i can do video editing animation motion graphics social media post brochure  more..

    Muhammed

    Mobile: +91 8301010866
    Location: Malappuram , Online (Sydney)
    Qualification: Plus two

    Experience: I have good knowledge of python and django and also i know html css and javascript I know postgreSQL and  more..

    Amit

    Mobile: +91 9895490866
    Location: Delhi, Online (Sydney)
    Qualification: Graduate

    Experience: I specialize in conducting ethical hacking and security assessments for web applications Proficient in tools like Burp Suite Metasploit and  more..

    Uzaif

    Mobile: +91 91884 77559
    Location: Maharashtra, Online (Sydney)
    Qualification: Bachelor of computer science

    Experience: Based in Aurangabad Maharashtra a graphic designer with over 2 years of experience and expertise in CorelDraw and Adobe tools  more..

    Anandu

    Mobile: +91 9446600368
    Location: Kerala, Online (Sydney)
    Qualification: Mca

    Experience: Software testing manual testing prepare test cases stlc sdlc  more..

    vishwanth

    Mobile: +91 91884 77559
    Location: Telangana, Online (Sydney)
    Qualification: B.tech in electronics and communication engineering

    Experience: Core java HTML5 CSS3 javascript react bootstrap mysql git and GitHub node with express js with internship on Web development  more..

    Amit

    Mobile: +91 8301010866
    Location: Uttar Pradesh, Online (Sydney)
    Qualification: B.Tech

    Experience: Dear Sir Ma'am I hope you’re doing great! I’m excited to apply for the Flutter Developer role at CityLabs International  more..

    Suhaila

    Mobile: +91 98474 90866
    Location: Tirur, Online (Sydney)
    Qualification: Btech in computer science and engineering

    Experience: Android application developer Java developer  more..

    Aswin

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

    Experience: Manual testing jira Automation testing - selenium testng cucumber |   more..

    SRUTHY

    Mobile: +91 91884 77559
    Location: Thrissur , Online (Sydney)
    Qualification: MCA

    Experience: Java HTML5 Bootstrap CSS Wordpress Microsoft Word Microsoft Excel Undertaking Software Testing course at Luminartechnolabs Worked as junior php developer  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 sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney
    Internship/projects in sydney

    Trained more than 10000+ students who trust Nestsoft TechnoMaster

    Get Your Personal Trainer