Soundboard

Soundboard - Keep your favorite sounds at hand.

Type of project

Full Stack

Technologies

Next.js

Node.js

Express.js

MongoDB

Multer

Passport.js

JSON Web Token

bCrypt

Year

2021

Soundboard is a full stack application that allows users to create their own soundboards where they can add their favorite sounds. The application is built with Next.js on the frontend and Node.js, Express.js, and MongoDB on the backend. The frontend and backend are connected using REST API. After entering the application, if the user is not logged in, then they'll be redirected to the login page.

soundboard

The login and sign up process is handled by Passport.js. It does the authentication and returns a JSON Web Token to the client. The token is stored in the local storage of the browser and is used to authenticate the user on the server side. The backend handles login errors and redirects the user to the dashboard if the login is successful.

soundboard

If the user doesn't have an account, then they can go to the register page and create an account. After creating an account, the server will hash the password and store it in the database. After that, Passport.js will authenticate the user and generate a JSON Web Token. The server will then send back a JSON Web Token to the client and redirect them to their dashboard. Registration errors are handled by the server and the client is notified.

soundboard

The registration process requires an unique username, name and password. The Registration errors are handled by the server and the client is notified.

soundboard

The dashboard is the main page of the application. It shows all the sounds added by users. The user can add a new sound by clicking on the 'Add a sound' button. They can add up to 10 sounds and play them with keys from 0 to 9 on the keyboard. The 'Add a sound' button will be disabled once all the 10 sounds are added. The logout button will log the user out and redirect them to the login page. It also deletes the token from the local storage.

soundboard

After clicking the 'Add a sound' button, the user will be redirected to the add sound page. They need to provide an audio file (MP3/WAV/OGG) and a name. Then they can either add the sound and cancel back to the dashboard. The audio file goes through multer middleware and is stored in the 'audios' folder. The name of the audio file is then stored in the database.

soundboard

Project Preview

Next Project

Studio Ghibli Movies