Task Manager is a web application built with Django, designed to help users manage and organize their tasks efficiently.
- Registration: Users can register for an account by providing a username, email, and password.
- Login: Registered users can log in using their credentials.
- Upon successful login, users are directed to the home page displaying a list of tasks.
- Title, Description, and Due Date: Users can create tasks with a title, description, and due date.
- Multiple Photos: Tasks support multiple photo attachments with options to add and delete images.
- Priority: Tasks can be assigned a priority level (Low, Medium, High).
- Completion Status: Users can mark tasks as complete or incomplete.
- Creation Date: The application stores the date and time of task creation.
- Last Update : A feature to track the last update date and time.
- Search and Filter:
- Users can search tasks by title.
- Tasks can be filtered by creation date, due date, priority, and completion status.
- Each task has a details page displaying all information, including attached photos.
- Users have the option to update tasks, modifying fields such as priority, due date, etc.
- Task deletion is implemented with a confirmation prompt to avoid accidental deletions.
- Additional fields or models can be added based on specific project needs.
- Users have a profile page displaying their information, including username, email, first name, and last name.
- Users can change their passwords securely.
-
Clone the repository:
git clone https://github.com/your-username/task-manager.git cd task-manager
-
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows, use 'venv\Scripts\activate' pip install -r requirements.txt
-
Set up the database:
python manage.py migrate
-
Create a superuser account:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Visit
http://127.0.0.1:8000
in your web browser to access the application.
Contributions are welcome! Feel free to open issues and pull requests.