Skip to content

Pushya04/smart-task-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 Smart Task Analyzer

Intelligent Task Prioritization & Management System

Build Status Python Django License

πŸ“‹ Table of Contents


πŸš€ Overview

Smart Task Analyzer is a sophisticated task management application designed to help users prioritize their workload effectively. Unlike traditional to-do lists, it employs a weighted algorithm to analyze tasks based on Urgency, Importance, Effort, and Dependencies.

The system calculates a dynamic Priority Score (0-10) for each task, helping users identify exactly what they should be working on right now.


✨ Key Features

🧠 Intelligent Analysis

  • Weighted Scoring: Tasks are scored based on a custom algorithm.
  • Smart Suggestions: The system recommends the top 3 tasks for the day with detailed reasoning (e.g., "High urgency and low effort - Quick Win").

πŸ“‹ Advanced Task Management

  • CRUD Operations: Create, Read, Update, and Delete tasks with ease.
  • Drag-and-Drop Reordering: Visually organize tasks using a smooth drag-and-drop interface. The new order is persisted automatically.
  • Rich Task Details: Track Due Dates, Estimated Hours, Importance Levels, and Dependencies.

πŸ” Security & User Management

  • Secure Authentication: Token-based authentication system.
  • User Isolation: Data is strictly segregated; users can only access their own tasks.
  • Profile Management: Customizable user profiles (ready for expansion).

πŸ’» Modern Interface

  • Responsive Design: Fully functional on Desktop, Tablet, and Mobile.
  • Dynamic Updates: Real-time DOM manipulation for a seamless user experience.
  • Interactive Elements: Toast notifications, loading states, and smooth transitions.

πŸ— Technical Architecture

The project follows a Monolithic Architecture with a decoupled frontend design, allowing for easy future separation if needed.

Backend (Django)

  • Framework: Django 4.x
  • API: Django REST Framework (DRF)
  • Database: SQLite (Dev) / PostgreSQL (Prod ready)
  • Auth: Token Authentication (DRF)

Frontend (Vanilla JS)

  • Core: HTML5, CSS3, ES6+ JavaScript
  • Libraries:
    • SortableJS for drag-and-drop interactions.
    • Fetch API for backend communication.
  • Design: Custom CSS with CSS Variables for theming.

πŸ“‚ Project Structure

Assignment/
β”œβ”€β”€ manage.py                # Django management script
β”œβ”€β”€ db.sqlite3               # Local database
β”œβ”€β”€ requirements.txt         # Project dependencies
β”œβ”€β”€ task_analyzer/           # Project configuration
β”‚   β”œβ”€β”€ settings.py          # Main settings
β”‚   β”œβ”€β”€ urls.py              # Main URL routing
β”‚   └── wsgi.py              # WSGI entry point
β”œβ”€β”€ tasks/                   # Main application app
β”‚   β”œβ”€β”€ models.py            # Database models (Task, UserProfile)
β”‚   β”œβ”€β”€ views.py             # API views & logic
β”‚   β”œβ”€β”€ serializers.py       # Data serialization
β”‚   β”œβ”€β”€ urls.py              # App-specific URLs
β”‚   └── priority_algorithm.py # Core analysis logic
β”œβ”€β”€ templates/               # HTML Templates
β”‚   β”œβ”€β”€ index.html           # Dashboard
β”‚   β”œβ”€β”€ login.html           # Auth pages
β”‚   └── register.html
└── static/                  # Static assets
    β”œβ”€β”€ css/
    β”‚   └── styles.css       # Main stylesheet
    └── js/
        └── app.js           # Frontend logic

⚑ Installation & Setup

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)
  • Git

Step-by-Step Guide

  1. Clone the Repository

    git clone https://github.com/yourusername/smart-task-analyzer.git
    cd smart-task-analyzer
  2. Create Virtual Environment

    # Windows
    python -m venv venv
    .\venv\Scripts\activate
    
    # macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
  3. Install Dependencies

    pip install -r requirements.txt
  4. Apply Database Migrations

    python manage.py migrate
  5. Create Superuser (Optional)

    python manage.py createsuperuser
  6. Run Development Server

    python manage.py runserver
  7. Access Application Open your browser and navigate to: http://127.0.0.1:8000/


πŸ”Œ API Documentation

The application exposes a comprehensive REST API.

Authentication

Method Endpoint Description
POST /api/auth/register/ Register a new user
POST /api/auth/login/ Login and retrieve token
POST /api/auth/logout/ Invalidate current token
GET /api/auth/me/ Get current user details

Tasks

Method Endpoint Description
GET /api/tasks/my/ List all tasks for user
POST /api/tasks/analyze/ Analyze a list of tasks
POST /api/tasks/suggest/ Get task suggestions
POST /api/tasks/reorder/ Update task order (Drag & Drop)
GET /api/tasks/<id>/ Get task details
PUT /api/tasks/<id>/ Update task details
DELETE /api/tasks/<id>/delete/ Delete a task

πŸ“– Usage Guide

1. Getting Started

  • Register for a new account or log in.
  • You will be greeted by the main dashboard.

2. Adding Tasks

  • Use the "Add New Task" form.
  • Importance: Rate from 1 (Low) to 10 (Critical).
  • Dependencies: Select other tasks that must be completed first.

3. Prioritization

  • Click "Analyze Tasks" to see the calculated scores.
  • Tasks with higher scores (closer to 10) should be prioritized.

4. Reordering

  • Simply drag and drop tasks in the list to change their order.
  • The new order is automatically saved.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❀️ by Pyaraka Pushyamithra

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •