Skip to content

A full-stack travel recommendation platform built with **ASP.NET Core 9.0** and **Angular featuring intelligent destination suggestions, hotel bookings, and real-time travel planning.

Notifications You must be signed in to change notification settings

Thousifibrahim/TraWell

Repository files navigation

.NET C# ASP.NET Core Entity Framework SQLite

License PRs Welcome Build Status

TraWell - Travel Recommendation Platform

Overview

TraWell is a comprehensive travel recommendation platform built with modern .NET technologies. It provides personalized travel suggestions, hotel bookings, tour packages, and seamless travel planning experiences with advanced authentication and payment integration.

Key Features

πŸ” Authentication & Security

  • JWT-based Authentication with role-based access control
  • OTP Email Verification for secure user registration
  • Multi-role Support (Admin, User, Provider)
  • Password Security with ASP.NET Core Identity

🎯 Travel Services

  • AI-Powered Recommendations based on user preferences
  • Hotel Booking System with real-time availability
  • Tour Package Management with customizable itineraries
  • Location-based Services with comprehensive place database

πŸ’³ Payment & Booking

  • Razorpay Integration for secure payment processing
  • Booking Management with confirmation emails
  • Invoice Generation and transaction history

πŸ“± User Experience

  • Responsive Web Design with modern UI/UX
  • Real-time Notifications via email integration
  • Profile Management with personalized dashboards
  • Search & Filter capabilities

πŸ—οΈ Tech Stack

Backend

  • Framework: ASP.NET Core 9.0
  • Language: C# 12.0
  • ORM: Entity Framework Core
  • Database: SQLite (Development), PostgreSQL (Production Ready)
  • Authentication: ASP.NET Core Identity + JWT
  • Email: Gmail SMTP Integration

Frontend

  • HTML5 with modern CSS3
  • JavaScript ES6+ for interactive components
  • Bootstrap 5 for responsive design
  • Real-time UI updates

DevOps & Tools

  • Development: Visual Studio 2024 / VS Code
  • Package Manager: NuGet
  • Version Control: Git
  • API Documentation: OpenAPI/Swagger

πŸš€ Quick Start

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/smdspace-dev/TraWell
    cd trawell
  2. Configure application settings

    # Copy example configuration
    cp appsettings.example.json appsettings.Development.json
  3. Update configuration (see Configuration Guide)

    • Email settings for OTP verification
    • JWT secret key
    • Payment gateway credentials
  4. Install dependencies & run

    dotnet restore
    dotnet run
  5. Access the application

    • Open: http://localhost:5088
    • API Documentation: http://localhost:5088/swagger

βš™οΈ Configuration

Required Settings

Create appsettings.Development.json with:

{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=TraWell-Dev.db"
  },
  "JwtSettings": {
    "SecretKey": "your-256-bit-secret-key",
    "Issuer": "TraWell-Dev",
    "Audience": "TraWell-Dev-Users"
  },
  "EmailSettings": {
    "SmtpHost": "smtp.gmail.com",
    "SmtpPort": "587",
    "Username": "your-email@gmail.com",
    "Password": "your-app-password",
    "FromEmail": "your-email@gmail.com",
    "FromName": "TraWell Support"
  }
}

Email Configuration

  1. Enable 2-factor authentication on Gmail
  2. Generate App Password: Google Account β†’ Security β†’ App passwords
  3. Use the generated password in EmailSettings.Password

πŸ“š API Documentation

Authentication Endpoints

  • POST /auth/register - User registration with OTP
  • POST /auth/verify-otp - OTP verification
  • POST /auth/login - User login
  • POST /auth/refresh - Token refresh

Core Features

  • GET /places - Get travel destinations
  • GET /hotels - Hotel search and listings
  • GET /packages - Tour package catalog
  • POST /bookings - Create booking
  • GET /recommendations - Personalized suggestions

πŸ—„οΈ Database Information

Database Files

  • Development: TraWell-Dev.db (SQLite)
  • Production: TraWell.db (SQLite)

Key Entities

  • Users & Roles (ASP.NET Identity)
  • Places & Destinations
  • Hotels & Accommodations
  • Tour Packages & Bookings
  • Reviews & Ratings

πŸ›‘οΈ Security Features

  • Password Hashing with ASP.NET Core Identity
  • JWT Token Security with refresh token support
  • OTP Verification for email confirmation
  • Rate Limiting for API endpoints
  • Input Validation and sanitization
  • CORS Configuration for secure cross-origin requests

πŸ§ͺ Testing

# Run all tests
dotnet test

# Run specific test project
dotnet test TraWell.Tests/
dotnet test TraWell.IntegrationTests/

πŸ“¦ Deployment

Development

dotnet run --environment Development

Production

dotnet publish -c Release -o ./publish
dotnet ./publish/TraWell.dll

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Made for ❀️ The TraWell Team ( Bengaluru ) Developed by SMD-Thousif - SWE

About

A full-stack travel recommendation platform built with **ASP.NET Core 9.0** and **Angular featuring intelligent destination suggestions, hotel bookings, and real-time travel planning.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published