๐ป Search & Automatic Deploys ๐ป
Posted on Aug 1st, 2022
Todayโs Topics
- Implementing search, including Postgres full-text search
๐ฏ Project due on Thursday afternoon
Please include a README in your project repo. The README should be:
- written in Markdown
- include a link to your production application
- shave instructions for getting your application running locally, so that any developer could pull it down and run it. If your setup makes any assumptions about the environment (e.g., you have Python 3.10.2 installed locally), you should state them in the README.
Your README should include documentation for your APIโs available endpoints.
๐ If your project meets minimum requirements today, HUZZAH! That is awesome. You should be working on at least one additional or spicy feature.
๐ If your project does not yet meet minimum requirements, you should aim for meeting them by the end of the day Wednesday.
Note
Depending on how youโve constructed your API, you might have separate endpoints for all of the below, or you might have fewer endpoints (for instance, if you nested answers in the question detail endpoint, like questions/4/answers
). What matters is that you have endpoints that your front-end team can use to perform all the necessary actions they need and that are documented in your README.
Requirements for QuestionBox, Back End
โ ๏ธ Be sure to test that you have implemented permissions-checking correctly for these endpoints. For example, your API should not allow a user who is not the question-asker to mark an answer as accepted.
- token login, logout, and register (i.e., create a new user)
- list all questions
- list answers to a specific question
- show details about a specific question
- create a question if logged in
- create an answer to a question (if you are not the question owner) if logged in
- mark an answer as โacceptedโ (if you are the question owner)
- list of own questions for an authenticated user
- list of own answers for an authenticated user
- star/favorite questions or answers
- unstar/unfavorite questions or answers
- search questions (possibly both questions and answers)
- A README with endpoints documented
Requirements for Social Cards, Back End
โ ๏ธ Be sure to test that you have implemented permissions-checking correctly for these endpoints. For example, your API should not allow a user who is not the creator of a card to update a card.
- token login, logout, and register (i.e., create a new user)
- list all cards
- list all cards youโve created (you, the logged in user)
- list all cards that a user you follow has created
- show details of one card
- create a new card
- update a card
- delete a card
- follow another user
- unfollow another user
- list all the users you follow
- A README with endpoints documented
๐ Read | ๐บ Watch | ๐ง Listen
- ๐ Basic and Full-Text Search with Django and Postgres
- ๐ If you want A LOT more detail about full-text search in Postgres and Django, this blog piece has you covered
- ๐ Blog post with more on full-text search
- ๐บ Search from the Ground Up -> Will Vincent talk at DjangoCon 2019 explaining search in detail
- ๐บ Pretty Printed: How to Perform Full Text Searches in Django with Postgres
๐ Resources
@action
decorator in ViewSets
- DRF Docs: Marking extra actions for routing with the
@action
decorator - DRF Docs: Routing for extra actions
Filtering and search
- DRF - Filtering -> Pretty useful reference. Includes how to filter your output based on GET parameters, which you will want to do for using search terms.
- Django Docs: full-text search & the search lookup
- Django Docs: SearchVector -> Youโll need this if you want to search against more than a single field
๐ฆ Code & Notes
- DRF Library API
- Notes on Django Queries These are the same notes you may have seen at the beginning of the Phase. Iโm including them here for easy reference, as they show examples of queries and filters that might come in handy for search endpoints.