Skip to content

theqxmlkushal/Schedule_Manager_for_Students

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Š Eisenhower Matrix Task Manager

A full-stack task management application that automatically categorizes tasks using the Eisenhower Matrix (Urgent-Important Matrix) methodology.


Python Django React PostgreSQL License

Built with: Django REST Framework โ€ข React โ€ข Vite โ€ข Supabase โ€ข PostgreSQL


๐Ÿ“‘ Table of Contents


๐ŸŽฏ Features

  • Smart Categorization: Automatically calculates urgency and importance scores
  • 4-Quadrant Dashboard: Visual organization using the Eisenhower Matrix
    • ๐Ÿ”ด Urgent & Important (Do First)
    • ๐ŸŸก Important but Not Urgent (Schedule)
    • ๐Ÿ”ต Urgent but Not Important (Delegate)
    • โšช Neither (Eliminate)
  • Real-time Scoring: Dynamic task prioritization based on deadlines and estimated time
  • RESTful API: Clean Django REST Framework backend
  • Responsive UI: Modern React frontend with color-coded quadrants
  • Supabase Integration: PostgreSQL database with authentication ready

๐Ÿ—๏ธ Architecture

eisenhower-matrix/
โ”œโ”€โ”€ backend/                    # Django REST API
โ”‚   โ”œโ”€โ”€ tasks/                  # Main app
โ”‚   โ”‚   โ”œโ”€โ”€ models.py          # Task model
โ”‚   โ”‚   โ”œโ”€โ”€ views.py           # API endpoints
โ”‚   โ”‚   โ”œโ”€โ”€ serializers.py     # JSON serialization
โ”‚   โ”‚   โ””โ”€โ”€ categorization.py  # Scoring algorithms
โ”‚   โ””โ”€โ”€ eisenhower_matrix/     # Project settings
โ”œโ”€โ”€ frontend/                   # React app
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ components/        # React components
โ”‚       โ”‚   โ”œโ”€โ”€ Dashboard.jsx  # 4-quadrant layout
โ”‚       โ”‚   โ”œโ”€โ”€ TaskCard.jsx   # Task display
โ”‚       โ”‚   โ””โ”€โ”€ TaskForm.jsx   # Task creation
โ”‚       โ””โ”€โ”€ api/
โ”‚           โ””โ”€โ”€ client.js      # API client
โ””โ”€โ”€ .kiro/specs/               # Project specifications

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.9+
  • Node.js 16+
  • Supabase account (free tier works)

Backend Setup

  1. Navigate to backend directory

    cd backend
  2. Create virtual environment

    python -m venv venv
    venv\Scripts\activate  # Windows
    source venv/bin/activate  # Mac/Linux
  3. Install dependencies

    pip install -r requirements.txt
  4. Configure environment variables

    Copy .env.example to .env and fill in your Supabase credentials:

    DATABASE_NAME=postgres
    DATABASE_USER=postgres.your-project-ref
    DATABASE_PASSWORD=your-password
    DATABASE_HOST=your-project-ref.supabase.co
    DATABASE_PORT=5432
    
    SUPABASE_URL=https://your-project-ref.supabase.co
    SUPABASE_ANON_KEY=your-anon-key
  5. Run migrations

    python manage.py migrate
  6. Create superuser (optional)

    python manage.py createsuperuser
  7. Start backend server

    python manage.py runserver

    Backend runs at: http://localhost:8000

Frontend Setup

  1. Navigate to frontend directory

    cd frontend
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev

    Frontend runs at: http://localhost:5174

๐Ÿ“– API Endpoints

Tasks

  • GET /api/tasks/ - List all tasks
  • POST /api/tasks/ - Create new task
  • GET /api/tasks/{id}/ - Get task details
  • PUT /api/tasks/{id}/ - Update task
  • DELETE /api/tasks/{id}/ - Delete task

Request Example

POST /api/tasks/
{
  "title": "Complete project report",
  "description": "Finish the quarterly report",
  "deadline": "2024-03-15T18:00:00Z",
  "estimated_time_hours": 4.5
}

Response Example

{
  "id": 1,
  "title": "Complete project report",
  "description": "Finish the quarterly report",
  "deadline": "2024-03-15T18:00:00Z",
  "estimated_time_hours": "4.50",
  "urgency_score": "0.85",
  "importance_score": "0.72",
  "quadrant": "urgent_important",
  "is_manually_categorized": false,
  "is_completed": false,
  "created_at": "2024-03-10T10:30:00Z",
  "updated_at": "2024-03-10T10:30:00Z"
}

๐Ÿงฎ Scoring Algorithm

Urgency Score (0.0 - 1.0)

Based on time until deadline:

  • < 24 hours: 0.9 - 1.0 (Critical)
  • 1-3 days: 0.7 - 0.9 (High)
  • 3-7 days: 0.4 - 0.7 (Medium)
  • > 7 days: 0.0 - 0.4 (Low)

Importance Score (0.0 - 1.0)

Based on estimated time required:

  • > 8 hours: 0.8 - 1.0 (Major task)
  • 4-8 hours: 0.6 - 0.8 (Significant)
  • 2-4 hours: 0.4 - 0.6 (Moderate)
  • < 2 hours: 0.0 - 0.4 (Minor)

Quadrant Assignment

  • Urgent & Important: urgency โ‰ฅ 0.7 AND importance โ‰ฅ 0.7
  • Important but Not Urgent: urgency < 0.7 AND importance โ‰ฅ 0.7
  • Urgent but Not Important: urgency โ‰ฅ 0.7 AND importance < 0.7
  • Neither: urgency < 0.7 AND importance < 0.7

๐ŸŽจ UI Components

Dashboard

4-quadrant grid layout with color-coded sections:

  • Red: Urgent & Important
  • Yellow: Important but Not Urgent
  • Blue: Urgent but Not Important
  • Gray: Neither

Task Card

Displays:

  • Task title and description
  • Deadline (formatted)
  • Estimated time
  • Urgency and importance scores
  • Manual categorization badge (if applicable)

Task Form

Input fields:

  • Title (required)
  • Description (optional)
  • Deadline (datetime picker)
  • Estimated time in hours (number input)

๐Ÿ› ๏ธ Tech Stack

Backend

  • Django 4.2+: Web framework
  • Django REST Framework: API toolkit
  • PostgreSQL: Database (via Supabase)
  • python-dotenv: Environment management

Frontend

  • React 18: UI library
  • Vite: Build tool
  • Axios: HTTP client
  • CSS3: Styling

Database

  • Supabase: PostgreSQL hosting
  • Row Level Security: Built-in authentication support

๐Ÿ“ Database Schema

Tasks Table

Column Type Description
id SERIAL Primary key
user_id UUID Foreign key to auth.users
title VARCHAR(255) Task name
description TEXT Task details
deadline TIMESTAMPTZ Due date/time
estimated_time_hours NUMERIC(5,2) Hours to complete
urgency_score NUMERIC(3,2) 0.0 to 1.0
importance_score NUMERIC(3,2) 0.0 to 1.0
quadrant VARCHAR(50) Matrix quadrant
is_manually_categorized BOOLEAN User override flag
is_completed BOOLEAN Completion status
created_at TIMESTAMPTZ Creation timestamp
updated_at TIMESTAMPTZ Last update timestamp

๐Ÿ”’ Security

  • CORS enabled for development (configure for production)
  • Supabase Row Level Security (RLS) ready
  • Environment variables for sensitive data
  • SSL required for database connections

๐Ÿšง Future Enhancements

  • User authentication with Supabase Auth
  • Google Calendar integration
  • Email notifications
  • Task completion tracking
  • Analytics dashboard
  • Mobile responsive improvements
  • Dark mode
  • Task filtering and search
  • Drag-and-drop task reordering
  • Export tasks to CSV/PDF

๐Ÿ“„ License

MIT License - feel free to use this project for learning or building your own task manager!

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ‘จโ€๐Ÿ’ป Author

Built for a hackathon project demonstrating full-stack development with modern web technologies.

๐Ÿ™ Acknowledgments

  • Eisenhower Matrix methodology by Dwight D. Eisenhower
  • Django and React communities
  • Supabase for excellent PostgreSQL hosting

โญ Star this repo if you find it helpful!

About

Full-stack task manager that auto-classifies tasks into the 4-quadrant Eisenhower matrix using a custom urgency/importance scoring algorithm. Django REST backend + React frontend deployed on Render + Supabase PostgreSQL.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors