A Task Management system built using the Django web framework. This project allows users to register, log in, and manage their tasks with full CRUD (Create, Read, Update, Delete) functionality. The app is ideal for learning or practicing how to work with Django's authentication system, forms, models, and templates.
- User authentication (Login/Signup/Logout).
- Task creation, viewing, updating, and deletion.
- Simple and clean Bootstrap-based UI.
- Responsive design (mobile-friendly).
- CSRF protection for secure forms.
- Uses Django class-based views and the built-in authentication system.
- Getting Started
- Prerequisites
- Installation
- Running the Application
- Project Structure
- Features and Functionality
- Contributing
- License
Follow these instructions to set up the project locally on your machine.
Make sure you have the following installed:
- Python 3.8+: Download here
- Django 4.0+: The web framework used to develop this application.
- Git: For version control and cloning the repository.
- pip: To install the required Python dependencies.
-
Clone the repository:
Clone this repository to your local machine using:
git clone https://github.com/your-username/task-manager.git
-
Navigate to the project directory:
cd taskManager
-
Create a virtual environment (recommended):
python -m venv venv
-
Activate the virtual environment:
- For Windows:
venv\Scripts\activate
- For macOS/Linux:
source venv/bin/activate
- For Windows:
-
Install the project dependencies:
Install all the required dependencies listed in
requirements.txt
:pip install -r requirements.txt
-
Run migrations:
Apply the necessary database migrations to set up the models:
python manage.py makemigrations python manage.py migrate
-
Create a superuser (optional):
You can create a superuser to access the Django admin panel:
python manage.py createsuperuser
-
Run the development server:
Finally, run the application using:
python manage.py runserver
The application will be available at
http://127.0.0.1:8000
.
Here's an overview of the project's directory structure:
task-manager/
├── tasks/
│ ├── migrations/
│ ├── static/
│ ├── templates/
│ │ └── tasks/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── urls.py
│ ├── views.py
├── task_manager/
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
├── manage.py
└── README.md
- tasks/: Contains the app-specific logic like models, views, templates, and static files.
- taskManager/: The main Django project directory that holds settings, URLs, and configuration files.
- db.sqlite3: The SQLite database file (created after running migrations).
- manage.py: Django's command-line utility for administrative tasks.
- Login: Users can log in using their credentials.
- Signup: New users can create an account.
- Logout: Authenticated users can log out securely.
- Create Tasks: Users can create new tasks using the task form.
- View Tasks: Tasks are listed on the dashboard.
- Update Tasks: Users can update the details of existing tasks.
- Delete Tasks: Tasks can be removed permanently.
- Admins can manage tasks and users through the built-in Django admin interface.
-
Homepage (Task List):
- Shows all tasks associated with the logged-in user.
- Tasks can be created, updated, and deleted from this page.
-
Task Creation:
- Navigate to
/create/
to add new tasks. - Requires a title and description.
- Navigate to
-
Task Update/Delete:
- Use the edit or delete buttons next to each task on the task list page.
-
Login/Signup:
- Navigate to
/accounts/login/
to log in. - Sign up at
/accounts/signup/
if you don’t have an account.
- Navigate to
If you would like to contribute to this project:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes.
- Push to your branch.
- Create a new pull request.
This project is licensed under the MIT License - see the LICENSE file for details.