Donewise is a self-hosted, web-based application for managing shopping lists, daily tasks, and recurring chores. It features real-time updates, group collaboration, file attachments, and a mobile-friendly interface (PWA).
Find a file
2026-01-20 08:39:00 +00:00
api api, subtask 2026-01-20 08:31:58 +00:00
app added @mention feature 2026-01-15 06:49:50 +00:00
assets added updated readme file 2026-01-15 08:09:55 +00:00
data api, subtask 2026-01-20 08:31:58 +00:00
sql added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
uploads Move to today function 2026-01-15 04:44:06 +00:00
attachment_delete.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
comment_delete.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
day.php api, subtask 2026-01-20 08:31:58 +00:00
docker-compose.yml added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
Dockerfile added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
fix_owners.php Move to today function 2026-01-15 04:44:06 +00:00
index.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
install.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
join.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
login.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
logout.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
manifest.json added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
notifications.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
README.md readme file update 2026-01-20 08:39:00 +00:00
recurring.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
register.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
remaining.php added @mention feature 2026-01-15 06:49:50 +00:00
search.php api, subtask 2026-01-20 08:31:58 +00:00
settings.php api, subtask 2026-01-20 08:31:58 +00:00
sw.js added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
switch_group.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
task_delete.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
task_details.php api, subtask 2026-01-20 08:31:58 +00:00
task_done.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
task_edit.php added @mention feature 2026-01-15 06:49:50 +00:00
task_move.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
task_snooze.php api, subtask 2026-01-20 08:31:58 +00:00
task_subtask.php api, subtask 2026-01-20 08:31:58 +00:00
task_undo.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v3.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v4.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v5.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v6.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v7.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00
update_db_v8.php tag section feature 2026-01-15 05:14:18 +00:00
update_db_v9.php added @mention feature 2026-01-15 06:49:50 +00:00
update_features.php api, subtask 2026-01-20 08:31:58 +00:00
update_recurring.php added few new features like pwa and icons 2026-01-12 08:56:09 +00:00

Donewise - Collaborative Shopping List & Task Manager

Donewise is a robust, self-hosted web application designed to simplify household management. It combines a shared shopping list, daily task planner, and chore tracker into a clean, mobile-friendly interface.

Built with PHP and SQLite, Donewise is lightweight, privacy-focused, and easy to deploy using Docker.

Donewise App Icon

Features

Core Functionality

  • Daily Task Lists: Navigate between days to plan ahead or review past tasks.
  • Real-time Collaboration: Lists update instantly across all devices using Server-Sent Events (SSE).
  • Smart Input:
    • Tags: Organize items with hashtags (e.g., Buy Milk #grocery).
    • Mentions: Assign tasks to family members using @username.
  • Drag & Drop: Reorder tasks and tags to prioritize what matters most.

New Power Features

  • Smart API & Shortcuts:
    • Natural Language Parsing: Add tasks via Siri/Shortcuts by saying "Buy milk next Friday" — it auto-schedules to the correct date.
    • QR Code Connect: Scan a QR code in Settings to instantly link mobile devices.
  • Checklists (Subtasks): Break complex tasks down into smaller steps (e.g., "Recipe" -> "Ingredients"). Supports @mentions within items!
  • Quick Snooze: Push a task to "Tomorrow" with a single tap (💤 button).
  • Global Search: Instantly find past tasks or notes across your entire history.

Organization & Details

  • Recurring Tasks: Set items to repeat automatically every X days (e.g., "Water plants") or on specific days of the week (e.g., "Take out trash" every Thursday).
  • Rich Task Details: Click any task to:
    • Add Comments for extra context.
    • Upload Attachments (images, PDFs) directly to the task.
    • View History of changes.
    • Move the task to a different date.

Group Management

  • Multiple Groups: Create separate spaces for "Home", "Work", or "Trip Planning".
  • Invite System: Generate secure invite links to easily add members.
  • Member Roles: Group creators can manage members (kick users) and transfer ownership.
  • Notifications: See who joined, left, or updated critical items.

Mobile & UI

  • Progressive Web App (PWA): Installable on iOS and Android for a native app experience.
  • Dark Mode: Automatically respects your device's theme settings.
  • Context Switching: Quickly switch between different groups via the user menu.

🛠 Prerequisites

  • Docker and Docker Compose installed on your machine.
  • (Optional) A reverse proxy (Nginx, Traefik, or Nginx Proxy Manager) for SSL/HTTPS access.

🚀 Installation Guide

1. Clone & Setup

Create a directory for your project and place the source code inside. Your structure should look like this:

/donewise
  ├── api/
  ├── app/
  ├── assets/
  ├── data/          <-- Created automatically
  ├── sql/
  ├── uploads/       <-- Created automatically
  ├── docker-compose.yml
  └── ... (PHP files)

2. Configure Environment

Edit docker-compose.yml to match your environment.

Variable Default Description
APP_URL http://localhost:8088 Crucial: Set this to your actual access URL. Used for invite links.
PHP_TZ Asia/Kolkata Set to your timezone (e.g., America/New_York) for accurate task dates.

3. Build & Run

Open a terminal in your project folder and run:

docker compose up -d --build

4. Fix Permissions (Important)

SQLite and the upload system need write access. Run these commands to fix permissions inside the container:

# 1. Allow web server to write to the database folder
docker exec -it Donewise chown -R www-data:www-data /var/www/html/data
docker exec -it Donewise chmod -R 775 /var/www/html/data

# 2. Allow web server to write to the uploads folder
docker exec -it Donewise mkdir -p /var/www/html/uploads
docker exec -it Donewise chown -R www-data:www-data /var/www/html/uploads
docker exec -it Donewise chmod -R 775 /var/www/html/uploads


📦 Database Setup & Updates

Use the built-in scripts to initialize and upgrade your database schema.

1. Initial Install

Open your browser and visit:

http://localhost:8088/install.php

(You should see a " Installed" message).

2. Apply Feature Updates

To enable all latest features (Smart Shortcuts, Subtasks, Snooze), visit the following URLs in order. Even if you are installing fresh, run these to ensure the schema is complete.

  1. http://localhost:8088/update_db_v4.php (Group Owners)
  2. http://localhost:8088/update_db_v5.php (Tags)
  3. http://localhost:8088/update_db_v6.php (Attachments)
  4. http://localhost:8088/update_db_v7.php (Schema Patches)
  5. http://localhost:8088/update_db_v8.php (Schema Patches)
  6. http://localhost:8088/update_db_v9.php (Latest Schema)
  7. http://localhost:8088/update_recurring.php (Recurring Logic)
  8. http://localhost:8088/update_features.php (Subtasks & API Tokens) <-- NEW

Security Tip: After setup, delete install.php and the update_*.php files from the server:

docker exec -it Donewise rm /var/www/html/install.php


📖 Usage Guide

Getting Started

  1. Go to http://localhost:8088/register.php.
  2. Create your first Group (e.g., "Home").
  3. You are now the Group Owner.

API & Shortcuts (iOS/Android)

  1. Go to Settings -> API Access.
  2. Scan the QR Code to get your Token.
  3. Point your shortcut to POST /api/add_task.php with Header Authorization: Bearer <token>.
  4. Smart Dates: Send text like "Book vet appointment in 3 days" or "Buy eggs next Monday" and Donewise will handle the date automatically.

Managing Tasks

  • Add: Type in the main input. Use # for tags (e.g., #urgent) and @ to assign users.
  • Edit: Click the pencil icon to rename or tap the task text to open Task Details.
  • Subtasks: In Task Details, add checklist items (e.g. ingredients). You can even @mention people in subtasks!
  • Snooze: Click the 💤 button on any task to instantly move it to tomorrow.

Recurring Items

  1. Click Recurring in the top navigation.
  2. Create rules like "Pay Internet Bill" every "28 Days".
  3. Donewise automatically checks these rules when you visit the app and adds the task to "Today" if it's due.

Troubleshooting

"General error: 14 unable to open database file"

  • The web server (www-data) cannot write to the data/ folder. Re-run the permission commands in Step 4 of Installation.

Images or Attachments fail to upload

  • Ensure the uploads/ folder exists and has write permissions.
  • Check that your file is within the PHP upload limit (default 20MB in the Dockerfile).

@Mentions list is cut off

  • This is a known display issue on smaller screens if the group has many members. It is resolved in the latest CSS update by adding a scrollbar to the dropdown.

Dates/Times are incorrect

  • Check the PHP_TZ variable in your docker-compose.yml. You must restart the container after changing this: docker compose down && docker compose up -d.