Skip to content

M-Hammad-Faisal/Task-Nest

Repository files navigation

Task-Nest

A sleek, minimalist task management web application built with Django, designed for individual and team collaboration. Featuring a professional yet cool UI with real-time updates, team-based task assignments, notifications, and a clean, responsive design, Task Manager streamlines workflows with simplicity and style.

Live Demo

Click here to view the live app

Features

  • Task Management: Create, edit, delete, and track tasks with statuses (Open, In Progress, Resolved, Closed, Reopened) and priorities (Low, Medium, High).
  • Team Collaboration: Assign tasks to team members, manage teams with invite codes, and filter tasks by team or category (derived from tags).
  • Real-Time Updates: WebSocket-powered live comment and status updates on task detail pages.
  • Notifications: In-app notifications for task updates, with unread highlighting.
  • Minimalist UI: Clean, professional design with a deep blue (#1E3A8A) and emerald green (#10B981) palette, small typography, and subtle hover effects.
  • Attachments: Upload and view files per task.
  • Responsive: Mobile-friendly layout with Bootstrap 5.
  • User Authentication: Secure signup, login, and logout functionality.

Tech Stack

  • Backend: Django 5.1.7, Python 3.12.3
  • Frontend: HTML, CSS (custom minimalist styles), Bootstrap 5, Chart.js (for dashboard stats)
  • Real-Time: Django Channels, WebSockets
  • Database: SQLite (default, configurable for PostgreSQL)
  • Dependencies: See requirements.txt

Installation

Prerequisites

  • Python 3.12+
  • pip
  • Virtualenv (recommended)
  • Redis (for WebSocket support)

Setup

  1. Clone the Repository
git clone https://github.com/M-Hammad-Faisal/Task-Nest.git
cd Task-Nest
  1. Create a Virtual Environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install Dependencies
pip install -r requirements.txt
  1. Set Up Environment Variables Create a .env file in the project root:
DEBUG=True
SECRET_KEY=your-secret-key-here
DATABASE_URL=sqlite:///db.sqlite3
[email protected]
EMAIL_HOST_PASSWORD=your-email-password
  1. Apply Migrations
python manage.py migrate
  1. Create a Superuser
python manage.py createsuperuser
  1. Install Redis

    • On macOS: brew install redis
    • On Ubuntu: sudo apt-get install redis-server
    • On Windows: Use WSL or a Redis Docker container
    • Start Redis: redis-server
  2. Run the Development Server

    python manage.py runserver 

    Visit http://localhost:8000 in your browser.

  3. Run WebSocket Server Ensure Redis is running, then:

    python manage.py runserver  # Channels handles WebSockets automatically 

Usage

  • Dashboard: View your tasks, team stats, and filter by status, priority, team, or category (/dashboard/).
  • Task List: See all tasks (/tasks/).
  • Task Details: Update status, add comments or attachments in real-time (/tasks/<id>/).
  • Teams: Create or join teams with invite codes (/teams/).
  • Notifications: Check task updates (/notifications/).
  • Admin: Manage users, tasks, and teams at /admin/ (superuser only).

Screenshots

Homepage
TaskNest - Homepage

Dashboard
TaskNest - Dashboard

Testing

Run the test suite:

python manage.py test

Tests cover task CRUD, team functionality, and notifications.

Contributing

  • Fork the repo.
  • Create a branch: git checkout -b feature/your-feature.
  • Commit changes: git commit -m "Add your feature".
  • Push: git push origin feature/your-feature.
  • Open a pull request.

Future Enhancements

  • Overdue task alerts via email or in-app.
  • Task dependencies and Gantt chart view.
  • Dark mode toggle.
  • API endpoints for third-party integration.

License

MIT License—feel free to use, modify, and distribute.

About

Streamline your workflow, collaborate with your team, and get things done—all in one powerful app.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published