Skip to content
All projects
Source code Open source

Visit Egypt

Your guide to Egypt in one app

A bilingual Arabic and English tourism guide for Egypt: places by city, events, culture, transport reviews, maps with directions, weather, currency, QR and chat.

Country
Egypt
Type
Source code
Timeline
2021–2022
Platforms
Android · iOS
Visit Egypt banner
Languages, Arabic and English
2

Overview

Visit Egypt answers the questions a tourist has inside Egypt: what is in this city, what is happening this week, how do I get there, and who do I call if something goes wrong.

It lists places in every city, events, Egyptian culture, transport and tourism companies with reviews, embassy and emergency numbers, a map with place search and directions, weather, a currency converter, a QR reader and chat between users, all in Arabic and English.

It was a 2021–2022 team graduation project, published on Google Play and now shared with full source as a Flutter 2.x codebase.

The challenge

  1. 01

    Tourist information about Egypt is spread across many sites and apps, and much of it exists in only one language.

  2. 02

    Events, places and companies change constantly, so content had to come from a backend the team can update, not be hard-coded.

  3. 03

    Tourists need practical tools that keep working on bad connectivity: offline favourites, emergency numbers and directions.

Highlights

Discover

  • Every city, from Sharm El-Sheikh to Luxor and Cairo, with hotels, restaurants and beaches.
  • Conferences, exhibitions and festivals with category and price tags.
  • Egyptian culture: movies, novels, books and songs with details and links.
  • Users can add places, events and cultural works, and comment on and rate every item.

Get around

  • Map with Google Places search and autocomplete, category shortcuts and routes from the Directions API.
  • Transport and tourism companies with contacts, links and user reviews.
  • Weather and forecast for any Egyptian city, with charts.
  • Currency converter and QR code reader.

Stay safe

  • Emergency numbers including police, ambulance, tourism police and fire.
  • Embassy numbers for many countries.
  • Tap to call, long-press to copy.

Account and experience

  • Sign in with email, Google or Facebook through Firebase Auth, with full profile editing.
  • Chat with other users and with the admin on Cloud Firestore.
  • Offline favourites per section with Hive.
  • Arabic and English, dark mode, FCM push with a toggle and a video-background onboarding.

Signature feature

Find any place, then get there

  • The map module runs on a MapCubit and a small DioHelper client for Google Maps web services.
  • Search: typing calls Places Autocomplete, selecting a result calls Place Details, and category tiles run a Places Text Search such as pharmacy in Cairo.
  • Show: results become markers on GoogleMap, with the user's position from geolocator.
  • Route: the track screen calls the Directions API, decodes the polyline with flutter_polyline_points and draws the route.

Swipe for more

Engineering notes

  1. 01

    Bilingual content from one API

    Each content type has /en and /ar endpoints. Cubits pick the endpoint from the current GetX locale while UI strings come from GetX Translations, so content and chrome switch language together.

  2. 02

    Offline favourites

    Favourites are Hive objects with generated TypeAdapters, one box per section, opened once in main() before runApp.

  3. 03

    Feature-scoped Cubits

    Every feature has its own cubit and states, provided once at the root with MultiBlocProvider, with a BlocObserver logging transitions while debugging.

  4. 04

    Secrets out of the repo

    API keys and the backend URL are read from --dart-define. The Android Maps key is injected through a manifest placeholder and the iOS key from Info.plist.

  5. 05

    First-run flow

    A cached firstOpen flag sends new users to the video-background onboarding and returning users straight to splash and home.

Results

  • Published on Google Play as com.visit_egypt and presented as a graduation project in 2022.
  • With Flutter 2.10.5, flutter analyze reports 0 errors and 0 warnings.
  • The listing and demo website are no longer live, so no usage numbers are claimed.

Stack

  • Flutter
  • Dart
  • Bloc / Cubit
  • GetX
  • Provider
  • Firebase Auth
  • Cloud Firestore
  • FCM
  • Google Maps
  • Places & Directions API
  • Hive
  • Dio
  • OpenWeatherMap
  • Syncfusion Charts