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! 💰 💰 💰
Follow these steps to complete the assessment:
-
Start by cloning the template repository to your local machine.
- Use this link to copy over the template to your GitHub profile: GitHub Template Link
-
Once you have cloned the repository, navigate to the project directory using the command line.
- Use the
cd
command to change to the project directory.
- Use the
-
Activate the Pipenv environment to ensure you are using the correct dependencies.
- Run the command
pipenv shell
to activate the Pipenv environment.
- Run the command
-
Install the necessary dependencies for the project.
- Use the command
pipenv install
to install the required dependencies.
- Use the command
-
Open the project in your preferred code editor (e.g., Visual Studio Code) to start working on the implementation.
-
Study the provided Entity Relationship Diagram (ERD) to understand the data structure and relationships between entities.
- You can find the ERD here.
-
Plan the construction of the API based on the MVP requirements and the information provided in this Readme.
- Make sure you understand the expected functionality and any constraints.
-
Implement the specified MVP features, following the guidelines and examples provided in this Readme.
- Refer to the Readme for detailed information on each route and its requirements.
-
Thoroughly test your API to ensure its functionality and reliability.
- Utilize appropriate testing methodologies and frameworks to validate your code.
-
Once you have completed the assessment, present your work to the instructional team.
- Provide all necessary documentation, including the link to your GitHub repository.
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
- Retrieve a list of popular genres based on the number of associated songs
- Retrieve artists with similar genres
- Search songs by genre
- Search artists by genre
- Implement a search functionality to search all entities by name, title, or description.
To understand the data structure and relationships between entities, refer to the Entity Relationship Diagram (ERD) provided here.
If you encounter any challenges during the assessment and need help or clarification, follow these steps:
- Create a discussion ticket in the NSS Evening Web Development Discussions repository.
- Include all the required information in the ticket, such as the problem you're facing and any relevant code or error messages.
- Post the ticket in the Help Thread in the cohort channel to seek assistance from your peers and instructors.
To ensure clean and well-structured code, consider the following tips and best practices:
- Follow the guidelines and examples provided in the Readme to maintain consistency in coding style and structure.
- Use meaningful variable and function names that accurately describe their purpose.
- Break down your code into smaller functions or modules to improve readability and maintainability.
- Implement error handling and data validation to ensure the API handles unexpected situations gracefully.
- Consider implementing security measures, such as authentication and authorization, based on the requirements of your application.
- If you're building the frontend for the MVP routes, follow best practices for organizing code, structuring endpoints, and managing state in your chosen frontend framework.
By adhering to these best practices, you can create a well-designed and efficient Django API that meets the specified requirements.
Remember, the purpose of this assessment is to showcase your Django competencies and demonstrate your ability to build a functional API. Good luck, and don't hesitate to seek help when needed!