Task Management API - Project Plan
Project Overview
This project aims to develop a Task Management API that allows users to efficiently manage their tasks. Users can create, update, and delete tasks, as well as mark them as complete or incomplete. The API will use Django ORM for database interactions and will be deployed on a cloud platform like Heroku or PythonAnywhere.
Features User Management: Users can sign up, log in, and manage their profiles. Task CRUD Operations: Users can create, read, update, and delete tasks. Task Status Management: Users can mark tasks as complete or incomplete. Authentication & Authorization: Secure access control for users. Deployment: The API will be deployed on Heroku or Python anywhere. API Endpoints User Endpoints: POST /API/register/ - User registration POST /API/login/ - User login GET /API/users/{id}/ - Get user details PUT /API/users/{id}/ - Update user profile DELETE /API/users/{id}/ - Delete user account
Task Endpoints: POST /API/tasks/ - Create a new task GET /API/tasks/ - Retrieve all tasks GET /API/tasks/{id}/ - Retrieve a specific task PUT /API/tasks/{id}/ - Update a task DELETE /API/tasks/{id}/ - Delete a task PATCH /API/tasks/{id}/complete/ - Mark task as complete PATCH /API/tasks/{id}/incomplete/ - Mark task as incomplete
Database Models User Model id: Auto-generated primary key username: Unique username email: User email password: Hashed password created_at: Timestamp Task Model id: Auto-generated primary key title: Task title description: Task details status: Boolean (Complete/Incomplete) user: ForeignKey to User model created_at: Timestamp updated_at: Timestamp
Project Timeline (5 Weeks) Week 1: Set up the Django project and initialize Git repository. Idea & Planning. Week 2: Implement User authentication and CRUD operations. Implement Task CRUD operations. Design Phase
Week 3: Implement task status management (Complete/Incomplete feature). Start Building Optimize database queries using Django ORM. Week 4: Continue Building Perform API testing with Postman. Add error handling and validation. Set up deployment configurations for Heroku/PythonAnywhere. Week 5: Deploy the API. Perform final testing and debugging. Document the API usage and deployment process.