Skip to content

AlexChr2/Smart_Tourism_Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

244 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗺️ Smart Tourism Web App

A Website Application that helps tourists find useful information for any tourist attraction around the world, with just a single click! Powered by Wikipedia’s database through the Wikibase API, the simple to use GUI allows everyone, even with limited knowledge of GUI systems, to navigate through the application.

🧠 Overview

  • Built as my university thesis project using ASP.NET, C#, and ReactJS.
  • Integrates Wikibase API for dynamic attraction data.
  • Includes login system, user progress tracking, and data synchronization.

⚙️ Tech Stack

Frontend: React, TypeScript
Backend: ASP.NET (C#), Entity Framework
Database: SQL Server

🚀 Features

  • Interactive map page with live data fetching
  • Session-based user authentication
  • Data syncing between frontend and backend
  • Responsive and easy to use UI

📂 Installation Setup

  1. Clone the repo
  2. Install NodeJS and add it to PATH
  3. Run npm install inside the Frontend folder
  4. Install Visual Studio 2022 with the ASP.NET toolset, and the packages Microsoft.EntityFrameworkCore.SqlServer & Microsoft.EntityFrameworkCore.Tools
  5. Install SQL Server Management Studio 20.
  6. On the Connect to server dialog, type localhost in the Server Name
  7. Tick the box "Trust server certificate", then press Connect.
  8. Go to the Object Explorer → New Query, then type in the following code:
CREATE DATABASE smart_tourism_website
GO

-- Users table
CREATE TABLE Users (
	UserID INT IDENTITY(1,1) PRIMARY KEY,
	Username NVARCHAR(50) NOT NULL UNIQUE,
	Email NVARCHAR(100) NOT NULL UNIQUE,
	PasswordHash NVARCHAR(255) NOT NULL
);

-- UserClicks table
CREATE TABLE UserClicks (
	ID INT IDENTITY(1,1) PRIMARY KEY,
	UserID INT NOT NULL,
	PlaceName NVARCHAR(50) NOT NULL,
	Longitude FLOAT NOT NULL,
	Latitude FLOAT NOT NULL,
	Radius DECIMAL(5,2) NOT NULL DEFAULT 1.00,
	ClickTime DATETIME2 DEFAULT SYSDATETIME(),
	CONSTRAINT UQ_LatLong UNIQUE (Longitude, Latitude), -- Prevent duplicate clicks on the same location
	CONSTRAINT FK_UserClicks_User FOREIGN KEY (UserID) REFERENCES Users(UserID) ON DELETE CASCADE
	CONSTRAINT CHK_UserClicks_Radius CHECK (Radius >= 0.10 AND Radius <= 100.00);
);

📸 Screenshots

  • The main welcome page:
    Screenshot of the welcome page

  • A preview of the main map page: Screenshot of the main map page.

  • The main map page with the side menus open: Screenshot of the main map page with side menus open

💻 Author

Alex Chr | LinkedIn

About

A Website Application that helps tourists find useful information for any tourist attraction around the world, with just a single click! Powered by Wikipedia’s database through the Wikibase API, the simple to use GUI allows everyone, even with limited knowledge of GUI systems, to navigate through the application.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors