Skip to content


PROJECT DETAILS


To Do List (Task Tracker)


Task tracker embedded in this portfolio: each user keeps a private list of tasks with priority, effort, an optional due date and a completion state. A dashboard groups pending work by priority and flags overdue tasks.
Built as a Django app with Django REST Framework: session-authenticated web views plus a JSON API restricted to tasks owned by the authenticated user (per-object ownership checks, POST-only deletes, CSRF protection).
Create, edit and delete tasks without page reloads (AJAX with jQuery) and try it instantly with the one-click demo account, which resets its tasks on every visit.
The original 2023 standalone version (Django REST + Djoser token auth + Vue.js frontend) is kept archived on GitHub for reference; the version deployed here is the actively maintained one.

Framework: Django

To Do List (Task Tracker)

Technology Stack:

Backend: Django 5.2 / Django REST Framework / PostgreSQL
Frontend: Django templates / Bootstrap 5 / jQuery (AJAX)
Authentication: session-based, per-user task ownership
Demo: one-click demo account (todo/demo/)


About Team

Company / Institution: Freelance

Developer: Marco Antonio Parra

Try the live demo (no account needed)

The running app is the todo_app module of this portfolio (Django + DRF, session auth, AJAX). The linked repository is the original 2023 standalone version (Django REST + Vue), kept archived for reference.



Project Images


Endpoints & Routes


Available EndPoints

Endpoint Description URL
todo/ This Django project serves as a Task Manager, allowing users to organize and manage their tasks. It includes features for creating, updating, and deleting tasks. The project utilizes Django, Crispy Forms for form styling, and JavaScript for dynamic task handling. Create a new task by filling out a form with title, description, priority, and effort. The form is styled using Crispy Forms to enhance the user experience. The JavaScript code handles dynamic actions for creating tasks without requiring a page refresh.Update an existing task by navigating to the task details page and editing the relevant information. The dynamic form submission is handled using JavaScript, providing a seamless user experience. Crispy Forms ensures a clean and stylish form layout. Delete a task with a single click using the provided delete button. The JavaScript code sends an asynchronous request to the server, and the task is removed dynamically without requiring a page reload. Users can manage their tasks effortlessly.
todo/dashboard/ Retrieve task-related data for the dashboard. This endpoint provides a comprehensive overview of tasks, including their status, due dates, and other relevant information. It serves as a central source of data for the task dashboard UI in your application. Get a list of tasks with details such as task name, description, and status. Obtain a summary of task statuses (e.g., completed, pending, overdue). If authenticated, the endpoint tailors the response to the authenticated user, ensuring privacy and security.
todo/serializer_tasks Retrieving tasks assigned or created by the current authenticated user using Django Rest Framework to generate a JSON response. This endpoint ensures a seamless and structured user experience by providing detailed information about each task in a JSON format. This endpoint aims to enhance user interaction and facilitate efficient data consumption.