Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

TaskNest

A modern web-based task management system built with Django and Tailwind CSS.

PythonDjangoTailwindCSSLicenseStatusBuilt with DjangoBuilt with Tailwind

📌 About

TaskNest is a full-featured task management system designed for teams and individuals to collaborate efficiently. Built with Django and Tailwind CSS, it supports user roles, project/task tracking, and real-time email notifications.

Features

User Management

  • User registration with email activation.
  • User login/logout.
  • Password change.
  • Password reset (email-based).
  • Admin dashboard to view all users.
  • Assign roles (Manager, Employee, Admin) to users.
  • Create custom user groups with specific permissions.
  • View list of user groups and their permissions.

User Profiles

  • Custom user profiles with bio and profile image.
  • Edit profile information (email, first name, last name, bio, profile image).

Task Management

  • Create tasks with title, description, due date, and assigned users.
  • Assign tasks to multiple users.
  • Task details including priority (High, Medium, Low), notes, and an optional asset (image).
  • View tasks (manager dashboard, employee dashboard).
  • Update task details (status, priority, notes, asset).
  • Delete tasks.
  • Email notification to assigned users on task creation.

Project Management

  • Create projects with name, description, and start date.
  • View projects with task counts.

Role-Based Access Control (RBAC)

  • Admin: Full access.
  • Manager: Project management, task creation, task assignment, task updates, task deletion.
  • Employee: View assigned tasks, update task status.

Communication

  • Contact form for user inquiries.

Technical Aspects

  • Backend: Django
  • Frontend: Tailwind CSS
  • Environment variable management using python-decouple.
  • Database: PostgreSQL (configured for production).
  • Static and media file handling.
  • Email sending for account activation and task assignment.

📸 Screenshots

ℹ️ Note: This project is currently not deployed live due to paid service limitations. However, you can explore its full functionality through the provided screenshots and detailed instructions below.

🏠 Home Page

Light Mode

Home Page (Light) screenshot

Dark Mode

Home Page (Dark) screenshot

🔐 Authentication

Registration

Registration Page screenshot

🚀 Core Features

Manager Dashboard

Manager Dashboard screenshot

Light Manager Dashboard

Light Manager Dashboard screenshot

Task Status

  • To-Do

To-Do Tasks screenshot

  • In Progress

In Progress Tasks screenshot

  • Completed

Completed Tasks screenshot

All Projects

All Projects screenshot

Task Form

Task Form screenshot

👤 User Profile

User Profile

User Profile screenshot

Edit Profile

Edit Profile screenshot

Change Password

Change Password screenshot

📄 Additional Pages

Feature Page

Feature Page screenshot

Pricing Page

Pricing Page screenshot

Contact Page

Contact Page screenshot

📱 Responsive Design

Home Page

Responsive Home screenshot

Pricing Page

Responsive Pricing screenshot

Contact Page

Responsive Contact screenshot

⚙️ Admin Panel

Django Admin

Django Admin screenshot

Setup and Installation

Follow these steps to set up and run the project locally.

Prerequisites

  • Python 3.x
  • Node.js and npm
  • PostgreSQL

1. Clone the repository

git clone https://github.com/MrMADS28289/task_management.git
cd tasknest

2. Create a Python Virtual Environment

python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linuxsource task_env/bin/activate

3. Install Python Dependencies

pip install -r requirements.txt

4. Install Node.js Dependencies

npm install

5. Environment Variables

Create a .env file in the root directory of the project and add the following:

SECRET_KEY=your_secret_key_here
DEBUG=True
DB_PORT=5432
EMAIL_HOST=your_email_host
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your_email@example.com
EMAIL_HOST_PASSWORD=your_email_password

For production, ensure you set DEBUG=False and configure the following database environment variables:

DB_NAME=your_production_db_name
DB_USER=your_production_db_user
DB_PASSWORD=your_production_db_password
DB_HOST=your_production_db_host
DB_PORT=your_production_db_port

Also, update ALLOWED_HOSTS in tasknest/settings.py with your production domain(s) or IP address(es).

To generate a SECRET_KEY, run:

python manage.py get_random_secret_key

6. Database Setup (PostgreSQL)

Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management.

CREATEDATABASEtasknest;

7. Run Migrations

python manage.py makemigrations
python manage.py migrate

8. Build Tailwind CSS

npm run build:tailwind

9. Run the Development Server

python manage.py runserver

The application will be accessible at http://127.0.0.1:8000/

Linting and Type Checking

Ruff (Linting)

ruff check . --fix

Mypy (Type Checking)

mypy .

Populating the Database (Optional)

To populate your database with sample data, run:

python populate_db.py

Project Structure

.env
manage.py
requirements.txt
package.json
...
core/
models.py
views.py
...
tasks/
models.py
views.py
...
users/
models.py
views.py
...
tasknest/
settings.py
urls.py
...
static/
css/
js/
images/
media/
profile_images/
tasks_asset/

📡 API Endpoints

MethodEndpointDescription
GET/tasks/Get all tasks
POST/tasks/create/Create a new task
PUT/tasks/update/{id}/Update task
DELETE/tasks/delete/{id}/Delete task

SEO-Optimized: Easily indexable by recruiters and search engines via clear descriptions and rich documentation.

🧰 Technologies Used

  • Backend: Django 5.1, PostgreSQL
  • Frontend: HTML, Tailwind CSS, minimal JS
  • Styling: Tailwind CSS
  • Environment: Python-decouple, Ruff, Mypy

🧭 Roadmap

  • User authentication and profiles
  • Project and task CRUD
  • Role-based access
  • Email notifications
  • Notifications UI
  • REST API for frontend frameworks
  • Real-time updates with Django Channels

🐛 Known Issues

  • Task deletion does not remove associated media files.
  • Email sometimes goes to spam during password reset.

Contributing

Feel free to fork the repository and contribute. Pull requests are welcome.

License

This project is licensed under the MIT License.

About

A modern task management system built with Django & Tailwind CSS. Includes role-based access, project/task tracking, user profiles & email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages