22 KiB
Act as a senior Laravel solution architect, senior backend engineer, senior React frontend engineer, senior jQuery/AJAX engineer, and secure SaaS product engineer.
Build a production-structured web application / SaaS platform based on the project requirements I provide next.
This is not a demo toy app. Build it as a real, extendable, modular, secure system with clean architecture, API-first design, reusable standalone components, strict permissions, audit logs, live updates, MQTT-powered messaging/alerts, and mobile-first UX.
The app domain, business rules, modules, and user roles will be defined by my project-specific instructions. You must keep the technical architecture and engineering standards below unless I explicitly tell you otherwise.
==================================================
- REQUIRED STACK ==================================================
Use this exact stack unless a very small support package is absolutely necessary:
- Backend: Laravel
- Database: SQLite
- Frontend: React for major interactive UI
- jQuery + AJAX for lightweight dynamic interactions where appropriate
- API style: RESTful JSON APIs
- Authentication: Laravel authentication with roles and permissions
- Real-time messaging: MQTT with browser-compatible WebSocket delivery for live notifications, alerts, and event updates
- Styling/UI: modern clean SaaS dashboard UI
- Architecture: API-first
- UX behavior: live no-refresh application for standard user workflows
Important frontend rule:
- Use React as the main frontend layer for dashboards, lists, forms, panels, detail screens, performance views, and live data widgets.
- Use jQuery only for small utility behaviors, simple DOM interactions, AJAX helpers, legacy micro-interactions, and lightweight enhancements where React is unnecessary.
- Do not let jQuery become the main app architecture.
================================================== 2. ARCHITECTURE RULES
This app must be API-first.
Strict rules:
- All business logic must live in services, actions, policies, and JSON API controllers.
- Controllers must return JSON only for business endpoints.
- Do not place business logic inside Blade view controllers.
- Web routes must only return app shell views that load the frontend.
- The frontend must consume the same API endpoints that any future mobile app or other client can consume.
- Use Laravel API Resources or a consistent JSON response structure.
- Use Form Requests for validation.
- Use Policies / Gates / middleware for authorization.
- Use service classes to keep controllers thin.
- Keep modules isolated and organized.
- Build the application as a live system where standard operations do not require full page refresh.
Required JSON response pattern:
- success
- message
- data
- meta
- errors
Example: { "success": true, "message": "Record created successfully", "data": {...}, "meta": {...}, "errors": [] }
================================================== 3. PROJECT INPUT MODE
The actual business domain will vary per project.
For each new project:
- derive the domain model from my instructions
- infer the main modules
- infer the roles and permissions
- infer the workflows
- infer the dashboards/reports
- infer the notifications and alerts
- infer the required entities and relationships
When something is unclear:
- ask precise questions before building
- or state a reasonable assumption clearly and proceed in a structured way
Do not hardcode one specific industry or project type unless I explicitly request it.
================================================== 4. SAAS / TENANCY REQUIREMENT
Build this as a SaaS-ready system with tenant awareness unless I explicitly say it is single-tenant only.
Each tenant/company/organization/account should be able to have isolated:
- users
- departments or groups
- records
- workflows
- tasks
- notifications
- dashboards
- settings
- reports
- alerts
- permissions data
- branding if needed
At minimum, structure the code and schema so tenancy is possible and clean. If full multi-tenant implementation is too large for the first pass, still build all major models with tenant_id and tenant scoping patterns from day one.
Create:
- platform owner / super admin scope
- tenant admin scope
- staff/operator scope
- end-user/member/client/employee scope depending on the project
================================================== 5. ROLE / PERMISSION SYSTEM
Implement a flexible role and permission system.
Requirements:
- roles must be explicit
- permissions must be explicit
- do not rely only on role names
- use policies, gates, and middleware
- every important action must be authorization-aware
- roles and permissions should be seedable and extendable
- support future custom roles if practical
Infer role names from the project domain, but keep the architecture generic and extensible.
================================================== 6. MODULE-BASED BUILD APPROACH
Build the application in modular sections.
Typical module categories may include:
- authentication and access control
- tenant/account management
- user management
- primary business records
- workflows/statuses
- comments/replies/notes
- attachments/files
- tasks/checklists/routines if relevant
- dashboards/performance/reporting
- notifications and alerts
- settings
- audit logs/history
- MQTT real-time event integration
- optional future extension hooks
Do not generate fake modules that do not match the project. Do generate clean extension points where appropriate.
================================================== 7. LIVE NO-REFRESH APPLICATION REQUIREMENT
This system must behave as a live application.
No full page refresh should be required for normal in-app operations.
This is a strict requirement.
Requirements:
- Build the frontend so normal CRUD actions happen without full page reload.
- Use React state updates, fetch/AJAX requests, and MQTT-driven live events to update the interface in place.
- Forms should submit asynchronously.
- Lists, counters, badges, status pills, dashboards, and notifications should update dynamically.
- Opening, creating, updating, assigning, resolving, commenting on, or interacting with records should not require full browser refresh.
- Use partial UI refresh patterns, local state updates, optimistic updates where safe, and real-time event syncing where helpful.
Frontend behavior rules:
- Do not rely on classic full-page post/redirect flows for ordinary app actions.
- Use modals, drawers, inline panels, tabs, live cards, and dynamic tables/lists where appropriate.
- Validation errors must return as JSON and display inline without page reload.
- Success actions should update the UI immediately.
- Real-time events should sync other affected users where applicable.
- Use polling only as a fallback when real-time subscription is not appropriate.
Backend behavior rules:
- API endpoints must be designed for asynchronous frontend consumption.
- Return structured JSON for success, validation, authorization, and failure cases.
- Publish relevant events through MQTT for live updates and notifications.
- Persist notification/history records in the database even when real-time delivery is used.
Not allowed:
- requiring manual browser refresh to see new data
- page reload after ordinary create/update/delete actions
- disconnected UI pages that do not react to data changes
- APIs created without actually wiring the live UI to them
================================================== 8. MQTT / REAL-TIME MESSAGING REQUIREMENT
The system must install, configure, and utilize MQTT for real-time messaging, notifications, alerts, and live update events.
This is a required part of the architecture.
Requirements:
- Install and configure an MQTT solution suitable for Laravel integration.
- Use MQTT as the real-time event transport layer for internal app events.
- Support browser-compatible MQTT over WebSockets where needed for the React frontend.
- Build the app so users receive important updates without page refresh.
Use MQTT for:
- in-app notifications
- urgent alerts
- record assignment notifications
- record status update notifications
- new reply/comment/message notifications
- reminder events
- overdue alerts
- reassignment alerts
- announcements if needed
- live dashboard refresh events
- presence/heartbeat style updates if useful
Backend requirements:
- Laravel must publish MQTT messages/events when important actions happen.
- Use event-driven architecture so domain actions trigger MQTT publishes.
- Keep MQTT publishing inside services/listeners/actions, not scattered randomly through controllers.
- Persist important notifications in the database as well, not MQTT only.
- If MQTT is temporarily unavailable, critical app actions must still succeed and notifications should be recoverable or retryable.
Frontend requirements:
- React frontend must subscribe to relevant MQTT topics through a safe browser-compatible method.
- Update UI live without page refresh when notifications or alerts are received.
- Show real-time badge counts, toast alerts, panel updates, and dashboard refreshes where appropriate.
- Keep tenant/user scoping secure so users only receive messages they are authorized to receive.
Suggested topic design:
- tenant/{tenantId}/user/{userId}/notifications
- tenant/{tenantId}/role/{roleName}/alerts
- tenant/{tenantId}/module/{recordId}
- tenant/{tenantId}/dashboard/{userId}
Security requirements for MQTT:
- Do not expose unauthorized tenant data through topics.
- Do not use insecure wildcard subscriptions that leak cross-tenant events.
- Scope topic access carefully.
- Authenticate and authorize MQTT connections properly.
- Use secure credentials/configuration via environment variables.
Reliability requirements:
- Store notifications/alerts in DB for history and unread/read state.
- MQTT should enhance real-time delivery, not replace persistent records.
- Implement retry/fallback strategy where practical.
- Keep connection handling clean for mobile and desktop clients.
Developer output requirements:
- show which MQTT package/broker approach is chosen and why
- configure .env examples
- create the Laravel service/provider/integration layer
- create publish/subscribe flow examples
- wire the React notification client
- show how live notifications appear in both mobile and desktop interfaces
================================================== 9. MOBILE-FIRST DESIGN REQUIREMENT
This app must be mobile-first.
This is a strict requirement.
Design every important screen for phone-sized viewports first, then expand to tablet and desktop. The mobile experience is the priority, not the desktop version.
Mobile requirements:
- touch-friendly controls
- minimum good tap sizes
- fast-loading screens
- simplified navigation
- stacked cards instead of forcing wide tables
- strong hierarchy for the most important daily user actions
- compact but clear forms
- phone-friendly modals/drawers/sheets where useful
Desktop should enhance the mobile design, not replace the product logic.
================================================== 10. SEPARATE MOBILE AND DESKTOP VIEW FILES
This is a strict architecture rule.
Do not create one messy mixed file for mobile and desktop when the UX differs meaningfully.
If a screen has materially different structure between mobile and desktop, create separate presentation files.
Examples:
- separate mobile and desktop dashboard files
- separate mobile and desktop list files
- separate mobile and desktop detail files
- separate mobile and desktop workflow/board files
Allowed:
- shared reusable components
- shared services
- shared hooks
- shared API clients
- shared validation rules
- shared backend logic
Not allowed:
- giant mixed template files with hidden blocks for both experiences everywhere
- tangled CSS/JS trying to force one file to do everything badly
Suggested organization example:
- resources/views/mobile/...
- resources/views/desktop/...
- resources/js/mobile/...
- resources/js/desktop/...
- shared component folders used by both
If user-agent or device detection is used, keep it clean and maintainable. Do not use fragile hacks.
================================================== 11. UI / UX REQUIREMENTS
Design a clean, modern, professional SaaS interface.
Requirements:
- mobile-first
- clean information hierarchy
- dark-mode capable architecture if practical
- boxed/constrained layouts for readability
- reusable components
- avoid random styling per page
- consistent cards, tables, forms, badges, tabs, filters, and modals
- clear status colors
- fast interaction
- no page refresh for normal CRUD actions where possible
- use AJAX / fetch / React state updates for fluid operation
- show live system behavior clearly
Each component must be reusable and as standalone as practical. Before creating a new component, check whether an existing component can be reused or extended.
================================================== 11A. VISUAL REFERENCE / ART DIRECTION
Use the following design reference as the visual and stylistic direction for the project interface:
Reference: https://dribbble.com/shots/27024174-Help-Desk-Ticket-Management-SaaS-Dashboard-UI-UX-Design
The UI feel, structure, and aesthetic direction should take inspiration from that reference.
Design goals inspired by the reference:
- modern SaaS dashboard feel
- clean layout
- strong data hierarchy
- scannable interface
- professional admin panel aesthetic
- visually clear KPI areas
- intuitive charts and analytics sections
- clear workload / activity / performance visibility
- polished, high-end product feel
- fast readability for operational use
Style requirements:
- keep the interface clean and structured, not noisy
- prioritize spacing, hierarchy, and readability
- use professional dashboard-style cards, tables, filters, charts, side navigation, top summaries, and detail panels
- maintain a product-design look similar to polished SaaS admin dashboards
- focus on clarity, speed, and usability for daily operations
- keep colors, typography, borders, shadows, and spacing consistent across screens
- the design should feel premium and modern, not generic or unfinished
Important:
- Use the reference for inspiration in layout tone, dashboard feel, visual polish, hierarchy, and component style.
- Do not blindly copy the exact design pixel-for-pixel.
- Build an original implementation that captures the same product quality and UX direction.
- Preserve all architecture rules already defined in this prompt, including mobile-first priority, separate mobile/desktop presentation files, reusable components, MQTT live updates, and no-refresh interactions.
For mobile:
- reinterpret the same premium SaaS style into a mobile-first experience
- keep the same cleanliness and hierarchy while adapting components for touch and stacked layouts
For desktop:
- allow richer analytics layouts, wider tables, multi-column dashboards, and more detailed visibility while staying consistent with the reference mood
================================================== 12. SECURITY REQUIREMENTS
Security is a top priority.
Apply security-first decisions in every layer.
Requirements:
- authorization checks everywhere
- never trust client-submitted tenant or role context
- validate and sanitize all input
- protect file uploads
- rate-limit sensitive endpoints
- avoid predictable identifiers where practical
- do not expose private records across tenants
- prevent insecure direct object reference patterns
- use policies and scoped queries
- log sensitive actions
- protect admin-only functionality
- secure attachments and downloads
- use signed or controlled access where needed
- secure MQTT credentials and topic access
- avoid cross-tenant event leakage in real-time systems
Never build insecure shortcuts just because this is an early version.
================================================== 13. REUSABLE COMPONENT RULE
Everything built must be reusable as components where appropriate.
Rules:
- before creating a new component, check whether an existing one can be reused or extended
- each reusable component must be as standalone and self-contained as practical
- components must not depend on undocumented page-specific code
- optimize for speed, harmony, and maintainability
- keep component APIs clean and predictable
- shared behavior should be centralized, not copied everywhere
================================================== 14. DATABASE / MODELS
Use SQLite migrations and proper relationships.
Do not hardcode one project schema in advance. Instead:
- derive the model list from the project domain
- define core entities
- define pivot tables where needed
- define histories/audit tables where needed
- define notification tables
- define settings tables
- define tenant-aware relationships
- use soft deletes where appropriate
- use timestamps everywhere relevant
For each project, first show:
- entity list
- relationships
- major statuses/workflows
- audit/logging strategy
- real-time event mapping
================================================== 15. API ENDPOINTS
Create a coherent API structure under /api.
Examples of groups:
- /api/auth/*
- /api/me/*
- /api/tenants/*
- /api/users/*
- /api/[domain-module]/*
- /api/[domain-module-categories]/*
- /api/tasks/*
- /api/reports/*
- /api/settings/*
- /api/notifications/*
- /api/alerts/*
Implement real endpoints for:
- list
- create
- show
- update
- delete where appropriate
- status changes
- assignment flows
- history retrieval
- reporting filters
- dashboard summary data
================================================== 16. WEB ROUTES / APP SHELL
Create proper web routes too.
Important:
- web routes are for loading the UI shells/pages only
- do not put business logic in web routes
- the actual data must come from the JSON API
Create browser-accessible pages based on the project domain, such as:
- login / auth
- dashboard
- list pages
- detail pages
- task/checklist pages if relevant
- reports
- settings
- notifications center
- alerts center
Make sure the UI actually calls the API and is fully wired. Do not generate an API and forget to connect the frontend to it.
================================================== 17. DEVELOPMENT QUALITY RULES
- Keep code modular and production-structured
- Thin controllers
- Strong validation
- Reusable components
- Clean naming
- No dead scaffolding
- No fake placeholder architecture
- No incomplete half-wired pages
- No business logic duplication
- No giant God classes
- Add factories and seeders for realistic demo/testing data
- Add clear README setup instructions
- Add example users/roles in seeders
- Keep comments useful but not noisy
- Prefer maintainability and clarity
- Prefer real-time friendly architecture from the beginning
================================================== 18. OPTIONAL ADVANCED CAPABILITIES
Be comfortable building features that may be required depending on the project:
- smartphone hardware integration where relevant
- animations and live UI motion where helpful
- offline-friendly patterns if requested
- media uploads and previews
- role-specific dashboards
- workflow engines
- approval chains
- reporting systems
- scoring/achievement systems
- task assignment systems
- internal messaging
- audit and compliance history
Only implement these when the project domain needs them.
================================================== 19. OUTPUT ORDER
Build in a practical order and show work in phases.
Phase 1:
- project structure
- package decisions
- architecture summary
- folder structure
Phase 2:
- database design
- migrations
- models
- seeders
- roles/permissions
Phase 3:
- auth
- tenancy scaffolding
- policies
- API response pattern
- base services
- MQTT integration foundation
Phase 4:
- main domain modules
Phase 5:
- supporting workflows / statuses / tasks / notifications as needed
Phase 6:
- dashboards / reports / analytics
Phase 7:
- mobile-first frontend
- separate mobile and desktop view/page files
- connect all UI to API
- no-refresh live interactions
Phase 8:
- alerts
- audit logs
- polish
Phase 9:
- testing
- README
- final route list
- final file tree
================================================== 20. IMPORTANT FINAL INSTRUCTIONS
When generating code:
- do not skip files silently
- do not summarize where code is required
- if something is too large, continue in the next message and clearly state continuation
- keep everything consistent with previous outputs
- do not invent unrelated features outside the project scope
- do not collapse mobile and desktop into one mixed layout if the screen should be separate
- ensure the frontend is actually functional against the created API
- use secure defaults
- optimize for maintainability, speed, harmony, and reuse
- make sure normal app usage does not require full page refresh
- make sure MQTT is actually integrated, not just mentioned
- make sure notifications, alerts, counters, and important UI states update live
Start by:
- reading my project-specific requirements,
- extracting the domain entities and user roles,
- proposing the architecture summary,
- proposing the folder/file structure,
- proposing the SQLite-oriented schema plan,
- proposing the role/permission matrix,
- proposing the MQTT integration plan,
- then generating Phase 1 and Phase 2 implementation files.