A web app that allows users to link their Spotify, Youtube Music, and Apple Music accounts in order to get the best options available when it comes to streaming, favoriting, and playlist-making.
Once you have the repo on your local machine, install dependencies with npm install
or npm install --save
. You'll also need a .env file, with host name, a rapid api key subscribed to musicapi13, and a path to your database, preferably PostgreSQL. With those set up, run npm run dev
in your command line, and navigate to localhost. You should see the app up and running.
Node Package Manager needs to be installed for npm install
and npm run dev
to work.
Fork or clone the repo to your local machine.
In the command prompt, navigate to the directory you'd like to install in.
git clone https://github.com/CS386Team6/LilyPad.git
Install the necessary dependencies for the project
Navigate inside the new folder you just made:
cd LilyPad
Run the install command:
npm install
or npm install --save
Set up your .env file.
Create a new file named .env or .env.development:
touch .env
or touch .env.development
Open the file with your favorite text editor:
vim .env
or code .env
Create three environment variables, one for the database url, one for the rapid api key, one for the host:
`DATABASE_URL="{YOUR-DATABASE-URL-HERE}"
NEXT_PUBLIC_RAPID_API_KEY="{YOUR-RAPID-API-KEY-HERE}"
NEXT_PUBLIC_HOST=http://localhost:3000`
Set up your database schema by running:
npx prisma init
and follow the steps.
Run the local instance of the app on your local host by running the command:
npm run dev
in your command line.
Navigate to http:localhost:3000 and see the live webpage.
You can create an account from the home page, start creating your own playlists, or poke around in the pages folder to add your own features.
If you've run npm install
already, opening the testing software with Cypress should work by running the command npm run cypress
. This will bring up a window to let you select between component tests and end-to-end tests. A couple are included in the repo.
Cypress's browser will provide a choice to perform end-to-end (e2e) tests or component tests. For best functionality, we have found that e2e testing ensures that the test environent doesn't break when the page redirects. Right now, there are two e2e tests implemented. One simulates the experience of a new user joining LilyPad, with creation of accounts, playlists, and searching.
The other e2e test that exists already is a simulation of a returning user logging in, and then making a search with the provided feature.
The coding style tests are significantly less robust. Since Cypress's component testing only deals with a single module at a time, and many components redirect to others as part of their funcitonality, the Cypress component tests can really only effectively test input.
You'll need a host and a server to deploy this app, but pretty much anything will do. The current deployment is done with Vercel.
- Next.JS - The web framework used
- Prisma - Database Management
- MusicApi - Powers search engine feature
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Nathan Seitz - NathanSeitz
- Rino De Guzman - Rino-DG
- Gannon Rowlan - gannonrowlan
- Alan Hakala - AlanHakalaDev
- Isaac Faulkner - iwf2
- Vamshi Vavilla - vv482
See also the list of contributors who participated in this project.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details
- Ana Paula Chaves Steinmacher, Professor for this CS386 Project.