Django REST Framework
Budget: $30 – $250 USD
# Task 1: Basic API Creation
1. Create an API endpoints /notes/ where users can create, list, fetch, edit and delete notes.
1. The note data model should contain user (author), text, and attachments (multiple files per note).
2. The note can only be created by an authenticated user.
1. The API should use token authentication specified in the HTTP header.
3. The notes can be filtered by the user and searchable by text.
4. Notes can be viewed publicly but only the author can edit or delete them.
**Requirements:**
- Django REST Framework as API Framework
- PostgreSQL as data storage
- Commit the code in Github/Gitlab
# Task 2.1: Third-Party Integration
1. Using the same project as Task 1, create a new API endpoint/notion_notes/ where the users can create a note and save it in a Notion database.
2. Create a new API endpoint where users can authorize access to the Notion account and specify which Notion database to use to store notes data.
# Task 2.2 Background Task Creation
1. Extend the Note model to include a reminder DateTime field.
2. Once the set reminder DateTime is reached, send an email to the user.
**Requirements:**
- Django-Celery for background task.
- Redis as Celery broker.
- Amazon SES (free tier) for sending the email.
1. Create an API endpoints /notes/ where users can create, list, fetch, edit and delete notes.
1. The note data model should contain user (author), text, and attachments (multiple files per note).
2. The note can only be created by an authenticated user.
1. The API should use token authentication specified in the HTTP header.
3. The notes can be filtered by the user and searchable by text.
4. Notes can be viewed publicly but only the author can edit or delete them.
**Requirements:**
- Django REST Framework as API Framework
- PostgreSQL as data storage
- Commit the code in Github/Gitlab
# Task 2.1: Third-Party Integration
1. Using the same project as Task 1, create a new API endpoint/notion_notes/ where the users can create a note and save it in a Notion database.
2. Create a new API endpoint where users can authorize access to the Notion account and specify which Notion database to use to store notes data.
# Task 2.2 Background Task Creation
1. Extend the Note model to include a reminder DateTime field.
2. Once the set reminder DateTime is reached, send an email to the user.
**Requirements:**
- Django-Celery for background task.
- Redis as Celery broker.
- Amazon SES (free tier) for sending the email.