Tom RayTom Ray
Published on
Last updated:

Real Estate Project: File Uploads & Queues - 22nd September 2023

Hope you're doing great ๐Ÿ‘‹!

Another 2 weeks have gone by and a lot of progress has been made on the course I'm building - how to learn NestJS by building real-world projects.

Still planning to launch in November 2023.

Here's an update on the launch of the course:

๐Ÿ‹๏ธ What have I been working on the last 2 weeks?

I've been working on a new project in the course that is a simple real estate API that includes file uploads and sending jobs to a queue for processing.

Specifically, it covers:

  • Handling and validating file uploads in HTTP requests
  • Setting up and configuring Bull (the queuing package used in NestJS)
  • Sending files to a queue as jobs
  • Processing the jobs in the background
  • Viewing the queue jobs in a visual UI
  • Using Google Cloud Storage to store the files, storing the public url in the database
  • Doing unit and integration tests on the jobs

๐Ÿš€ What projects will be included in the course?

The course will be project-based. Here are the projects that are in progress and will be included in the course:

๐ŸŒˆ The NestJS Lifecycle

โ€‹NestJS contains a lot of cool features and functionality, like Pipes, Guards, Interceptors & Exception Filters (and more!) and has a lifecycle that interacts with these different features. I want to include a project that covers these concepts so you know enough to be dangerous. After this project, you'll have a good mental model of which NestJS features solve specific problems so you can make the most of the framework when you're working on real projects.

๐Ÿชด The Ultimate NestJS Starter Repo

โ€‹The goal is to create a NestJS starter repo (we'll actually make 2 repos, 1 for standalone NestJS apps and 1 for monorepo) that prioritises an amazing developer experience, as well as adding some configuration that'll be useful across many projects, like handling env variables, cache, docker compose local setup, e2e testing config setup and more!

๐Ÿ•ธ๏ธ URL shortener API

โ€‹In this project, we'll build a url shortening tool like the functionality shown here. You will be able to pass in a url and get back a shortened url that you can use (that will redirect to the original url you passed in). We'll be building out a Rest API with full CRUD functionality, API key based authentication, persisting to a database, unit and e2e testing, and more! The aim of this project is to cover 80% of the NestJS features that youโ€™ll use in a real-world API project and give you a strong NestJS foundation for the remaining projects.

๐Ÿก Real estate API (working with queues)

โ€‹Read above as this is what I've been working on the last 2 weeks!

I'm really happy with the projects that are included so far - they provide a really solid foundation on NestJS and are starting to go into some more advanced territories.

I'll be announcing more projects in the weeks ahead that'll go into more advanced topics like authentication, authorization, websockets, working in a monorepo and more!

As mentioned previously, all projects will include testing (unit, integration & end-to-end) and deployment ๐Ÿ™ƒ.

โœ… Next steps:

Iโ€™m going to continue building this course in public, sharing updates with you every 2 weeks to keep you in the loop on my progress. Here are some of my next to-do items to work through:

  • I've not quite finished the Real estate project yet. So I'm planning to finish that in the next week
  • Start working on the next project. I'm excited about the next project. It will be a Sass app (a monorepo with auth, sessions and more) - I'll share the full details next week!
  • Keep making small daily progress. Similar to my tutorials, I'm prioritising quality of the material and really trying to explain concepts from first principles (which takes a lot of time!). But with daily action I am making good progress.

Is there anything else you'd like to know from these updates Let me know by replying to any of the emails I send you, I'd love to hear from you! โœŒ๏ธ.