# Workshops

- [NodeJS Workshop](/tutorials/workshops/nodejs-workshop.md)
- [Prerequisites](/tutorials/workshops/nodejs-workshop/prerequisites.md)
- [Step 1](/tutorials/workshops/nodejs-workshop/step-1.md): Creating a server
- [Step 2](/tutorials/workshops/nodejs-workshop/step-2.md): Adding a router
- [Step 3](/tutorials/workshops/nodejs-workshop/step-3.md): Adding nodemon
- [Step 4](/tutorials/workshops/nodejs-workshop/step-4.md): Adding a database
- [Step 5](/tutorials/workshops/nodejs-workshop/step-5.md): Adding POST request to router
- [Step 6](/tutorials/workshops/nodejs-workshop/step-6.md): Handlers for URLs with parameters
- [Step 7](/tutorials/workshops/nodejs-workshop/step-7.md): Adding config
- [Step 8](/tutorials/workshops/nodejs-workshop/step-8.md): Adding user model
- [Step 9](/tutorials/workshops/nodejs-workshop/step-9.md): Adding JWT support
- [Step 10](/tutorials/workshops/nodejs-workshop/step-10.md): Adding auth route handler
- [Step 11](/tutorials/workshops/nodejs-workshop/step-11.md): Applying auth middleware to book routes
- [Step 12](/tutorials/workshops/nodejs-workshop/step-12.md): Normalizing server responses
- [React Workshop](/tutorials/workshops/react-workshop.md)
- [Prerequisites](/tutorials/workshops/react-workshop/prerequisites.md)
- [Setup](/tutorials/workshops/react-workshop/setup.md): Boilerplate code
- [Step 1](/tutorials/workshops/react-workshop/step-1.md): Create a component
- [Step 2](/tutorials/workshops/react-workshop/step-2.md): Connecting to our API
- [Step 3](/tutorials/workshops/react-workshop/step-3.md): Displaying data from our API
- [Step 4](/tutorials/workshops/react-workshop/step-4.md): Adding a router
- [Step 5](/tutorials/workshops/react-workshop/step-5.md): Add a navbar
- [Step 6](/tutorials/workshops/react-workshop/step-6.md): Individual book page
- [Step 7](/tutorials/workshops/react-workshop/step-7.md): Creating a book
- [Step 8](/tutorials/workshops/react-workshop/step-8.md): Update a book
- [Step 9](/tutorials/workshops/react-workshop/step-9.md): Delete a book
