Skip to content

A web application developed in TypeScript, reworking the functionality of several audio hosting and sharing web pages, allowing users to upload their songs. Merely developed to exhibit my skills.

Notifications You must be signed in to change notification settings

Guidoow/AudioHost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn


Audio Host

A web application developed in TypeScript, reworking the functionality of several audio hosting and sharing web pages, allowing users to upload their songs.

View Demo

About The Project

The application is deployed using Docker, containerizing the backend, frontend, storage, and the server proxy, Nginx. More specifically, the application is written in TypeScript and powered by Node.js, utilizing NestJS for the backend, Svelte & Vite for the frontend, and MongoDB for data storage.

It emulates the functionality of briefly interacting with the content, such as giving likes or playing audio. Additionally, it emulates the sharing of a song, which involves uploading audio and image files that are sent to the server for storage and processing, similar to how a web application operates.

Built With

  • Docker
  • NGINX
  • NodeJS
  • NPM
  • Typescript
  • NestJS
  • MongoDB
  • Vite
  • Svelte
  • MUI3

Live demo

A live demo of this project is not available at this moment. This project may no longer be continued, but a video demonstration is available on YouTube:

GIF

Local reproducing

You can reproduce this project on your preferred server, of course. All you need is a Linux-based system and Docker.

First clone the project and install it with NPM:

cd backend && sudo npm install && sudo npm audit fix
cd ..
cd frontend && sudo npm install && sudo npm audit fix

You may need to update the '.env' file, assuming you have a local SSL certificate and key; otherwise, create them:

sudo openssl req -nodes -new -x509 -keyout private.key -out certificate.crt -days 365

Create a '.keyfile' required to authenticate our database (replica set) against unauthorized access:

sudo openssl rand -base64 756 > mongo/.keyfile
# and, to avoid permission projects while building and copying the file between the system (not recommended for production)
sudo chmod 400 mongo/.keyfile && sudo chown 999:999 mongo/.keyfile

Then build the build the docker containers:

docker compose up -d
# then run it
docker run $(docker ps -a -q)

Done, your project should be running at HTTPS!

License

Distributed under the MIT License.

Contact

Guido Moran - [email protected]

Project Link: https://github.com/guidoow/Audiohost

About

A web application developed in TypeScript, reworking the functionality of several audio hosting and sharing web pages, allowing users to upload their songs. Merely developed to exhibit my skills.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published