Prerequisites
Before installing AndanDo, ensure you have the following requirements:Required Software
- .NET SDK 10.0 (or 8.0+)
- SQL Server 2019+ or SQL Express
- Git for source control
- Visual Studio 2022+ or VS Code
External Services
- Internet connection (for Nominatim geolocation)
- PayPal Developer Account (optional, for payments)
- Google Maps API Key (optional, for maps)
- SMTP Server (optional, for emails)
If you don’t have .NET 10 SDK, you can use .NET 8.0 by changing
TargetFramework in AndanDo.csproj to net8.0.Installation Steps
Install .NET SDK
Download and install the .NET SDK from dotnet.microsoft.com.Verify installation:Expected output:
10.0.x or 8.0.xRun Database Migrations
Execute the database schema scripts to create all required tables and stored procedures:
Configure Application Settings
Navigate to the project directory and configure See the Configuration section below for detailed settings.
appsettings.json:Restore NuGet Packages
Install all dependencies:This installs:
- Microsoft.Data.SqlClient v6.1.3
- System.IdentityModel.Tokens.Jwt v8.14.0
- MailKit v4.14.1
- System.Drawing.Common v8.0.7
Configuration
Database Connection
Configure the SQL Server connection inappsettings.json:
appsettings.json
For Azure SQL Database, use:
Server=tcp:yourserver.database.windows.net,1433;Initial Catalog=AndandoDB;User ID=youruser;Password=yourpass;Encrypt=True;JWT Authentication
Configure JWT settings for secure authentication:appsettings.json
SMTP Email Configuration
Configure email service for notifications and password resets:appsettings.json
PayPal Integration
Configure PayPal for payment processing:appsettings.json
Create PayPal Developer Account
Visit developer.paypal.com and create a developer account.
Create App Credentials
Create a new app in the PayPal Developer Dashboard to get
ClientId and ClientSecret.Environment-Specific Configuration
Createappsettings.Development.json for local development:
appsettings.Development.json
appsettings.Development.json overrides settings from appsettings.json when running in Development mode.Project Structure
Understanding the AndanDo project structure:Service Registration
AndanDo services are registered inProgram.cs:
Program.cs
Data Models
Core DTOs
Security Considerations
Password Hashing
PBKDF2 with SHA256, 100,000 iterations, 16-byte salt, 32-byte key
JWT Tokens
Configurable expiration, secure secret key, issued and audience claims
SQL Injection Prevention
Parameterized queries and stored procedures throughout
HTTPS Enforcement
HSTS enabled, HTTPS redirection in production
Running in Production
Build for Production
Run as a Service
Troubleshooting
Database connection fails
Database connection fails
Symptoms: Cannot connect to SQL ServerSolutions:
- Verify SQL Server is running:
services.msc(Windows) orsystemctl status mssql-server(Linux) - Test connection with SQL Server Management Studio or Azure Data Studio
- Check firewall allows port 1433
- Verify connection string format
- Ensure user has proper permissions
JWT authentication errors
JWT authentication errors
Symptoms: Users cannot log in, token validation failsSolutions:
- Ensure
SecretKeyis at least 32 characters - Verify
IssuerandAudiencematch in configuration - Check token expiration time is reasonable
- Clear browser storage and try again
PayPal integration not working
PayPal integration not working
Symptoms: Payment creation fails, orders cannot be capturedSolutions:
- Verify
ClientIdandClientSecretare correct - Check
BaseUrlmatches your mode (sandbox vs live) - Ensure PayPal developer account is active
- Review application logs for specific error messages
- Test with PayPal’s sandbox test accounts
Image uploads failing
Image uploads failing
Symptoms: Tour images don’t uploadSolutions:
- Verify
wwwroot/uploads/directory exists - Check directory has write permissions
- Ensure file size is within limits
- Verify image format is supported (JPG, PNG)
Email notifications not sending
Email notifications not sending
Symptoms: Users don’t receive emailsSolutions:
- Verify SMTP settings are correct
- Check SMTP server allows connections from your IP
- For Gmail, ensure “App Passwords” are enabled
- Review firewall rules for outbound SMTP (port 587)
- Check application logs for SMTP errors
Next Steps
Tour Management
Learn how to create, edit, and manage tours with all features
User Authentication
Understand the authentication flow and user management
Booking System
Explore the multi-step booking workflow and reservation management
Dashboard Features
Discover creator dashboard capabilities and reports
Additional Resources
.NET Documentation
Official Microsoft .NET documentation
Blazor Server
Learn more about Blazor Server
SQL Server
SQL Server documentation and guides
PayPal Developer
PayPal integration documentation