Guidely is an application designed to allow users to host free walking tours, aiming at a more interactive user experience before, throughout, and after the tour. The front-end was developed using Flutter, and the back-end was developed using Firebase. A web server was also created using Flask, HTML, CSS and Javascript, in order to allow the administrators of the app to approve and reject tour guide applications.
Notable features include:
- Live location tracking for guides, allowing users to follow tours at their own pace.
- Voice chat during tours, enabling users to listen to guides without interruption from noisy environments.
- Text chat during tours for a more interactive user experience.
- Quizzes created by the tour guide, available after a tour session.
- Tour recommendation algorithm based on various factors.
- Custom web server for administrators to manage tour guide applications.
- Install Flutter. You can follow the steps provided here.
- Clone the repository.
- Navigate to the directory you installed the repository in.
- Run
flutter pub get
, to ensure you have access to the flutter libraries used across the project. - Open up an Android emulator, or an Android phone in developer mode that's connected to your computer. See the related Android Studio page for a guide on how to set up an Android Virtual Device.
- Run
main.dart
using eitherflutter run ./lib/main.dart
from the CLI or 'Run Without Debugging' in Visual Studio Code under the Run tab.
The source code is hosted inside the lib folder. Brief directory descriptions follow:
- bloc: Business logic components used throughout the project.
- configs & misc: Contain a single file each for the app config and global variables respectively.
- models: Data models used throughout the project.
- providers: Setup for the riverpod providers used across the project.
- repositories: Adheres to the repository design pattern, used for database access.
- screens: Screen widgets.
- services: Services used throughout the project.
- utils: Utility files used throughout the project.
- web_server: Contains the code necessary to run the web server for tour guide application approvals and rejections.
- widgets: Non-screen widgets used across the project.