Documentation Index
Fetch the complete documentation index at: https://mintlify.com/astrxnomo/tourify/llms.txt
Use this file to discover all available pages before exploring further.
Content Resources
Cities, Categories, Places, and Events are each managed through standard Laravel resource controllers registered under the/admin prefix. Every resource exposes the full CRUD cycle: list, create, edit, and delete — all scoped behind the auth + is_admin middleware.
Deleting a city cascades to all of its associated places and events. Make sure you intend to remove all child content before deleting a city.
- Cities
- Categories
- Places
- Events
URL:
/admin/citiesCities are the top-level geographic containers for all places and events in Tourify. Each city can have one cover image stored under images/cities/ in the public disk.Listing Cities
Navigate to/admin/cities to see all cities sorted alphabetically by name.Creating a City
Go to/admin/cities/create and fill in the following fields:| Field | Required | Notes |
|---|---|---|
name | ✅ Yes | Max 255 characters |
country | ✅ Yes | Max 255 characters |
description | No | Free-form text |
image | No | Image file, max 4 MB — stored in images/cities/ |
Editing a City
Navigate to/admin/cities/{city}/edit. The form pre-populates all existing fields and displays the current image. Uploading a new image replaces the old one (the old file is deleted from storage).Deleting a City
Click Delete on any city from the index page. The city record, its image file, and all associated places and events are permanently removed.Moderating Reviews
URL:/admin/reviews
The reviews section lets admins monitor and moderate all user-submitted reviews across the platform.
Viewing Reviews
Navigate to/admin/reviews to see all reviews in reverse chronological order. Each row includes:
- The user who submitted the review (eager-loaded via
Review::with(['user', 'reviewable'])) - The reviewable entity — the place or event being reviewed
- The review content and submission timestamp
Deleting a Review
To remove an inappropriate or spam review, click Delete next to the entry. This sends:Reviews can only be deleted, not edited, from the admin panel. If a review needs correction, delete it and ask the user to resubmit.
Push Notifications
URL:/admin/notifications
The notifications section allows admins to broadcast push notifications to all registered app users simultaneously. Notifications are persisted in the database and also dispatched to devices via the Expo Push Service.
Viewing Sent Notifications
Navigate to/admin/notifications to see the most recent 100 notifications, each shown with the recipient user and timestamp.
Sending a Broadcast Notification
Open the create form
Navigate to
/admin/notifications/create or click Send Notification from the index page.Fill in the notification details
Provide the following fields:
| Field | Required | Notes |
|---|---|---|
title | ✅ Yes | Max 255 characters — shown as the push notification headline |
message | ✅ Yes | The notification body text |
Submit the form
Click Send. The controller:
- Inserts one
Notificationdatabase record per user (bulk insert viaNotification::insert()). - Collects all non-null
push_tokenvalues from the users table. - Posts a batch payload to
https://exp.host/--/api/v2/push/sendvia Laravel’s HTTP client.
Push delivery is best-effort. If the Expo Push Service request fails (network error, invalid tokens, etc.), the in-app notification records are still persisted in the database and will appear in the user’s notification inbox inside the mobile app. Only the device push alert is affected.