This API enables developers to create applications that provide song recommendations based on genre. It manages non-user specific data, including artists, their songs, and the associated genre for each song.
Let's make millions! 💰 💰 💰
- Clone the template repository.
- Navigate to the created directory using
cd
. - Activate the Pipenv environment with
pipenv shell
. - Install the dependencies using
pipenv install
. - Open the project in Visual Studio Code.
- Ensure that the correct interpreter is selected.
- Implement the code.
These are all the available routes for this API. Each route has an associated ticket containing the following information:
- Route description
- Request structure:
- HTTP method.
- Route path.
- JSON body (if applicable).
- Response structure:
- JSON body (if applicable).
- Status code.
- Create a Song
- Delete a Song
- Update a Song
- View a List of all the Songs
- Details view of a single Song and its associated genres and artist details
- Create an Artist
- Delete an Artist
- Update an Artist
- View a List of all the Artists
- Details view of a single Artist and the songs associated with them
- Create a Genre
- Delete a Genre
- Update a Genre
- View a List of all the Genres
- Details view of a single Genre and the songs associated with it
These are examples of stretch goals that you can tackle once you have been MVP approved for the above features!
- Plan and Build the Frontend for the MVP routes
- Popular genres: Retrieve a list of genres based on the number of associated songs
- Related artists: Retrieve artists with similar genres
- Search songs by genre
- Search artists by genre
- Search all entities by (name/title/description)
To include the specific instructions for seeking help, you can update the "Seeking Help and Clarification" section as follows:
This repository includes tests that you can use to assess your code against the MVP (Minimum Viable Product) requirements. You can run these tests by following the instructions below:
-
Open your terminal or command prompt.
-
Navigate to the project's root directory.
-
Run the following command to execute the tests:
python manage.py test
-
The results of the tests will be displayed in the terminal. Use your debugging skills to interpret the test results.
-
If you have any questions or encounter issues with the tests, feel free to create a discussion ticket to seek help and clarification.
We have also set up pytest for testing purposes. However, please be aware that there might be compatibility issues with VSCode that could prevent pytest from working correctly. If you encounter any problems with pytest, please follow the steps below:
-
Attempt to run the tests using pytest by running the following command:
pytest
-
If pytest works as expected, you can use it for testing. However, if you encounter any issues, follow the alternative method using
python manage.py test
as described above.
By following these instructions, you can effectively test your code against the MVP requirements and seek assistance if needed.
To check the results of your tests on GitHub within your Pull Request (PR), follow these steps:
- Create Your Pull Request (PR): After completing your assignment, submit it by creating a PR. Ensure that your changes are pushed to your repository.
- Visit the Pull Request Page: Go to your GitHub repository and click on the "Pull Requests" tab. You should find your PR listed there.
- Check the "Checks" Section: Open your PR and scroll down to the section that either says "All checks have failed" or "All checks have passed."
- Expand the Checks: If the checks are not already open, click on "show all checks" to reveal the details.
- Locate "GitHub Classroom Workflow": Among the checks, find the one labeled "GitHub Classroom Workflow." Click on the "Details" button next to it.
- Navigate to the Autograding Log: You'll be taken to a details view. Look for the log with "Autograding" in the title, and expand it to reveal more information.
- Inspect the Test Session: Scroll down within the expanded autograding log until you find the line that says "test session starts." From this point, you'll see a list of tests that either failed or succeeded.
- Review Test Results: Carefully review the test results to determine which tests passed and which ones failed. This information will help you assess the status of your code.
- Act on Test Failures: If any tests failed, use the information provided to understand the issues and make the necessary code adjustments. Remember that you can push new changes to your branch to trigger another test run.
- Merge Your PR: Once all tests pass, and you are satisfied with your code, proceed to merge your PR into the main branch.
By following these detailed steps, you'll be able to access and interpret the test results within your GitHub PR, making it easier to address any issues and ensure the successful submission of your assignment.
Here's how you can officially submit your assignment and complete the assessment:
- Confirm Passing Tests: Before proceeding, ensure that all the tests pass on your PR. You can check this following the steps in the Viewing Test Results on GitHub section above.
- Merge into Main: If all tests pass successfully, merge your PR into the main branch. This indicates that your code meets the MVP requirements and is ready for assessment.
- Instructor Review: Your instructor will carefully review your repo, assessing your code based on the project requirements, guidelines, and test runs.
- Wait for Instructor Feedback: Once your instructor has reviewed your code, they may provide feedback or let you know that your code meets the requirements. This feedback may come through direct messages (DMs) or celebratory messages on Slack, depending on your class's communication method.
- Assignment Completion: Your assignment is considered complete when the following conditions are met:
- All tests pass on the main branch.
- Your instructor has given you the thumbs up or indicated your code meets the requirements.
- Follow Additional Instructions: If your instructor provides any further instructions or asks for revisions, be sure to follow their guidance.
By following these steps, you'll be able to confidently submit your assignment, receive feedback from your instructor, and successfully complete the assessment process.
If you encounter challenges or need clarification during the assessment, follow these steps:
- Create a new discussion ticket in the GitHub Discussions repository, providing all the necessary details about your issue or question.
- Include a clear and concise description of the problem, along with any relevant code snippets, error messages, or logs.
- Specify the context of the problem, including the route or feature you are working on and any relevant dependencies.
- Once you have created the discussion ticket, post a link to it in the Help Thread within your cohort's designated communication channel (e.g., Slack).
- Be patient and allow time for the instructional team to review and respond to your ticket. They will provide guidance or clarification to help you move forward.
By following these steps, you can ensure that your questions and issues are properly documented and brought to the attention of the instructional team. This process helps streamline communication and allows the team to provide timely and targeted assistance to support your progress during the assessment.