Flutter + SQLite ferry booking application.
- Ferry domain schema: operators, ports, routes, users, bookings
- Login and signup forms
- Route search, results, details, and booking flow
- Booking history and status updates
- Profile view/edit (role-aware)
- Admin dashboard with route/user/booking views
- App-level role checks
- SQL evidence script for DBA, view-only, and view+update users
database.sql: main SQLite schema and seed datadatabase_permissions.sql: MySQL/PostgreSQL style user/grant evidence script
Use these credentials in login:
- DBA user
- email:
dba@ferrybook.com - password:
dba123 - role:
DBA
- email:
- View-only user
- email:
viewer@ferrybook.com - password:
view123 - role:
VIEW_ONLY
- email:
- View+update user
- email:
updater@ferrybook.com - password:
update123 - role:
VIEW_UPDATE_NO_CREATE_USER
- email:
- Admin user
- email:
admin@ferrybook.com - password:
admin123 - role:
ADMIN
- email:
- Customer user
- email:
user1@ferrybook.com - password:
password123 - role:
CUSTOMER
- email:
This section is for a clean machine setup.
- Install Git
- Download and install: https://git-scm.com/download/win
- Install Flutter SDK
- Download Flutter SDK zip: https://docs.flutter.dev/get-started/install/windows
- Extract to a path like
C:\src\flutter(avoid spaces/special chars)
- Add Flutter to PATH
- Add
C:\src\flutter\binto your user/systemPath
- Install required tooling
- Install Visual Studio 2022 (for Windows desktop builds) with:
Desktop development with C++- Windows 10/11 SDK
- Optional (for Android): install Android Studio + Android SDK + emulator
- Verify installation
flutter doctor -v- Clone and open project
git clone <your-repo-url>
cd ferry-booking- Install dependencies
flutter pub get- Run project
- Windows desktop:
flutter run -d windows- Android emulator/device (optional):
flutter run -d <device_id>- Install Git and base tools
Debian/Ubuntu:
sudo apt update
sudo apt install -y git curl unzip xz-utils zip libglu1-mesa clang cmake ninja-build pkg-config libgtk-3-devArch/EndeavourOS:
sudo pacman -S --needed git curl unzip xz zip clang cmake ninja pkgconf gtk3- Install Flutter SDK
- Follow: https://docs.flutter.dev/get-started/install/linux
- Extract SDK (example):
~/develop/flutter
- Add Flutter to PATH
- Add to shell profile (
~/.bashrcor~/.config/fish/config.fish) - Example (bash/zsh):
export PATH="$HOME/develop/flutter/bin:$PATH"- Verify and enable Linux desktop support
flutter doctor -v
flutter config --enable-linux-desktop- Clone and open project
git clone <your-repo-url>
cd ferry-booking- Ensure Linux platform files exist
flutter create --platforms=linux .- Install dependencies
flutter pub get- Run project
flutter run -d linux- If
flutteris not found:- Re-check PATH and restart terminal.
- If desktop target is missing:
- Run
flutter config --enable-linux-desktopor use Windows desktop target.
- Run
- If dependencies fail:
- Run
flutter clean && flutter pub get.
- Run
flutter pub get
flutter runflutter testSQLite does not support native CREATE USER/GRANT semantics. For evaluation, both are included:
- In-app role checks in Flutter
- SQL grant script (
database_permissions.sql) for RDBMS demonstrations
- Frontend forms: login, signup, route search, payment, profile
- Backend relation design: schema relations with foreign keys in
database.sql - Frontend-backend connectivity: all major screens query or write via SQLite
- Role coverage: DBA/view-only/view+update represented in seeded users
- AI integration: N/A