A todo and personal organisation app

Getting Started#

Prerequisites#

  • Flutter SDK 3.38.7 or later
  • Dart SDK 3.6 or later (included with Flutter)
  • Docker & Docker Compose (for server)
  • PostgreSQL 16 (or use Docker)

Quick Start#

1. Clone and Setup#

cd Toadist
flutter pub get

2. Run the Server (Optional)#

# Start PostgreSQL and server with Docker
./docker-start.sh start

# Or run server locally (requires local PostgreSQL)
cd server
dart pub get
dart run bin/server.dart

3. Run the Client#

# Web (recommended for testing)
flutter run -d chrome

# Linux
flutter run -d linux

# Android
flutter run -d android

Offline Mode#

Toadist works fully offline. On first launch, you can:

  1. Login/Register - Sync with server
  2. Continue Offline - All data stored locally

Data syncs automatically when online and authenticated.

Project Structure#

Toadist/
├── lib/
│   ├── main.dart           # App entry point
│   ├── models/             # Data models
│   │   ├── noot.dart       # Noot container
│   │   ├── activity.dart   # Activity base
│   │   └── activities/     # Activity types
│   ├── services/           # Business logic
│   │   ├── app_service.dart
│   │   ├── api_client.dart
│   │   └── noot_pool.dart
│   └── views/              # UI screens
├── server/
│   ├── bin/server.dart     # Server entry
│   └── lib/
│       ├── routes/         # API handlers
│       ├── services/       # Server services
│       └── middleware/     # Auth & CORS
├── test/                   # Unit tests
├── docs/                   # Documentation
└── docker-compose.yml      # Docker config

Running Tests#

flutter test

Building for Production#

# Web
flutter build web

# Linux
flutter build linux

# Android
flutter build apk