This project involves creating a task management web application with a REST API using Django. The application allows multiple users to perform CRUD operations on tasks. It utilizes Django templates for rendering views, PostgreSQL for the database, and Django ORM for managing database relations. Development best practices, including virtual environments, environment variables, and Git, are followed.
- Python 3.x
- Django
- djangorestframework
- psycopg2
- python-dotenv
- Pillow
- PostgreSQL
git clone https://github.com/shamimhcp1/Task-Manager-with-REST-API
cd task-managerpython -m venv venvvenv/bin/activate
pip install -r requirements.txt
- Create a new database named "task_manager_db" (or any preferred name).
- Create a
.envfile in project root direcroty, Update the database configuration with your database credentials. (see the.env_examplefile.)
python manage.py makemigrationspython manage.py migrate
python manage.py createsuperuser
python manage.py runserver- Access the application at
http://127.0.0.1:8000/.
- task_manager/: Django project directory.
- tasks/: Django app directory.
- Registration
- Login
- Task Management: Create, view, update, delete tasks
- Task properties:
- Title, description, due date
- Multiple photos add/delete options
- Priority (Low, medium, high)
- Mark as complete
- Date time of creation
- Date time of last update
-
Search and Filter: Search tasks by title
-
Filter tasks by: Creation date, Due date, Priority, Completion status
- CRUD functionalities for all models in Admin
- Sort tasks by priority by default
- Database Relations
- Define appropriate relations between models, e.g., ForeignKey, ManyToManyField.
- Templates with React.js
- View for task list, task creation, task details, task update, and task deletion
- Utilize Django template tags and filters
- Responsive and visually appealing design using Bootstrap
- Django Views and URL Patterns
- Class Based Views for task-related operations
- Retrieve tasks from the database and display on the task list view
- Task creation and update forms with validation
- Logic for creating, updating, and deleting tasks in the database using Django ORM
- REST API
- API views to list all tasks, retrieve a single task, create a new task, update an existing task, and delete a task
- Serializers for data conversion to/from JSON format
- Handling appropriate HTTP methods (GET, POST, PUT/PATCH, DELETE)
- Validate input data and handle errors appropriately
Contributions are welcome! Please reach out to the project owner at shamimhcp@gmail.com.