This is an api for the Reasonable Productivity system built with the Django REST Framework.
- Clone this repo
- cd into this repo
- Create a python virtual environment:
python -m venv venv
- Activate virutal environment:
source venv/bin/activate
pip install -r requirements.txt
python manage.py runserver
Task
- user_id: ForeinKey
- title: required
- description: default=''
- completed: boolean
- due_date: nullable
- created_at
- updated_at
Tag
- text: CharField(max_length=25)
- color: CharField(max_length=6)
- many to many relationship with Task
List
- user_id
- name
- created_at
- updated_at
ListItem
- list_id
- text
- created_at
- updated_at
User
- email (unique, used for login)
- password
UserProfile
- user_id
- first_name
- last_name
- image
- fb_profile
- twitter_profile
- linkedin_profile
- website
Project
- user_id
- title
- description
- created_at
- updated_at
- due_date (for version 2)
/users
- GET
- POST
/users/:id
- GET
- PATCH
- DELETE
/users/:id/tasks
- GET
- POST
/users/:id/tasks/:task_id
- GET
- PATCH
- DELETE
/users/:id/lists
- GET
- POST
/users/:id/lists/:list_id
- GET
- PATCH
- DELETE
/users/:id/lists/:list_id/list-items
- POST
/users/:id/list-items/:item_id
- PATCH
- DELETE
/tasks
- GET
/tasks/:id
- GET
- Auth endpoints
- Login
- Update password, forgot password
- Add searching, sorting, filtering for tasks and lists
- Recurring Tasks
- recurring: Boolean, default=False
- recurring_time: nullable
- recurring_frequency: daily, weekly, monthly, yearly
- recurring_custom: (based off of recurring frequency option, user can choose specific days/weeks, etc.)
- Reminders
- Nested & Dependant Tasks
- Back-end: tasks should be able to be marked as dependant and sub-tasks
- Front-end: Users can drag tasks to be nested under other tasks, they can also
- Calendar View
- Contact integration for tasks: Users can sync with contacts
- Markdown enabled in task descriptions
- Calendar Integrations