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
- 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
- 01
Tourist information about Egypt is spread across many sites and apps, and much of it exists in only one language.
- 02
Events, places and companies change constantly, so content had to come from a backend the team can update, not be hard-coded.
- 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
MapCubitand a smallDioHelperclient 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 fromgeolocator. - Route: the track screen calls the Directions API, decodes the polyline with
flutter_polyline_pointsand draws the route.
Screens
Swipe for more
Engineering notes
- 01
Bilingual content from one API
Each content type has
/enand/arendpoints. Cubits pick the endpoint from the current GetX locale while UI strings come from GetXTranslations, so content and chrome switch language together. - 02
Offline favourites
Favourites are Hive objects with generated
TypeAdapters, one box per section, opened once inmain()beforerunApp. - 03
Feature-scoped Cubits
Every feature has its own cubit and states, provided once at the root with
MultiBlocProvider, with aBlocObserverlogging transitions while debugging. - 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 fromInfo.plist. - 05
First-run flow
A cached
firstOpenflag sends new users to the video-background onboarding and returning users straight to splash and home.
Results
- Published on Google Play as
com.visit_egyptand presented as a graduation project in 2022. - With Flutter 2.10.5,
flutter analyzereports 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