TravelCompanion is a multi-project solution designed to provide a travel companion experience through a mobile application built using .NET MAUI. The solution includes API, database, SDK, and mobile app components, as well as unit tests.
This project serves as the backend API for the TravelCompanion app. It is hosted in Azure and relies on Entity Framework Core for data access.
-
Environment Variables:
TravelCompanionAppInsights
- Application Insights connection stringTravelCompanionContext
- SQL Database connection stringAppleClientId
,AppleKeyId
,AppleTeamId
- For Apple OAuthTravelCompanionGoogleClientId
,TravelCompanionGoogleClientSecret
- For Google OAuth
-
Apple OAuth Configuration:
- Add your
AuthKey_{keyId}.p8
file to the API publish directory for Apple OAuth functionality.
- Add your
This project is a SQL Database project that contains the database schema for the application. It includes tables and relationships required by the API and is built to run on Azure SQL Database.
The Domain project encapsulates the core business logic and models of the application. It includes:
- Models
- DTOs
- Shared extension methods
- Data access services
This project acts as an abstraction layer over the API, making it easier for clients, such as the MAUI app, to interact with the backend. It handles the HttpClient
logic and provides clean methods for API calls without requiring the client to manage low-level details.
This project is a .NET MAUI application that supports both Android and iOS platforms. It uses the TravelCompanion.SDK to communicate with the API and provides the front-end experience for users.
- Constants.cs file:
ApiBaseAddress
- Base address for the hosted TravelCompanion.APIOpenAI Api Key
- Key for OpenAI integrationDefault OpenAI Model
- The default model for OpenAI API usageSyncfusion License Key
- License key for Syncfusion controls
This project contains unit tests to ensure the reliability of both the SDK and Domain service methods.
- .NET 8 SDK
- Azure subscription (for hosting and database setup)
- Apple Developer Account (for iOS OAuth)
- Google Developer Account (for Google OAuth)
- Syncfusion License Key (for UI components)
- OpenAI API Key (for AI features)
-
API Hosting:
- Deploy the
TravelCompanion.API
project to an Azure App Service. - Ensure the required environment variables are set in the Azure App Service settings.
- Deploy the
-
Database Setup:
- Deploy the
TravelCompanion.Database
project to an Azure SQL Database. - Update the
TravelCompanionContext
environment variable with the connection string.
- Deploy the
-
MAUI App:
- Configure the
Constants.cs
file in theTravelCompanion.MAUI
project with the necessary values (API base address, OpenAI API key, etc.). - Build and deploy the app to Android and iOS devices.
- Configure the
-
SDK & Tests:
- Run the unit tests in the
TravelCompanion.Tests
project to ensure everything is functioning as expected.
- Run the unit tests in the
Contributions are welcome! Please submit a pull request or open an issue for any bugs or feature requests.
This project is licensed under the MIT License.