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.
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.
- 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
- Clone the repository: git clone https://github.com/jubar/streamify.git
- Navigate to the project directory: cd streamify
- 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.
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:
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.
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:
This project is licensed under the MIT License.