A modern ASP.NET Core (.NET 8) web application (Razor Pages) designed to provide an immersive tourism exploration experience, featuring personalized preferences, real-time data synchronization, and AI integration.
The project focuses on delivering a seamless user experience for travelers:
- Identity Management: Full registration, authentication, and password recovery flow.
- Smart Onboarding: First-login preference collection and email verification.
- Discovery Hub: Category filters, full-text search, and interactive maps via Google Maps.
- Intelligent Ranking: Geolocation-aware sorting with personalized content fallback mechanisms.
- AI Integration: A dedicated tour guide powered by local LLMs (Ollama) with RAG context injection.
| ID | Name | Role & Responsibility | |
|---|---|---|---|
| 132676 | Diego Marinangeli | Backend & Security (Auth, RAG Logic, Proximity) | diego.marinangeli@studenti.unicam.it |
| 133115 | Riccardo Marini | AI & Architecture (Data Ingestion, Chatbot, Ranking) | riccardo.marini@studenti.unicam.it |
| 132380 | Francesco Caldarelli | Frontend & UX (UI Design, Mobile Responsiveness) | francesco.caldarelli@studenti.unicam.it |
| Layer | Technology |
|---|---|
| Backend | .NET 8 / C# 12 |
| UI Framework | Razor Pages & MVC |
| Database | Entity Framework Core (SQL Server) |
| Auth | ASP.NET Core Identity |
| Frontend | Bootstrap 5 & Bootstrap Icons |
| AI Engine | Ollama (Llama 3.1) |
| Testing | xUnit, Moq, GitHub Actions (CI) |
Controllers/– API and MVC endpoints.Pages/– Primary UI layer (Razor Pages).Data/– AppDbContext, migrations, and domain entities.Services/– Core logic (TourismApiService, AiService, etc.).wwwroot/– Static assets (CSS, JS, images)..github/– CI/CD Workflows.
- .NET SDK 8
- SQL Server (LocalDB or full instance)
- Ollama (Required for AI features)
- EF Core CLI Tools:
dotnet tool install --global dotnet-ef
- Clone the repository:
git clone [https://github.com/SPM-25-26/DFR.git](https://github.com/SPM-25-26/DFR.git) cd DFR - Database Configuration: Update the
Defaultconnection string inappsettings.json. - Initialize Database:
dotnet ef database update
- Run the App:
dotnet run
The application includes a local AI service via Ollama.
- Endpoint:
http://localhost:11434/api/chat - Model:
llama3.1 - Instruction: Run
ollama pull llama3.1before starting. - Function: Exclusive focus on Matelica tourism providing concise English responses.
Exam Project for Software Project Management 2025/2026