Skip to content

🌍✈️A full-stack travel app built with Flutter, Go, and gRPC for personalized travel suggestions, rich insights, and offline access. Dive in and contribute! 🀝

License

Notifications You must be signed in to change notification settings

Pr0nE/trip-brain-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Travel Brain 🌍✈️

Welcome to Travel Brain! Your go-to app for personalized travel suggestions tailored to your interests and dislikes. Get travel notes, historical background, and more!

Features 🌟

  • Travel Suggestions πŸ—ΊοΈ: Get destinations that match your vibe.
  • Insightful Information πŸ“š: Learn more about each place.
  • gRPC Communication ⚑: Fast and efficient backend communication.
  • Offline Support πŸ“΄: No internet? No problem!

Demo video

Trip.Brain.Demo.mp4

Architecture πŸ—οΈ

This project is organized into three main layers: UI, Data, and Domain. Each layer is in its own package to prevent code mixing.

  • UI Package 🎨: Widgets only, depends on domain.
  • Data Package πŸ’Ύ: Classes that produce domain language.
  • Domain Package πŸ› οΈ: Interfaces and models only.
  • App Package πŸ“¦: The glue that binds everything.

πŸ“ Upcoming: Detailed article on architecture.

Getting Started πŸš€

Prerequisites πŸ› οΈ

  • Flutter SDK
  • Docker
  • Firebase project
  • OpenAI API Key
  • Unsplash API Key
  • Google Client ID

API Keys and Client ID Setup πŸ”‘

  1. OpenAI API Key: Required for natural language processing features.
  2. Unsplash API Key: Needed for fetching dynamic travel images.
  3. Google Client ID: For Google Sign-In authentication.

Firebase Setup πŸ”₯

Provide these files for Firebase:

  • android/app/google-services.json
  • lib/firebase_options.dart
  • ios/firebase_app_id_file.json
  • ios/Runner/GoogleService-Info.plist

Step 1: Env Setup 🌱

Rename .env.example to .env and fill it out.

mv .env.example .env

πŸ“ Note: Open .env and complete the variables.

Step 2: Docker Up 🐳

Run this to start Docker containers:

docker compose up -d

🟒 Success: Containers should be running.

Step 3: Flutter Run πŸƒβ€β™‚οΈ

Run your Flutter app:

flutter run

Contributing 🀝

We welcome your help! Here's what you can do:

  1. Backend Refactor πŸ› οΈ: Assistance needed for refactoring Go code.
  2. Platform Testing πŸ“±: Help needed for iOS and web.
  3. Testing πŸ§ͺ: Tests are in progress.
  4. UI/UX 🎨: Room for improvement.

License πŸ“„

MIT

Contact πŸ“ž

Questions? Reach out to Mohammad Teimouri.

About

🌍✈️A full-stack travel app built with Flutter, Go, and gRPC for personalized travel suggestions, rich insights, and offline access. Dive in and contribute! 🀝

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published