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.
- 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
- 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
- Razorpay Integration for secure payment processing
- Booking Management with confirmation emails
- Invoice Generation and transaction history
- Responsive Web Design with modern UI/UX
- Real-time Notifications via email integration
- Profile Management with personalized dashboards
- Search & Filter capabilities
- 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
- HTML5 with modern CSS3
- JavaScript ES6+ for interactive components
- Bootstrap 5 for responsive design
- Real-time UI updates
- Development: Visual Studio 2024 / VS Code
- Package Manager: NuGet
- Version Control: Git
- API Documentation: OpenAPI/Swagger
- .NET 9.0 SDK
- Git
- Email account for SMTP (Gmail recommended)
-
Clone the repository
git clone https://github.com/smdspace-dev/TraWell cd trawell -
Configure application settings
# Copy example configuration cp appsettings.example.json appsettings.Development.json -
Update configuration (see Configuration Guide)
- Email settings for OTP verification
- JWT secret key
- Payment gateway credentials
-
Install dependencies & run
dotnet restore dotnet run
-
Access the application
- Open:
http://localhost:5088 - API Documentation:
http://localhost:5088/swagger
- Open:
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"
}
}- Enable 2-factor authentication on Gmail
- Generate App Password: Google Account β Security β App passwords
- Use the generated password in
EmailSettings.Password
POST /auth/register- User registration with OTPPOST /auth/verify-otp- OTP verificationPOST /auth/login- User loginPOST /auth/refresh- Token refresh
GET /places- Get travel destinationsGET /hotels- Hotel search and listingsGET /packages- Tour package catalogPOST /bookings- Create bookingGET /recommendations- Personalized suggestions
- Development:
TraWell-Dev.db(SQLite) - Production:
TraWell.db(SQLite)
- Users & Roles (ASP.NET Identity)
- Places & Destinations
- Hotels & Accommodations
- Tour Packages & Bookings
- Reviews & Ratings
- 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
# Run all tests
dotnet test
# Run specific test project
dotnet test TraWell.Tests/
dotnet test TraWell.IntegrationTests/dotnet run --environment Developmentdotnet publish -c Release -o ./publish
dotnet ./publish/TraWell.dllWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
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