Skip to content

Check out the full demo of our Flutter Tourism Booking App! 🌴 Book trips, customize itineraries, and reserve for single or group travelers β€” all in one smooth workflow. Built with BLoC architecture, SOLID principles, and mock data.

Notifications You must be signed in to change notification settings

Subrata0Ghosh/tourflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏝️ Tourism Package Booking App

A Flutter application showcasing a single workflow for booking tourism packages, customizing itineraries, and reserving for single or group travelers.

This app demonstrates clean architecture using the BLoC pattern, follows SOLID principles, and includes error handling, mock data, unit tests, and an aesthetic user interface β€” all without login or API integration.


πŸ“± App Demo

Watch the demo
Click the image to watch the app demo on YouTube Shorts πŸŽ₯


🧭 App Workflow Preview

A visual flow of the Tourism Booking App πŸ‘‡

🏠 Home (Select Trip) πŸ—ΊοΈ Customize Itinerary ✏️ Edit Activities
➑️ ➑️
🧾 Review & Reserve ⚠️ Validation / Error βœ… Booking Confirmed
➑️ ➑️

✨ Features

  • 🧳 Browse Tourism Packages β€” Select from preloaded mock travel packages.
  • πŸ—ΊοΈ Customize Itinerary β€” Add or remove destinations, activities, and travel days.
  • πŸ‘₯ Reserve for Single/Group β€” Choose the number of travelers and confirm the booking.
  • βš™οΈ Error Handling β€” Graceful fallback messages and retry options.
  • 🎨 Modern UI Design β€” Responsive, clean, and visually appealing Flutter widgets.
  • 🧩 BLoC State Management β€” Clean separation between UI and logic layers.
  • πŸ§ͺ Unit Tests β€” Covers booking logic and BLoC functionality.
  • πŸ“¦ Offline Mock Data β€” No API integration required.

🧱 Architecture

This project follows the BLoC (Business Logic Component) pattern for clean separation between:

  • UI (View Layer)

  • Business Logic (Bloc Layer)

  • Data (Repository/Service Layer)

βœ… SOLID Principles applied for maintainable and testable code.

βœ… Error handling with graceful UI fallbacks.


πŸ“š Dependencies

flutter_bloc – State management

equatable – Value equality for Bloc states

mockito – Unit testing mocks

flutter_test – For widget and bloc tests


🧱 Project Structure

tourflow/
β”œβ”€ android/ ios/ web/ ...
β”œβ”€ lib/
β”‚  β”œβ”€ main.dart
β”‚  β”œβ”€ app.dart
β”‚  β”œβ”€ src/
β”‚  β”‚  β”œβ”€ models/
β”‚  β”‚  β”‚  β”œβ”€ package_model.dart
β”‚  β”‚  β”‚  β”œβ”€ itinerary_model.dart
β”‚  β”‚  β”‚  └─ reservation_model.dart
β”‚  β”‚  β”œβ”€ repository/
β”‚  β”‚  β”‚  └─ tour_repository.dart
β”‚  β”‚  β”œβ”€ bloc/
β”‚  β”‚  β”‚  β”œβ”€ tour_event.dart
β”‚  β”‚  β”‚  β”œβ”€ tour_state.dart
β”‚  β”‚  β”‚  └─ tour_bloc.dart
β”‚  β”‚  β”œβ”€ ui/
β”‚  β”‚  β”‚  β”œβ”€ screens/
β”‚  β”‚  β”‚  β”‚  β”œβ”€ package_list_screen.dart
β”‚  β”‚  β”‚  β”‚  β”œβ”€ customize_itinerary_screen.dart
β”‚  β”‚  β”‚  β”‚  └─ review_reserve_screen.dart
β”‚  β”‚  β”‚  └─ widgets/
β”‚  β”‚  β”‚     β”œβ”€ package_card.dart
β”‚  β”‚  β”‚     └─ itinerary_editor.dart
β”‚  β”‚  └─ utils/
β”‚  β”‚     └─ validators.dart
β”œβ”€ test/
β”‚  β”œβ”€ bloc/tour_bloc_test.dart
β”‚  └─ repository/tour_repository_test.dart
β”œβ”€ pubspec.yaml
└─ README.md



βš™οΈ Setup & Run Instructions

1️⃣ Clone the repository

git clone https://github.com/<your-username>/tourflow.git
cd tourism_booking_app

2️⃣ Get dependencies

flutter pub get

3️⃣ Run the app

flutter run

4️⃣ Run unit tests

flutter test

About

Check out the full demo of our Flutter Tourism Booking App! 🌴 Book trips, customize itineraries, and reserve for single or group travelers β€” all in one smooth workflow. Built with BLoC architecture, SOLID principles, and mock data.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published