# 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 ```bash cd Toadist flutter pub get ``` ### 2. Run the Server (Optional) ```bash # 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 ```bash # 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 ```bash flutter test ``` ## Building for Production ```bash # Web flutter build web # Linux flutter build linux # Android flutter build apk ```