7 amazing Node JS project ideas for beginners, to practice your skill and get hired

Duomly - Jul 3 '20 - - Dev Community

This article was originally published at https://www.blog.duomly.com/node-js-project-ideas-for-beginners/


Intro to Node JS project ideas for beginners

In this article, I’d like to tell you about 7 Node JS project ideas that will help you train your skills, build an impressive portfolio, and get hired. 

For some time, I’m publishing the lists of projects that you can use to practice the coding skills that you’ve just learned. I was focusing mostly on frontend technologies, but today I decided to jump to the Javascript backend framework called Node JS.

If you’d like to check the previous project ideas, here are the links:

If you don’t feel comfortable with NodeJS and you’d like to practice a little more with the guidance, feel free to check out the youtube channel where we are creating the NodeJS application step by step.

When you start practicing coding and building your first projects, remember that it’s very important to create a repository for each of your projects so you will be able to learn git and show the code for your future employers. If you don’t remember how you can do it, here is the video about Git and Github.

And as always I have a video version of this article so, if you prefer to watch then ready, you can do it here.

So, are you ready to hear about 7 amazing Node JS project ideas for beginners to learn?

NodeJS project ideas - additional information

Node JS is a runtime environment that executes Javascript code out of the browser, and it’s commonly used to create backend using this programming language. Node JS is very often used with some additional frameworks like Express or Nest.js. 

Besides the Javascript knowledge to work with NodeJS, you need to understand how and why databases are used on the backend, and how to build an API, no matter if you want to build REST or GraphQL.

There are some additional frameworks that can be used in some cases and make the development in Node JS much easier and faster. It would be good if you could pay special attention to: 

Express.js  - is one of the most popular and the most often selected framework. Express.js is known as fast, flexible, and minimalistic. It’s suitable for building web and mobile applications. 

Nest.js - is another NodeJS framework that is great for developing progressive server-side applications, the code in Nest.js is written in Typescript.

Sequelize - it’s a generator framework, that helps us to work with NodeJS and databases. It supports MySQL, PostgreSQL, MariaDB, and some more.

Socket.io - it’s a special type of framework, as it focuses on building real-time apps like chats.  

Besides the frameworks, you’ll also need a tool to check the endpoints. I’m using Postman, but there are many others like Insomnia or HTTPie. 

I hope I’ve mentioned everything important in the Node JS context, so we can start our project ideas list!

1. Books Directory

The most basic project you can create using Node.js and Express.js or Nest.js is a simple REST API. 

For this purpose, I’d like to suggest you build a book directory, where you would need to create endpoints, using the four most basic methods: GET, POST, PUT and DELETE.

You’d use GET for getting all books or getting only one book by id. With the POST method, you can add a new book to the list. You’d need the PUT method for updating the existing book, and it’s evident that with the DELETE method, you will remove the book from the list. 

For this kind of application, you don’t have to use the database, and for the first app, you can start with data collected as a JSON file.

2. Basic Users System

Another application that you can do for training is a Basic User System. It’s a basic project, but it will help you to practice very useful skills because the user is a part of almost every application. 

In this example, you will learn:
 - how to set up the database and do migrations,
 - how to create a new user by the registration,
 - how to build login endpoint,
 - how to authenticate user,
 - how to get the user’s data.

In the case of registration and login, you should generate a JWT token for the user that will be returned from the API.

Besides that, remember to hash the password before you save it in the database.

If you’d like to look at how I was doing user registration, login, and authentication in our NodeJS Course.

3. Real-time Chat Application

Another exciting project that you could do to practice your Node JS skills is a real-time chat application. 

For this purpose, you could try using a MongoDB, Express.js framework, and scoket.io for real-time events. 

In the beginning, it's good to create a simple chat that will connect and disconnect users, allow them to send and receive the messages, but in the future, it can be a great idea to grow the chat and add video streaming or login form.

If you need some help in starting your first real-time chat app, take a look at the SocketIO documentation. 

4. Collaborative Drawing App

The fourth project idea is a Collaborative Drawing App. It involves some frontend coding, but if you know Javascript, it shouldn't be a problem.

This application's main idea is to create the canvas element where users would be able t draw.

Let me tell you what's needed in this app. You need to start by setting the Node JS application with Socket.io installed.

Then you need to add some HTML to prepare a simple interface with canvas element for users to draw, and you can style it any way you'd like. Then you have to handle the mouse events that will be drawing. 

And the last thing is to create the server-side code, where you'd use the Socket.io to check when new users join and when they start drawing. 

5. Email Sender

The next idea for the project in Node JS you can create is an Email Sender App. During this project, you can learn how to send emails in Node JS and how to schedule emails. And that's really useful for the future, as many of the applications need this feature, for example, when a new user logs in.

For sending emails easily, you could use the Nodemailer plugin, which is quite easy and well documented. 

In some time, you can add a frontend and easily create emails with HTML. 

6. Video Streaming Platform

Project number six can be quite exciting and a bit more challenging because I'd like to suggest building a Video Streaming Platform.

In this project, you have to take care of dividing the video content for the chunks to not send all to the frontend at once, and that's what should happen in the Node JS. 

Also, you would need to write some HTML5 to create a video player, and some Javascript on frontend to handle player buttons. 

This project can be really eye-catching and could help you to get a job.

7. Web Scraper 

The last project idea for Node JS I've got today is a web scraper. If you'd like to collect certain data from the internet, creating your own web scraper can be a great idea. 

For this application, some plugins like Cheerio or Puppeteer could be useful. 

In this kind of application, you'd need to get interesting information from the website code, and then save it to the file or the database.

Conclusion

In this article, I suggested 7 Node JS project ideas, which you can do to practice your Node JS skills and build a coding portfolio that you could show to recruiters or your future employer. 

I hope you'll find his ideas useful and start working on progressing your Node JS knowledge. 

If you still need some guidance with building Node JS projects, feel free to jump to our course, where we are creating a fin-tech application step by step.

Duomly - Programming Online Courses

Thank you for reading,
Anna from Duomly

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .