
Explore express as a minimal Node.js framework that sits on top of Node.js to simplify API creation and routing. See how it enables middleware, server-side rendering, and rapid deployment.
Install Node.js and VS Code, verify the node version, and set up tooling with extensions like Babel JavaScript, dot env, ESLint, Prettier, and material theme for back-end development.
Set up a basic node and express project by initializing an npm package, configuring package.json, creating src/app.js, installing express, and scaffolding a simple api.
Create your first api endpoint with express by importing express, creating an app, defining a get root route that returns hello world, and listening on port 3000.
Explore rest api architecture by designing resources, using http methods like get, post, put, patch, and delete, and building a versioned base url with api paths.
Create a tasks API by adding endpoints under api/v1/tasks, test them with Postman, and return JSON with status, results, data; learn API naming, versioning, and restarting the server after changes.
Configure nodemon to auto-restart your server on code changes by installing nodemon globally, adding a dev script in package.json, and running npm run dev with app.js as the entry.
Learn how to use URL parameters in a Node/Express setup. Use Postman to pass an ID and a destination, define optional parameters, and ensure correct type conversion for reliable routing.
Learn to implement a post request with express.js, using express.json middleware to read the body, create and save a new task, and return the updated tasks.
Explore batch patch requests to update a tax item by its ID, changing only the text field. Implement error handling for missing IDs and return the updated tax.
Learn how to implement a delete request in a Node Express API by deleting a resource by id, updating the route, and returning null data with a 200 status.
Explore the put request and its difference from patch, showing how put updates or creates a full object using the request body and id, with practical task updates.
Learn how to implement HTTP status codes in a Node.js Express API, including 200, 201, 204, 400, 401, 403, 404, and 500, with get and post examples.
Extract route handlers to a dedicated controller to clean up routing, organize code under src/controllers, and move get, create, update, and delete tax routes into an mvc architecture.
Learn to configure environment variables for development and production using a dot env file, read them via process.env, and switch environments like QA or UAT, including MongoDB credentials.
Explore MongoDB as a scalable NoSQL document database, featuring flexible querying and indexing, with collections and documents that map to tables and rows in relational databases.
Discover how mongoose acts as an ODM for MongoDB and Node.js, providing schemas, models, data validation, queries, and middleware to simplify deployment.
Create a MongoDB Atlas cluster, configure a free trial, and set up a database with a user and admin role, then enable IP access and prepare the connection details.
Connect to MongoDB by retrieving the connection string from the overview, replacing the password and user, installing mongoose, and wiring the connection in app.js with an env string.
Create a talks model using a mongoose schema with fields text (string, required, unique), day (date), and reminder (boolean, required), and enable timestamps to auto-manage created and updated dates.
Learn to create a new MongoDB document using a Mongoose model by taking the request body, calling model.create, and awaiting the result, while addressing timestamp schema issues.
Discover how mongoose automatically adds an id field to documents as an objectId, and how you can override the id type if needed, with string, date, and boolean examples.
Fetch all tax documents from the tax collection via the api using Postman and Mongoose find with an empty filter, then exclude a field with a select query.
Learn to retrieve a single MongoDB document by its id using findById or findOne, wiring async/await in Node with Express and testing via postman.
Find a document by id, update its fields (such as tax) with findOneAndUpdate, and return the updated document using the new option.
Learn to delete a MongoDB document by id using the find one and delete command, including find by id and delete, with async/await and a no-content response.
Explore error handling in Node.js and Express.js, distinguishing programming errors from operational errors, with examples like missing properties and failed database connections, and build an error handling middleware.
Handle unhandled routes in express by adding a catch-all app.all middleware that returns a json 404 not found message, including original url, for all get, post, put, and delete requests.
Implement an express error handling middleware using app.use and next, derive status from error.status or default to 500, and respond with a JSON object containing status and message.
Implement try-catch blocks in the tax controller to catch errors and return JSON responses with appropriate status codes for not found, bad request, and internal server errors in MongoDB operations.
Create a reusable custom error class in the util folder that extends Error, accepts a message and status code, and integrates with centralized error handling.
Refactor asynchronous error handling with a catch-async utility to wrap async controllers, forwarding errors to the Express next middleware, resulting in cleaner, readable code.
Implement a global error handler in Node.js Express to show stack traces in development and safe messages in production, using environment checks and operational vs programming errors.
Implement custom error messages for production server by refactoring the global error handler to generate user-friendly messages for cast errors, such as invalid path, and set appropriate status codes.
Learn to debug a Node.js app with VS Code by setting breakpoints, configuring launch.json, and running dev and prod servers; inspect variables and step through code.
Learn how express middleware handles the request and response cycle, parses JSON bodies, and chains multiple middleware with next in a defined stack for security, logging, and authorization.
Create and use custom middleware in an Express app, access request data with express json, and control the request-response cycle with next, applied to all routes.
Learn how to add third-party middleware in express using Morgan, including installation, import, and applying it with app.use to log request and response data in predefined formats.
Configure Vercel with Express.js by creating vercel.json, routing to the api folder via index.ts that imports and exports the app, and adding a public folder, then commit and push.
Configure and deploy your api on Vercel by linking GitHub, setting env variables, and importing the project, then verify the hello world domain and ready api for Postman.
Configure a GitHub repository for the basic API. Initialize git, set gitignore for node_modules, .env, and .dvr, commit, set main, update readme, and push to remote origin.
learn to implement pagination for a get docs query by computing skip, total pages, and current page with default page 1 and limit 5, and returning the results.
Add a sort by created date in descending order to show the most recently created tax at the top, using minus one for descending and deploy to Vercel.
Create a Flutter project from the command line, update pubspec.yaml with Riverport, freezed, json_annotation, and go router, and use do for http, then open in VS code.
Configure a clear Flutter folder structure with core, common, and features, dividing data, domain, and presentation layers—API, DTO, repository, UI, state, and view model.
Explore Flutter app architecture with a UI layer, data layer, and optional domain layer, featuring unidirectional data flow, a single source of truth, and repositories managing data.
Understand unidirectional data flow from the UI event through the view model and repository to the API or local DB, with state updates from the single source of truth.
Set up a go router with Riverpod annotations to define an initial location and routes for home and create docs screens, generate the provider, and wire it into the app.
Wrap the main app with the provider scope from Riverpod to expose the go router provider and other providers throughout the app. Initialize Flutter binding and ensure providers are available.
Configure a Dio-based network service with Riverpod in Flutter, set base URL and timeouts, generate a Dio provider with Riverpod, and run build_runner to generate the code.
Build and expose the tax get API by wiring the docs API, defining a tax response DTO, mapping json to dto, and implementing robust try-catch error handling.
Create a function to get a single task by id, call the endpoint, and validate the docs response in Postman.
Learn to create a task API by posting a body via Postman, map the response to a dynamic map, and reuse existing task fields like id, created, and updated.
Learn to send a patch request to update a task via a dedicated endpoint. Supply the id and body, test with Postman, and review the response status and data.
Learn to implement a delete task api by sending a delete request with an id, handling a 204 no content response, and returning true or false with error handling.
Create a tax repository that uses the tax API to implement CRUD operations, including fetching all docs and a single tax, while wiring with riverpod providers for auto dispose.
Create a tax model in the domain layer by adapting the tax response and dto, removing unused fields, and using freezed to manage a paginated list of tax items.
Develop a date formatter use case in the domain layer, using the intl package to format date and time, and expose it via a provider for use across use cases.
Develop the get tax use case to fetch and map tax data from the repository, format dates with a date formatter, and provide the use case via riverpod provider.
Implement the get tax use case to fetch a single tax from the repository, map it to the tax model, and handle nulls and date formatting using a provider.
Implement a create docs use case by wiring the docs repository and date time formatter, handling body maps with error retries, and mapping responses to the internal docs model.
Learn how to implement the update docs use case with dependency injection, a date formatter, and a tax repository, including response mapping, a reusable mapper function, and the dry principle.
Develop and implement delete docs use case by wiring a docs repository, returning a boolean through a try catch flow, exposing it via an auto dispose provider for Flutter app.
Create a map docs use case and map tax use case. Extract a tax item dto, apply a date formatter, and wire dependency injection via map docs use case provider.
manage the presentation layer state with freezed data classes for tasks, including async loading, is deleting, created and updated flags, and pagination with page, limit, and total.
Create a task view model with riverpod code generation to manage tax data via form data, implementing crud operations (get all, get one, create, update, delete) and async state handling.
Explore building a dynamic task list UI in Flutter, loading tasks via an API, displaying them in a list with cards and list tiles, and handling loading and error states.
Create a Flutter task UI with a form, text input, day and reminder fields, date and time pickers, and a save action that validates and submits via the view model.
Listen to the create task state and display a loading overlay during creation, handle success or error, and invalidate and refresh docs via the API.
update the task UI by cloning the create screen, fetch a single task by id from the api, update it, and show a toast before navigating back.
Implement swipe-to-delete in a flutter app using a Dismissible widget with a unique key, 70% threshold, confirmation dialog, and a success toast.
Embark on an exciting journey into the world of full stack development with our comprehensive course on Full Stack Development with Flutter, Node.js, Express, and MongoDB. This course is designed to equip you with the skills and knowledge needed to build robust, scalable, and dynamic web and mobile applications from scratch.
Throughout this course, you will dive deep into the intricacies of Flutter, Google's UI toolkit for crafting natively compiled applications for mobile, web, and desktop from a single codebase. You will learn how to create stunning, responsive user interfaces and seamlessly integrate them with back-end services.
The back-end development portion of the course focuses on Node.js, a powerful JavaScript runtime built on Chrome's V8 engine. You will gain expertise in building fast, scalable server-side applications using Node.js and the Express framework. Express will streamline your development process, enabling you to create RESTful APIs and manage server-side logic with ease.
Data management and persistence are crucial components of any full stack application. This course introduces you to MongoDB, a flexible, document-oriented NoSQL database. You will learn how to design efficient database schemas, perform CRUD operations, and leverage MongoDB's powerful querying capabilities to manage your application data effectively.