This Todo List Application is a web-based task management system built using Flask, SQLAlchemy, and Jinja2. The application allows users to sign up, log in, and manage their personal todo lists. It supports basic CRUD (Create, Read, Update, Delete) operations on tasks and utilizes modern ARM (Authentication, Role-based Management) principles for user management.
- User Authentication: Secure user sign-up and sign-in functionality with password hashing.
- Role-based Management (ARM): Each user can manage their own tasks without interference from other users.
- CRUD Operations: Create, Read, Update, and Delete tasks.
- Flask: A micro web framework written in Python.
- SQLAlchemy: SQL toolkit and Object-Relational Mapping (ORM) library for Python.
- Jinja2: A templating engine for Python.
- Werkzeug: A comprehensive WSGI web application library.
- HTML/CSS: For the frontend.
-
Clone the repository
git clone https://github.com/Daman2461/Task-Manager.git cd Task-Manager -
Create and activate a virtual environment
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install dependencies
pip install -r requirements.txt
-
Set up the database
flask db init flask db migrate -m "Initial migration." flask db upgrade -
Run the application
flask run
- Navigate to
/signup/to create a new user account. - Provide a unique username and password.
- Navigate to
/signin/to log in to your account. - Enter your username and password.
- Once logged in, you will be redirected to your home page where you can:
- Create new tasks.
- Read and view your list of tasks.
- Update existing tasks.
- Delete tasks that are no longer needed.
- Click on the sign-out link to log out of your account and end your session.
