
Join an experienced web and mobile developer to learn JavaScript for backend development with Node.js, build web applications, and ask questions as you progress through the course.
Learn what a website is and the technology behind it. Distinguish static sites from responsive, interactive full-stack apps with backend databases, aimed at launching your first version.
Discover how Node.js uses JavaScript for server-side web apps, and learn core concepts like variables, arrays, loops, functions, and callbacks to build and test real-time APIs quickly.
Explore the hypertext transfer protocol, including get, post, put, and delete methods, and see how APIs respond with data versus web pages, enabling data retrieval, submission, updates, and deletions.
Learn how MongoDB organizes data into collections of documents and use schemas, create, read, update, and delete operations to manage users with attributes like name, email, and password.
Explore how HTTP requests interact with MongoDB in a Node.js app, using GET to fetch users and POST to create and save user data, including form input handling and redirects.
Launch a simple MVP news-like website from scratch, using Bootstrap and third-party libraries, and learn to set up your first app and upload content to a CIM server.
Set up your project by creating a folder, initializing npm with package.json, and installing third-party libraries like express locally in the project to start building with node.js.
Learn how middleware acts as a middleman between client requests and your server, using libraries like body-parser and morgan to inspect, parse, and log traffic.
Explore middleware with express, configure body parser for json, and enable file and unicode handling while running your first server on a designated port.
Create your first home route with Express's app.get, handle request and response, and return JSON data. Test locally by starting the server and hitting the route in your browser.
Install Handlebars and express-handlebars, set Handlebars as the view engine, and organize a layouts folder to render a home view that inherits a main layout.
Learn to add middleware with Express to serve static files from a public folder, bootstrap a first web page, and integrate css and javascript for a styled page.
Position the form in the middle using bootstrap grid, with an email input and a primary submit button, and learn how to post the data to the server.
Create a mailchimp account and a new mailing list, then explore the api to add emails using the api key and list id, as preparation for the next lecture.
Capture user emails and post data to the MailChimp API using a network communicator library, and show a subscription confirmation after parsing the request body.
Learn how to use the requests library in part 2 to post a user’s email and status to the Milchan API, including required parameters, headers, and a success callback.
Install and configure express-session with connect-mongo and express-flash to store sessions in mongo data store, render flash messages on the home page to confirm subscription, and finalize the newsletter workflow.
Build a real-time twitter-inspired web app with a landing page, sign up and log in flows, a live tweet feed, and profile pages showing followers, following, and follow actions.
Set up and run a Node.js server by creating a Twitter directory, initializing npm, installing express, body-parser, mongoose, and express-handlebars, then configure and test.
Set up a home route with express router to render a handlebars landing page. Create views and a layout, serve public assets via CDN, and test the page.
Organize web templates with a reusable layout and partials, breaking the nav bar and body into handlebars components to enforce dry principles and flexible page inheritance.
Learn to create the first user model with mongoose by defining a user schema with email, name, password, photo, and tweets, and export it for use in routes.
Connect the node.js app to a new mongo db, create a users object with a mongoose model, and implement a route to create users (email, password) with a json response.
Extend the user model to encrypt passwords with a salted hash using crypto, and add a gravatar-like avatar generator tied to email for a default 200px image.
Develop authentication feature part 2 by implementing a password comparison for login, validating a user-entered password against the encrypted database password using a secure algorithm.
Configure express session with a persistent store using connect-mongo and a secret, then enable express-flash messages to display errors or successes across routes for authentication.
Develops a signup route using express router and mongoose to create a user with name, email, password, and photo, checks for existing emails with flash messages and redirects to home.
Develop secure login with passport local by configuring express, sessions and cookies, defining a login route and page, and implementing serialise user and session retrieval functions with flash support.
Develop the real-time tweet interface by setting up the home layout, adding input fields and a post button, populating with dummy data, and applying a css file for styling.
Learn how socket.io enables real-time bidirectional communication between web clients and a Node.js server, via a client and server library with a unified API, enabling real-time messaging.
Configure socket.io on the server, switch from express to a compatible setup, and test real time client connections across browsers.
Learn to authenticate users with socket.io using passport in real time. Configure cookie options, a secret, and a session store; implement login and signup handlers.
Create a tweet model with mongoose for real-time posting, defining an owner as a user objectId reference, a tweet content field, and an auto-generated creation date, then export the schema.
Build a real time tweeting feature by emitting messages from the front end to the server and listening on a tweet channel, wiring front end and back end in sync.
Receive real-time tweets by listening for incoming messages, broadcast to all connected clients including the sender, and render tweets with user data in the interface.
Save real-time tweets to the database while emitting updates, using parallel and waterfall from the async library. Save tweet then update the user's tweets with the tweet ID.
Render real-time tweets on the home page using handlebars loops, populate owner details with mongoose, and sort by creation date to ensure consistent order.
Build a user profile route that displays a user's tweets along with following and follower counts. Wire the user model and tweets and followers data in a sequential waterfall workflow.
Create a complete user profile with a top bar and tweets, following, and followers tabs using a user.hbs view and bootstrap pills.
Create a follow route that updates both the current user's following and the target user's followers in parallel, avoiding duplicates and returning a success response via AJAX.
Master building a follow feature with ajax calls, posting to the server, and updating the follow button in real time without a page refresh.
Resolve follow bugs by hiding the follow button when the current user views their own profile and show following for existing followers, enabling instant updates on a local host.
Implement the unfollow feature for a realtime app, update the follow button color, and ensure state changes refresh. Test frontend interactions and follower updates, then prepare for deployment to heroku.
Build a complete marketplace website for buying and selling digital services, featuring real-time search, product pages, checkout with promo code, seller chat, and order management.
Learn to create a new database on Mongolab by logging in, creating the database, and adding a new user, as preparation for the mobile web deployment.
clone a project starter from a git repository, install dependencies, configure the database and secret, start the server, and test sign up, login, and profile while preparing for gigs.
Create a gig schema in a Node.js project by defining fields such as owner (object id), title, category, price, and picture, plus created date, and export the schema for reuse.
Build a new gig route and page by creating a route file, rendering the gig page under the main folder, and adding a navigation button to add a new route.
Create a new gig route using the GET method, render a form for name, price, category, and description, and prepare for posting data to the database in the next lecture.
Add a new gig via a POST route by creating and saving a gig object to the database, then updating the user's gigs and redirecting to the my gigs page.
Learn to create a table list of the current user's geeks and render the table on the home page using frontend code and Bootstrap.
Render data on the home page by fetching all geeks from the database, display their images, titles, and prices, and wire up the home route so users see the listings.
Create a single gig route and detail page that fetches by id, populates the owner data, and renders name, image, price, and a proceed to order button.
Create an order summary page with a new route and session-based total price, calculate subtotal, fee, and tax, and prepare for a Stripe-based payment route.
Set up a Stripe payment route with a get route and Handlebars checkout, integrate Stripe elements, and post the token to the server to process charges.
Create a post route to receive payments with stripe, creating a customer and charging with a token. Multiply amount by 100 and test with stripe keys before production.
Create an order schema to store buyer, seller, and chat messages using mongoose, referencing user IDs and a message structure, laying the groundwork for real-time transactions in the app.
Wire the order route and order schema to enable buyer-seller chat, session-backed order handling, and redirected chat pages for real-time interactions.
Develop a seller and buyer order list page that enables easy navigation to the chat page, with routes for seller and buyer orders and linked chat functionality.
Configure socket.io and access session to enable real-time, one-on-one chats between buyers and sellers using a unique session ID to form private chat rooms.
Build a real-time one-on-one chat by sending messages through a socket, joining chat rooms, and emitting validated messages from front end to back end, with message bubbles aligned by sender.
Structure a message schema with an owner reference and content, export the schema, and save chat messages to the database in real time to ensure persistence after refreshes.
Render chat messages by deeply populating owner data with mongoose, implement handlebars helpers for equality, and conditionally display messages on the right or left to reflect the current user.
Learn to implement a promo code API with a mongoose promo code schema, coupon creation, and client-side AJAX to apply discounts and update the total price in real time.
Learn to implement a real-time search feature by syncing data to an Algolia index using application ID and API key, with title and owner fields for instant search.
Learn how to add a real-time autocomplete search input in the navigation bar, enable instant frontend search with sample data and API keys, and wire results to detail pages.
Add a basic real-time search to your Node.js app by creating a new search route with GET and POST, passing a query, and rendering results with mongoose-backed data.
Builds a cart feature by creating a backend route to add items to a user's cart, upgrading the data model, and returning a json message after ajax updates.
Add a shopping cart icon to the service detail and the nav bar, set up IDs for JavaScript targeting, and prepare the cart state for the upcoming AJAX add-to-cart flow.
Develop an ajax-based add-to-cart feature that reads and validates the item quantity, posts data to the server, increments the cart count, and displays a success indicator.
Create a route to display cart items, populate the cart for the current user, sum item prices, add a $3.50 fee, and store the total in a session for checkout.
Render cart items on the Handlebars file by building a cart class, wiring views, and displaying item details, prices, and the subtotal and total with checkout.
Develop the remove item from cart api to let users decide at checkout, update the cart and total price, and finalize with a callback-driven ajax flow.
Learn to remove an item from the cart with AJAX, update subtotal and total in real time, fix duplicate IDs, and clear the cart when totals reach zero.
Implement a cart payment route to pay for all items in the cart, create orders, and empty the cart after checkout using a map-based flow, with Stripe testing.
Configure Facebook login for both back end and front end by creating a Facebook developer app, securing the App ID and secret, and adding a website platform with localhost.
Configure passport-facebook in the backend to enable social authentication, creating or finding users by Facebook id, and mapping profile details (name, email, photo) to a user object.
Enable Facebook login with passport-facebook on the frontend by adding a Facebook button, configuring scope=email, callback handling, success and failure redirects, and styling with Bootstrap Social.
Learn to implement Google login by using the Google Developer Console to create a project, enable the API, and generate a client ID and client secret.
Discover how to implement Google social authentication with Passport Google in a Node.js app, configure the Google strategy and client id/secret, and add a Google sign-in flow.
Update your profile feature demonstrates updating user information via a post request, locating the user, conditionally updating fields, saving, and redirecting with a success message.
Set up an Amazon Web Services account to store media with S3, create a bucket, and configure permissions and IAM access keys for your app.
Have you ever wondering on how to build your next marketplace Web application?
This course will teach you step by step on how to clone an Fiverr website with the latest cutting edge technology and that is Node.js
You will use Javascript on both the backend and frontend of the web application.
Live is too short to depend on someone else, if you are still waiting for that one amazing technical co-founder to help you on building your web app, then I suggest you instead of waiting , its better for you to do it yourself.
Every code that will be written by me, will be explained in details. So you do not need to worry about not understanding certain algorithm.
If you are ready to embark on this journey on building an marketplace web application, then what are you waiting for? Lets get into it!
0. Foundations
1. MVP website - Newsletter
2. Real-Time website - Twitter
3. Marketplace website - Fiverr