eppoi is a Progressive Web App (PWA) designed to transform the tourism experience in the city of Matelica. By leveraging Artificial Intelligence, the app provides personalized itinerary recommendations and an intelligent virtual assistant to guide visitors through the city's cultural, gastronomic, and scenic highlights.
Discover Matelica like never before—personalized, intelligent, and always with you.
Tourism in Matelica has a rich history, but finding the right experiences can be overwhelming. eppoi solves this by acting as a smart travel companion. Whether a user is looking for the best Verdicchio wine tasting, a historical tour of the Palazzo Ottoni, or a hidden nature trail, eppoi learns from their preferences to suggest the perfect activity.
This repository contains the source code for the NAM group for the academic year 2025-2026.
- Progressive Web App (PWA): Installable directly from the browser on both Android and iOS. Works offline and ensures high performance.
- AI-Powered Assistant: A conversational interface that answers questions about Matelica, from opening hours to local legends.
- Personalized Recommendations: An intelligent engine suggesting itineraries and events based on user interests and personality.
- Cloud-Native Backend: Built with .NET Aspire for resilience, observability, and scalability.
This project uses a distributed architecture orchestrated by .NET Aspire. Follow these steps to set up the development environment.
- .NET 9.0 SDK (or higher)
- Docker Desktop (required for running Aspire containers)
- Node.js (for the frontend PWA)
- Clone the repository:
git clone https://github.com/SPM-25-26/NAM.git
cd NAM
- Configure Environment Variables:
Each subproject in the solution contains a
.env.examplefile. You must configure these individually.
- Navigate to each service directory.
- Copy
.env.exampleto.env. - Fill in the required keys (API keys, connection strings, etc.) in each
.envfile.
# Example for one service
cp nam.Server/.env.example nam.Server/.env
- Trust the Development Certificate: Ensure your local HTTPS development certificates are trusted.
dotnet dev-certs https --trust
- Run the Application: Launch the AppHost project. This will orchestrate all frontend, backend, and database containers.
# Run from the root solution folder, targeting the AppHost project
dotnet run --project nam/nam.AppHost
- Access the Dashboard:
Once running, the console will provide a link to the .NET Aspire Dashboard (usually
https://localhost:17149). From there, you can view logs, traces, and access the PWA endpoint.
- Onboarding: Open the app and complete the initial preference survey to help the AI understand your interests.
- Ask the AI: Click on the chat icon to ask questions like "Where can I eat traditional Vincisgrassi?"
- Install PWA:
- Mobile: Tap "Share" (iOS) or the menu dots (Android) and select "Add to Home Screen."
- Desktop: Click the install icon in the browser address bar.
- Orchestration: .NET Aspire
- Backend: C# / .NET 9+
- Frontend (PWA): [React / Blazor WASM / Vue]
- AI Integration: [e.g., OpenAI API / Semantic Kernel]
- Database: [e.g., SQL Server / Qdrant] (Managed via Aspire components)
- Observability: OpenTelemetry (Built-in with Aspire)
We welcome contributions to make eppoi better for everyone!
- Fork the repository.
- Create a Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Please ensure your code adheres to the project's coding standards.
This project is licensed under the MIT License - see the LICENSE file for details.
- [Nicol Buratti] - Backend - @nicol-buratti
- [Antonio Marseglia] - Backend/Frontend - @AntoMars14
- [Matteo Brachetta] - Frontend - @BrachettaMatteo
SPM-25-26 - University Of Camerino