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.
- 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.
Frontend: React, TypeScript
Backend: ASP.NET (C#), Entity Framework
Database: SQL Server
- Interactive map page with live data fetching
- Session-based user authentication
- Data syncing between frontend and backend
- Responsive and easy to use UI
- Clone the repo
- Install NodeJS and add it to PATH
- Run
npm installinside the Frontend folder - Install Visual Studio 2022 with the ASP.NET toolset, and the packages
Microsoft.EntityFrameworkCore.SqlServer&Microsoft.EntityFrameworkCore.Tools - Install SQL Server Management Studio 20.
- On the
Connect to serverdialog, typelocalhostin theServer Name - Tick the box
"Trust server certificate", then pressConnect. - 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);
);Alex Chr | LinkedIn


