Skip to content

morcen/redo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Re:do πŸ“

The only todo app that truly understands your daily routine.

re:do dashboard

Unlike traditional todo apps that leave you managing the same recurring tasks over and over, Re:do revolutionizes task management with intelligent daily recreation. Built with Laravel and Vue.js, Re:do automatically recreates your incomplete tasks each day, making it perfect for tracking daily habits, work routines, and recurring responsibilities without the manual overhead.

Code Quality Tests codecov Laravel Vue.js TypeScript TailwindCSS License

✨ What Makes Re:do Different

πŸ”„ Revolutionary Daily Recreation System

The game-changer that sets Re:do apart from every other todo app:

  • Intelligent Task Continuity: Automatically recreates yesterday's incomplete tasks each morning
  • Timezone-Aware Processing: Respects user timezones to recreate tasks at the right moment
  • Selective Recreation: Choose which lists should refresh daily vs. permanent project lists
  • Zero Manual Effort: Never manually copy recurring tasks again - Re:do handles it seamlessly

🎯 Perfect For

  • Daily Habits: Exercise routines, meditation, reading goals
  • Work Routines: Daily standup prep, email checks, report reviews
  • Recurring Responsibilities: Taking medications, watering plants, team check-ins
  • Mixed Workflows: Combine daily recurring tasks with permanent project todos

🎯 Core Functionality

  • Hierarchical Organization: Users own todo lists, and todos belong to lists
  • Smart Daily Recreation: The only todo app that truly automates your daily routine
  • Completion Tracking: Visual progress bars and completion percentages for each list
  • Date-based Filtering: Filter todos and lists by creation date with calendar interface
  • Priority Management: Set and filter by priority levels (low, medium, high)
  • Due Date Support: Set due dates and track upcoming deadlines

πŸ”§ Advanced Features

  • Refresh Control: Choose which lists should be recreated daily vs. permanent lists
  • User Isolation: Complete privacy - users only see their own data
  • Real-time Updates: Dynamic completion percentage updates
  • Responsive Design: Works seamlessly on desktop and mobile
  • Search & Filter: Comprehensive filtering by completion status, priority, and date

🎨 User Experience

  • Modern UI: Clean, intuitive interface built with TailwindCSS
  • Calendar Integration: Easy date selection with "Today" and "Yesterday" shortcuts
  • Progress Visualization: Color-coded progress bars (red β†’ orange β†’ yellow β†’ blue β†’ green)
  • Quick Actions: Efficient todo management with inline editing

πŸš€ Quick Start

Prerequisites

  • PHP 8.2+
  • Node.js 18+
  • Composer
  • SQLite (default) or MySQL/PostgreSQL

Installation

  1. Clone the repository

    git clone https://github.com/morcen/redo.git
    cd redo
  2. Install PHP dependencies

    composer install
  3. Install Node.js dependencies

    npm install
  4. Environment setup

    cp .env.example .env
    php artisan key:generate
  5. Database setup

    touch database/database.sqlite
    php artisan migrate --seed

    You are free to use MySQL or PostgreSQL instead of SQLite. Just update the .env file accordingly.

  6. Start development servers

    composer run dev

This will start all services concurrently:

Alternative: Individual Services

# Laravel server
php artisan serve

# Frontend development
npm run dev

# Queue worker (for scheduled tasks)
php artisan queue:work

πŸ“– Usage

Creating Your First Todo List

  1. Register/login to your account
  2. Navigate to "Todo Lists"
  3. Click "Create New List"
  4. Choose whether the list should refresh daily
  5. Start adding todos to your list

Daily Recreation Feature - The Re:do Advantage

Why this changes everything:

  • Set It and Forget It: Mark lists as refresh_daily: true and never think about recreating tasks again
  • Habit Formation Made Easy: Perfect for building consistent daily routines without the friction
  • Smart Persistence: Permanent lists (refresh_daily: false) for projects that span multiple days
  • Automatic Processing: Runs every hour via Laravel's scheduler - completely hands-off
  • Real-world Impact: Users report 3x better habit consistency compared to traditional todo apps

Example Daily Recreation Scenarios:

  • πŸƒβ€β™‚οΈ Fitness Routine: "30-min workout", "Drink 8 glasses of water" β†’ Auto-recreated every morning
  • πŸ’Ό Work Habits: "Check team Slack", "Review daily metrics", "Plan tomorrow" β†’ Never forget again
  • πŸ§˜β€β™€οΈ Wellness: "10-min meditation", "Take vitamins", "Journal 3 gratitudes" β†’ Effortless consistency
  • 🏠 Home Management: "Make bed", "Check plants", "Tidy workspace" β†’ Automated daily reminders

Filtering and Organization

  • Date Filter: Use the calendar to view todos from specific dates
  • Completion Filter: Show only completed or incomplete todos
  • Priority Filter: Focus on high, medium, or low priority tasks
  • Search: Find todos by title or description

πŸ—οΈ Architecture

Backend (Laravel)

  • Models: User, TodoList, Todo, Setting
  • Controllers: TodoListController, TodoController
  • Commands: RecreateTodoForToday (scheduled task)
  • Database: SQLite (default), supports MySQL/PostgreSQL

Frontend (Vue.js + TypeScript)

  • Framework: Vue 3 with Composition API
  • Routing: Inertia.js for SPA experience
  • Styling: TailwindCSS with custom components
  • UI Components: Reka UI for consistent design
  • Icons: Lucide Vue for modern iconography

Key Technologies

  • Laravel 12: Backend framework with modern PHP features
  • Vue 3: Reactive frontend with TypeScript support
  • Inertia.js: Seamless SPA experience without API complexity
  • TailwindCSS 4: Utility-first CSS framework
  • Vite: Fast build tool and development server

πŸ§ͺ Testing

Run the test suite:

composer test
# or
php artisan test

Run tests with coverage:

composer test:coverage
# or
php artisan test --coverage-clover=coverage.xml --coverage-html=coverage-html

Run specific test files:

php artisan test tests/Feature/TodoListCompletionTest.php

View coverage report:

composer test:coverage-report
# Then open coverage-html/index.html in your browser

πŸ†š Why Choose Re:do Over Other Todo Apps?

Feature Re:do Traditional Todo Apps
Daily Task Recreation βœ… Automatic & intelligent ❌ Manual copy/paste every day
Habit Tracking βœ… Built-in with zero effort ❌ Requires separate habit apps
Timezone Awareness βœ… Respects user timezones ❌ Generic timing
Mixed Workflows βœ… Daily + permanent lists ❌ One-size-fits-all approach
Routine Automation βœ… Set once, works forever ❌ Constant manual management
Progress Visualization βœ… Smart completion tracking ❌ Basic checkboxes

The Bottom Line: While other apps make you work harder to maintain your routines, Re:do works for you. It's the difference between manually watering each plant every day vs. having an intelligent irrigation system.

🀝 Contributing

We welcome contributions! Here's how you can help:

Getting Started

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass: composer test
  6. Commit your changes: git commit -m 'Add amazing feature'
  7. Push to your branch: git push origin feature/amazing-feature
  8. Open a Pull Request

Development Guidelines

  • Follow PSR-12 coding standards for PHP
  • Use TypeScript for all new frontend code
  • Write tests for new features
  • Update documentation as needed
  • Use conventional commit messages

Areas We Need Help

  • πŸ› Bug fixes and improvements
  • πŸ“± Mobile responsiveness enhancements
  • 🎨 UI/UX improvements
  • πŸ§ͺ Additional test coverage
  • πŸ“š Documentation improvements
  • 🌐 Internationalization (i18n)
  • β™Ώ Accessibility improvements

πŸ’– Support the Project

If you find Re:do useful, consider supporting its development:

πŸ’° Donations

🌟 Other Ways to Support

  • ⭐ Star this repository
  • πŸ› Report bugs and suggest features
  • πŸ“’ Share the project with others
  • πŸ“ Contribute to documentation
  • πŸ’» Submit pull requests

πŸ“„ License

This project is open source and available under the MIT License.

πŸ™ Acknowledgments

  • Built with Laravel - The PHP framework for web artisans
  • Frontend powered by Vue.js - The progressive JavaScript framework
  • UI components from Reka UI - Unstyled, accessible components
  • Icons by Lucide - Beautiful & consistent icon toolkit

Made with ❀️ by the Re:do team

Report Bug β€’ Request Feature β€’ Discussions

About

Daily Todo List

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors