A modern web-based task management system built with Django and Tailwind CSS.
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.
- 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.
- Custom user profiles with bio and profile image.
- Edit profile information (email, first name, last name, bio, profile image).
- 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.
- Create projects with name, description, and start date.
- View projects with task counts.
- Admin: Full access.
- Manager: Project management, task creation, task assignment, task updates, task deletion.
- Employee: View assigned tasks, update task status.
- Contact form for user inquiries.
- 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.
βΉοΈ 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.
Light Mode
Dark Mode
Registration
Manager Dashboard
Light Manager Dashboard
Task Status
- To-Do
- In Progress
- Completed
All Projects
Task Form
User Profile
Edit Profile
Change Password
Feature Page
Pricing Page
Contact Page
Home Page
Pricing Page
Contact Page
Django Admin
Follow these steps to set up and run the project locally.
- Python 3.x
- Node.js and npm
- PostgreSQL
git clone https://github.com/MrMADS28289/task_management.git
cd tasknest
python -m venv task_env
# On Windows
.\task_env\Scripts\activate
# On macOS/Linux
source task_env/bin/activate
pip install -r requirements.txt
npm install
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
Ensure you have PostgreSQL running. Then, connect to your PostgreSQL server and create a database named task_management
.
CREATE DATABASE tasknest;
python manage.py makemigrations
python manage.py migrate
npm run build:tailwind
python manage.py runserver
The application will be accessible at http://127.0.0.1:8000/
ruff check . --fix
mypy .
To populate your database with sample data, run:
python populate_db.py
.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/
Method | Endpoint | Description |
---|---|---|
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.
- Backend: Django 5.1, PostgreSQL
- Frontend: HTML, Tailwind CSS, minimal JS
- Styling: Tailwind CSS
- Environment: Python-decouple, Ruff, Mypy
- 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
- Task deletion does not remove associated media files.
- Email sometimes goes to spam during password reset.
Feel free to fork the repository and contribute. Pull requests are welcome.
This project is licensed under the MIT License.