/streamify

Tune in. Vibe out

Primary LanguageTypeScript

alt text

Tune in. Vibe out. Welcome to the next-generation audio streaming platform that lets you discover, stream, and enjoy music like never before. This app provides seamless access to a massive library of songs, podcasts, and live audio content with a focus on user experience, high-quality sound, and personalized recommendations.

⚠️ Disclaimer

This project was built as a demo for an interview process and is not intended for production use. Feel free to copy, extend, or test it.

🛠️ Tech Stack

  • Backend: Node.js, NextJS, Prisma and SQLite
  • Frontend: TypeScript, React, NextJS, Next UI, ChartJS and TailwindCSS
  • Tests: Jest, Testing library and FakerJS
  • E2E tests: Playwright

Some facts

  • Logo created with AI at Logo
  • Sample data generated with AI using ChatGTP
  • Images picked from Spotify CDN



📦 Installation

  1. Clone the repository: git clone https://github.com/jubar/streamify.git
  2. Navigate to the project directory: cd streamify
  3. Install dependencies: npm install

You can now start the server in development mode. Since this is a demo project, and to make execution easier, the .env file and a copy of the database are provided. The local database can be found at /prisma/dev.db.

If you want to re-create the DB you need to execute the following commands:

$ npx prisma db push --force-reset

then in order to populate the DB, execute:

$ npx prisma db seed

👆 This command will take 30 seconds, depending on the machine, to complete because it creates 30k records in the database.



⚡️ Start the application in dev mode

Open a terminal and execute the following command:

$ npm run dev

Open a browser with the following URL http://localhost:3000 and you should see something like this:

alt text


🐙 Run tests

To run the tests, open a terminal and run the following command:

$ npm run test

A report of the test status will appear directly in the terminal.

Run E2E tests

We don’t have a dedicated testing environment or database, so we’ll use the development server. Playwright is configured to automatically start the server if it’s not already running.

To run E2E tests, open a terminal and run the following command:

$ npx playwright test

A report of the test status will appear directly in the terminal.


If you prefer to run the E2E tests in UI mode execute the following command:
$ npx playwright test --ui

and you can see the test player like this:

alt text


📄 License

This project is licensed under the MIT License.