Prerequisites
Before you start, make sure your server meets these requirements:| Requirement | Minimum |
|---|---|
| PHP | 8.1+ |
| MySQL | 8.0+ |
| Composer | Latest stable |
| Node.js | 16.x+ (for asset builds if needed) |
| SSL certificate | Required for production |
Installation steps
Upload files to your server
Upload your entire project to the hosting server. Set the web server document root to point at the
public/ folder — not the project root.Configure your .env file
Copy the provided
.env file to your project root and update the values below for your live server.Set
APP_DEBUG=false in production. Leaving it true exposes stack traces and environment variables to the browser.Import the database SQL file
Import the provided This imports the base schema, seed data, and all initial configuration rows.
tripfy_africa.sql dump into your MySQL database:Run migrations
Apply any pending migrations on top of the imported SQL. This step adds notification templates and applies the Tripfy Africa fixes:The migration
2026_01_01_000001_tripfy_africa_fixes.php inserts the NEW_BOOKING_RECEIVED, BOOKING_ACCEPTED, BOOKING_REJECTED, and TOUR_COMPLETED notification templates, and patches any old domain references left in content_details and basic_controls.Copy the modified files
Replace these files in your project with the versions from the release ZIP. These files contain security patches, bug fixes, and Tripfy Africa branding.Controllers (
Routes
Views (
Assets (
Seeders (
app/Http/Controllers/)| File | Change |
|---|---|
CheckoutController.php | Security fixes, booking ownership checks |
User/BookingController.php | Bug fix; sends booking email to guide |
User/ReviewController.php | Corrected rating formula |
Admin/BasicControlController.php | Live colour picker + dynamic CSS generation |
| File | Change |
|---|---|
routes/web.php | HTTP method fixes, security patches |
routes/admin.php | Removed dangerous /trans route; protected utility routes behind admin auth |
resources/views/)| File | Change |
|---|---|
themes/adventra/layouts/app.blade.php | Loads dynamic colours + Tripfy CSS |
themes/adventra/layouts/user.blade.php | Dashboard with Tripfy theme |
themes/adventra/partials/header.blade.php | New header with theme toggle |
themes/adventra/partials/pwa.blade.php | Rebranded PWA popup |
themes/adventra/frontend/package/list.blade.php | New card grid |
themes/adventra/frontend/checkout/userInfo.blade.php | Step-based checkout |
admin/layouts/app.blade.php | Admin panel with Tripfy branding |
admin/control_panel/basic_control.blade.php | Colour pickers with live preview |
public/assets/)| File | Notes |
|---|---|
themes/adventra/css/tripfy.css | Full light + dark theme system |
themes/adventra/js/tripfy.js | Theme toggle, scroll reveal, interactions |
admin/css/tripfy-admin.css | Admin panel branding |
database/seeders/)| File | Notes |
|---|---|
AdminSeeder.php | Creates [email protected] |
BasicControlSeeder.php | Sets sender email to [email protected] |
NotificationSeeder.php | Updates all email templates to @tripfy.africa addresses |
Generate the dynamic CSS
Run this once after deployment so the frontend picks up your brand colours from the database:Alternatively, log in to the admin panel, navigate to Settings → Basic Control, and click Save. Saving the form regenerates the CSS automatically.
Set file permissions
storage/ and bootstrap/cache/ directories must be writable by the web server user. If your server runs PHP under a different user (e.g. nginx or apache), replace www-data accordingly.Optimise for production
After running
config:cache, changes to .env will not take effect until you run php artisan config:clear followed by php artisan config:cache again.Admin panel access
After deployment, access the admin panel at:| Credential | Value |
|---|---|
[email protected] | |
| Password | Set during initial setup or check database/seeders/AdminSeeder.php |
- Basic Control — site title, currency, primary and secondary colours (with live preview), maintenance mode
- Appearance — home page layout, tour listing variation, page themes
- Content — hero section, destinations, about page, footer, all page sections
- KYC Management — approve or reject guide identity verifications
- Packages — review, approve, hold, or reject tour packages
- Bookings — view all bookings across all guides
- Users — manage traveler and guide accounts
- Notification Templates — edit email, SMS, and push notification bodies
- Payment Gateways — configure all payment methods
- Email / SMS config — SMTP, Twilio, Infobip, and other provider settings
- Blog — full blog management
- Languages — add locales and edit translation keys
Security fixes applied
The following vulnerabilities were patched in this release. Review these if you are upgrading from an earlier version.- Dangerous
/transroute removed — this route was modifying database content without authentication. /queue-workand/schedule-runmoved behind admin auth — previously accessible without login.accept-bookingchanged GET → POST — prevents CSRF exploitation via crafted URLs.coupon/checkchanged GET → POST — prevents coupon codes appearing in server access logs.date/updatechangedRoute::any()→ POST only — limits HTTP method surface.- All booking operations scoped to authenticated user — prevents insecure direct object reference (IDOR) attacks.
- Booking ownership verified before accept / reject / complete / refund — a guide can no longer act on another guide’s bookings.
- Mass assignment risk reduced in
Bookingmodel —$fillabletightened.
Domain references fixed
All old test domains have been replaced withhttps://tripfy.africa in configuration, seeders, and content:
| Old value | Replaced with |
|---|---|
touriety.bugfinder.app | https://tripfy.africa |
trip-vendor.bugfinder.app | https://tripfy.africa |
touriety.binaryvines.com | https://tripfy.africa |
[email protected] | [email protected] |
[email protected] | [email protected] |
APP_URL=http://localhost | https://tripfy.africa |