# User Stories: Registration and Login

## Registration
- **As a user**, I want to create an account using my email address and a secure password, so that I can access the application.
- ✅ **As a user**, I want to register using my Google account, so that I can sign up quickly without creating a new password.
- **As a user**, I want to register using my Facebook account, so that I can easily sign up using my existing social media profile.

## Login
- **As a user**, I want to log in using my email address and password, so that I can access my account securely.
- ✅ **As a user**, I want to log in using my Google account, so that I can access my account without needing to remember a separate password.
- **As a user**, I want to log in using my Facebook account, so that I can easily access my account using my social media profile.

# User Stories: Projects

## General
- **As a user**, I want to access a todo application via a sidebar, so that I can easily view and manage my projects.

## Creating Projects
- **As a user**, I want to create a new project from the sidebar, so that I can organise my tasks under a specific project.
- **As a user**, I want to specify a project name when creating a new project, so that I can identify the project easily.
- **As a user**, I want to see a dialog pop up when adding a new project, so that I can enter the project name in a focused and clear manner.

## Managing Projects
- **As a user**, I want to edit the name of a project, so that I can correct or update it as needed.
- **As a user**, I want to delete a project, so that I can remove projects I no longer need.

## Viewing Projects
- **As a user**, I want to select a project from the sidebar, so that I can view the todos associated with that project.

# User Stories: Todos

## General
- **As a user**, I want the main area to provide a way to add a new todo, so that I can create tasks easily.

## Adding Todos
- **As a user**, I want to see a dialog pop up when adding a new todo, so that I can enter details for the task in a clear and organised way.
- **As a user**, I want to specify a name, description, and due date for the todo, so that I can define the task clearly.
- **As a user**, I want to assign the todo to a specific project, so that I can organise tasks under relevant projects.

## Managing Todos
- **As a user**, I want to edit an existing todo, so that I can update any of its properties (name, description, due date, or project assignment) as needed.
- **As a user**, I want to delete a todo, so that I can remove tasks I no longer need.

## Task Completion
- **As a user**, I want to mark a todo as complete, so that I can track which tasks have been finished.
- **As a user**, I want to revert a completed todo back to incomplete, so that I can update its status if it was marked as complete by mistake.

## Filtering and Sorting Todos
- **As a user**, I want to filter the visible todos by selecting a project from the sidebar, so that I can focus on tasks relevant to that project.
- **As a user**, I want to sort my todos by due date, so that I can prioritise tasks effectively.

## Pagination
- **As a user**, I want the list of todos to be paginated when it becomes too long, so that the interface remains easy to navigate.