Complete guide to using and managing the Novustell Travel website - from customer bookings to admin management, explained in simple terms.
Novustell Travel is a complete online travel booking website that helps customers discover and book amazing travel experiences across East Africa. The website handles everything from browsing destinations to completing bookings automatically.
Form Validation: No validation required at this stage
Validation Rules:
Error Handling: Invalid selections show inline errors
Validation: Real-time validation with error messages
Actions: Edit any section or confirm booking
Result: Guest becomes registered user
| Field | Type | Required | Validation Rules | Error Messages |
|---|---|---|---|---|
| Full Name | Text | Yes | 2-100 characters, letters and spaces only | "Please enter your full name" |
| Yes | Valid email format, max 254 characters | "Please enter a valid email address" | ||
| Phone Number | Text | Yes | International format (+country code) | "Please enter a valid phone number" |
| Travel Date | Date | Yes | Future date, within 2 years | "Please select a valid travel date" |
| Adults Count | Number | Yes | 1-20 adults | "Please select number of adults (1-20)" |
| Children Count | Number | No | 0-15 children | "Maximum 15 children allowed" |
| Rooms Count | Number | Yes | 1-10 rooms | "Please select number of rooms (1-10)" |
| Terms Acceptance | Checkbox | Yes | Must be checked | "Please accept terms and conditions" |
| Error Scenario | Detection Method | Recovery Action | User Experience |
|---|---|---|---|
| Session Timeout | Session expiry check | Redirect to package selection | Friendly message with restart option |
| Corrupted Data | Data validation on load | Clear corrupted data, restart step | Error message with guidance |
| Missing Package | Package existence check | Clear cart, redirect to packages | Package unavailable notification |
| Invalid Quantities | Form validation | Reset to minimum valid values | Inline validation messages |
| Network Issues | AJAX error handling | Retry mechanism with backoff | Loading indicators and retry buttons |
| Security Feature | Status | Implementation |
|---|---|---|
| Secure Cookies | โ Enabled | HTTPS-only transmission |
| HttpOnly Cookies | โ Enabled | JavaScript access blocked |
| Session Timeout | โ Configured | 24-hour expiration |
| Session Regeneration | โ ๏ธ Partial | On login only |
| Session Fixation | โ Protected | Django built-in protection |
| Protection Method | Status | Coverage |
|---|---|---|
| CSRF Middleware | โ Active | All POST requests |
| CSRF Tokens | โ Required | All forms |
| AJAX Protection | โ Implemented | X-CSRFToken header |
| SameSite Cookies | โ Configured | Lax policy |
| Referer Checking | โ Enabled | Django default |
| Vulnerability | Risk Level | Current Status | Mitigation Strategy | Priority |
|---|---|---|---|---|
| Missing 2FA | Medium | Not implemented | Implement TOTP-based 2FA | Medium |
| Session regeneration | Medium | Partial implementation | Regenerate on privilege changes | Medium |
| Rate limiting | Medium | Basic implementation | Implement comprehensive rate limiting | Medium |
| File upload security | Low | Uploadcare handles security | Additional validation layers | Low |
| Admin interface exposure | Low | Protected by authentication | Consider IP whitelisting | Low |
What it does: Manages all travel-related content including destinations, packages, and accommodations.
What it does: Manages travel articles, destination guides, and customer engagement through comments.
What it does: Handles customer accounts, bookings, inquiries, and all customer-facing features.
What it does: Manages email campaigns, newsletters, and automated customer communications.
What it does: Monitors website health, performance, and tracks system status.
Complete user flow diagram showing guest, registered user, and admin journeys
Users must register and login to access booking functionality, ensuring secure transactions and personalized experiences.
Different inquiry forms route users to appropriate specialized services (MICE, Student, NGO travel).
/admin/ using your
administrator username and password to manage all website content.
The admin interface uses CKEditor for rich text content creation across destinations, packages, and blog posts.
| Variable | Purpose | Example Value | Required | Environment |
|---|---|---|---|---|
SECRET_KEY |
Django cryptographic signing | django-insecure-xyz... | Yes | All |
DATABASE_URL |
Database connection string | postgresql://user:pass@host:port/db | Yes | Production |
EMAIL_HOST_USER |
SMTP authentication username | dedeexpeditions@gmail.com | Yes | Production |
EMAIL_HOST_PASSWORD |
Gmail app password | Yes | Production | |
UPLOADCARE_PUBLIC_KEY |
Uploadcare image service | demopublickey | Yes | All |
UPLOADCARE_SECRET_KEY |
Uploadcare authentication | demosecretkey | Yes | All |
SITE_URL |
Base site URL for links | https://novustelltravel.onrender.com | Recommended | Production |
WHATSAPP_PHONE |
WhatsApp contact number | +254701363551 | Optional | All |
SENTRY_DSN |
Error monitoring service | https://sentry.io/dsn/... | Optional | Production |
Impact: 40-60% faster page loads
Impact: 70-80% faster repeat visits
| Phase | Duration | Priority Features | Expected Impact | Resources Required |
|---|---|---|---|---|
| Phase 1 Security & Performance |
2-3 weeks | Rate limiting, caching, database optimization | 50% performance improvement | 1 Backend Developer |
| Phase 2 Payment Integration |
3-4 weeks | Stripe, M-Pesa, PayPal integration | Complete booking automation | 1 Full-stack Developer |
| Phase 3 User Experience |
4-5 weeks | PWA, live chat, recommendations | 30% conversion increase | 1 Frontend + 1 Backend Developer |
| Phase 4 Analytics & Automation |
2-3 weeks | Analytics, chatbot, email automation | Data-driven optimization | 1 Developer + Marketing |
If you can't resolve the issue using these solutions, contact our technical support team: