Skip to content

An API for music recommendation that ranks songs according to users' votes. The API can then suggest songs based on their approval. It can also delete songs that are too disliked.

Notifications You must be signed in to change notification settings

vitorelourenco/sing-me-a-song

Repository files navigation

Sing Me A Song API

Sing Me A Song is a web api for music recommendation. This is a public API and it is currently deployed to heroku.

Live Demo

link

Routes

  • https://sing-me-a-song-vel.herokuapp.com/

  • GET /recommendations/random

  • GET /recommendations/top/$AMOUNT

  • GET /recommendations/genres/$ID/random

  • GET /genres

  • GET /genres/$ID/

  • POST /recommendations
    expects: {"name":"$NAME", "youtubeLink":"$LINK"}

  • POST /recommendations/$ID/upvote
    expects nothing

  • POST /recommendations/$ID/downvote
    expects nothing

  • POST /genres
    expects: {"name":"$NAME"}

Visual Database Structure

link

Built With

  • NodeJS , ExpressJS , TypeScript , PostgreSQL
  • Linux

Tested With

  • Jest, Supertest

Instalation

  • Install NodeJS, nvm and git
  • $ git clone https://github.com/vitorelourenco/sing-me-a-song.git
  • $ npm i
  • Create your psql dev database, there's a dump at /dump_database_example.sql (there's no sensitive information there)
  • Create your psql test database
  • Create your .env and .env.test files (there are examples at /.env.example /.env.test.example)

Test

  • $ npm run test

Run Dev Environment

  • $ npm run dev

Build

  • $ npm run build

Dependencies

  • All dependencies are listed in the package.json file.

Deploy

  • You can deploy this project on heroku like I did. There are plenty of tutorials online and it's free.

Author

👤 Vitor Emanuel Lourenco

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a ⭐️ if you like this project!

Acknowledgments

About

An API for music recommendation that ranks songs according to users' votes. The API can then suggest songs based on their approval. It can also delete songs that are too disliked.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages