DOTaskly is a modern task management application built with Symfony and React. It provides an intuitive interface for managing tasks through different states and organizing them in task lists.
- Create and manage multiple task lists
- Each task list can contain multiple tasks
- Delete task lists when no longer needed
- Visual indication of selected task list
- Create tasks with title, description, progress, and due date
- Tasks are organized in three status columns:
- Open: New tasks ready to be started
- In Progress: Tasks currently being worked on
- Done: Completed tasks
- Task Status Management:
- Move tasks from "Open" to "In Progress" using the "Start" button
- Move tasks from "In Progress" to "Done" using the "Done" button
- Stop tasks and move them back to "Open" using the "Stop" button
- Reopen completed tasks using the "Reopen" button
- Visual status indicators with color-coded borders:
- Blue for Open tasks
- Yellow for In Progress tasks
- Green for Done tasks
- Track task progress percentage
- Set and display task due dates
- Delete tasks when they're no longer needed
- Symfony 6.x
- PHP 8.x
- API Platform for GraphQL API
- Doctrine ORM for database management
- React
- Apollo Client for GraphQL integration
- Tailwind CSS for styling
- React Hooks for state management
- Clone the repository:
git clone [repository-url]
cd todolist
- Install PHP dependencies:
composer install
- Install JavaScript dependencies:
yarn install
- Set up the database:
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
- Build the frontend assets:
yarn build
- Start the Symfony development server:
symfony server:start
The React application is located in the assets/react
directory. Main components:
Dashboard.jsx
: Main application layout and task list managementTask.jsx
: Task display and status managementTaskForm.jsx
: Task creation formTaskList.jsx
: Task list display and management
The application uses API Platform with GraphQL. Main entities:
Task
: Represents a single task with properties like title, description, status, etc.TaskList
: Represents a collection of tasksUser
: Handles user management and task ownership
The application supports the following GraphQL operations:
- Queries:
- Get task lists
- Get tasks for a specific list
- Mutations:
- Create task list
- Create task
- Update task status
- Delete task
- Delete task list
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.