Feature Requests

Feature Requests

WayPresenter includes a built-in feature request system that allows users to submit, vote on, and track feature requests directly from the application.

Overview

  • User Submissions: Submit feature requests directly from the app
  • Email Notifications: Admins receive email notifications for new requests
  • Voting System: Users can vote on submitted requests
  • Status Tracking: Track request status through completion
  • Admin Controls: Admins can update request status
  • Beautiful UI: Modern form design with validation

Features

1. Submit Feature Requests

Access: Feature Request button in the app

How to Use:

  1. Click the "Request a Feature" button
  2. Sign in with your WayPresenter account (required)
  3. Fill out the form:
    • Title (required, min 5 characters): Brief description
    • Category (optional): Presentation, Bible, Media, AI, or General
    • Description (required, min 10 characters): Detailed explanation
  4. Click "Submit Request"
  5. Receive confirmation when successfully submitted

Form Features:

  • Real-time character counts (title: 255 max, description: 5000 max)
  • Form validation with helpful error messages
  • Auto-categorization for better organization
  • Success notification after submission

2. View Feature Requests

Access: Browse all feature requests from the app

Available Filters:

  • By Status: Open, Under Review, Planned, In Progress, Completed, Declined
  • By Category: Presentation, Bible, Media, AI, General
  • By Popularity: Most voted requests first
  • Pagination: Browse through requests

Request Information:

  • Title and description
  • Category badge
  • Status badge (color-coded)
  • Vote count
  • Submission date
  • Whether you've voted

3. Vote on Feature Requests

Access: Vote button on each feature request

How to Use:

  1. Sign in to your WayPresenter account
  2. Browse feature requests
  3. Click vote button on requests you want
  4. Button toggles your vote on/off

Voting Details:

  • One vote per user per request
  • Can change your vote by clicking again
  • Vote count displays total votes
  • Popular requests get priority

4. Admin Controls (Admins Only)

Access: Admin dropdown on feature requests

Available Actions:

  • View All Requests: See all submitted requests
  • Update Status: Change request status
  • Review Details: Full request information with user data

Status Workflow:

  1. Open - New requests (default)
  2. Under Review - Being evaluated
  3. Planned - Approved for future release
  4. In Progress - Currently being developed
  5. Completed - Feature has been released
  6. Declined - Request not feasible

Email Notifications

Admin Notification

When: Immediately after a user submits a feature request

Recipients: Configured admin email addresses

Email Contents:

Subject: [WayPresenter] New Feature Request: [Title]

🚀 New Feature Request

A new feature request has been submitted by a user:

Title: [Request Title]

Category: [Category Badge]
Status: Open

Description:
[Full description]

Votes: 0

Submitted: [Date & Time]

Submitted by:
- Username: [username]
- Email: [user@email.com]

[View Feature Request button]

Configuration:

  • Set admin email in .env:
    FEATURE_REQUEST_ADMIN_EMAIL=admin@yourdomain.com
    
  • Multiple admins: Separate with commas
  • Can be disabled: Set to empty or FEATURE_REQUEST_NOTIFICATIONS_ENABLED=false

Notification Settings:

  • Non-blocking (doesn't prevent request submission)
  • Comprehensive error logging
  • Graceful handling of email failures

API Endpoints

Public Endpoints

Create Feature Request

POST /api/v1/feature-requests

Authentication: Required (JWT token)

Request Body:

{
  "title": "Dark mode support",
  "description": "Please add dark mode to reduce eye strain",
  "category": "general"
}

Response (201 Created):

{
  "success": true,
  "data": {
    "id": 123,
    "title": "Dark mode support",
    "description": "Please add dark mode to reduce eye strain",
    "category": "general",
    "status": "open",
    "votes_count": 0,
    "created_at": "2026-04-05T12:00:00Z"
  }
}

List Feature Requests

GET /api/v1/feature-requests

Query Parameters:

  • status (optional): Filter by status
  • category (optional): Filter by category
  • sort (optional): "latest" or "popular"
  • page (optional): Page number

Response:

{
  "success": true,
  "data": {
    "requests": [...],
    "total": 42,
    "page": 1,
    "per_page": 20
  }
}

Get Specific Feature Request

GET /api/v1/feature-requests/{id}

Response: Full request details with voting status

Vote on Feature Request

POST /api/v1/feature-requests/{id}/vote

Authentication: Required

Response:

{
  "success": true,
  "data": {
    "voted": true,
    "votes_count": 1
  }
}

Admin Endpoints

Update Feature Request Status

PUT /api/v1/feature-requests/{id}/status

Authentication: Required + Admin role

Request Body:

{
  "status": "planned"
}

Valid Status Values:

  • open
  • under-review
  • planned
  • in-progress
  • completed
  • declined

Sync Users to Brevo Mailing List

POST /api/v1/auth/brevo/sync-users

Note: Brevo integration removed. Only SendGrid is active for email marketing.

Request Categories

Presentation

Features related to presentation creation, management, and display:

  • Slide transitions
  • Presentation templates
  • Export options
  • Multi-screen support

Bible

Features related to Bible content:

  • Bible translations
  • Scripture search
  • Verse formatting
  • Bible integration

Media

Features related to media handling:

  • Video playback
  • Image management
  • Audio support
  • Media library organization

AI Features

Features related to artificial intelligence:

  • Speech recognition
  • AI detection
  • Smart suggestions
  • Automation tools

General

Features that don't fit in other categories:

  • User interface improvements
  • Settings options
  • Performance enhancements
  • Documentation

Response Times

Typical response times for API calls:

OperationTime
Submit request< 1 second
View requests< 500ms
Cast vote< 300ms
Update status< 500ms
Email notification< 2 seconds

Rate Limits

API endpoints may have rate limits to prevent abuse:

  • Submit requests: 5 per hour per user
  • Vote: 60 per hour per user
  • View requests: 120 per hour
  • Status updates: 30 per hour (admin)

Guidelines for Submitting Requests

Best Practices

Do:

  • ✅ Search existing requests first to avoid duplicates
  • ✅ Be specific and descriptive
  • ✅ Explain the use case and benefit
  • ✅ Choose appropriate category
  • ✅ Vote on existing requests you want

Don't:

  • ❌ Submit vague requests like "Make it better"
  • ❌ Submit the same request multiple times
  • ❌ Use offensive or inappropriate language
  • ❌ Submit requests for bugs (use issue tracker instead)

Request Title Tips

Good Titles:

  • ✅ "Add dark mode theme support"
  • ✅ "Export presentations to PDF"
  • ✅ "Bible verse numbering options"

Poor Titles:

  • ❌ "Feature request"
  • ❌ "I have an idea"
  • ❌ "Help me"

Description Tips

Good Descriptions:

Add a dark mode theme that reduces eye strain during evening
presentations. Should invert colors automatically based on
presentation theme and be toggleable from the toolbar.
When exporting presentations to PDF, preserve the original formatting
including custom fonts, background images, and text positioning. Add option
to include or exclude speaker notes.

Poor Descriptions:

  • ❌ "Make it better"
  • ❌ "Fix the thing"
  • ❌ "Add feature X" (without explanation)

Request Lifecycle

1. Submission

  • Status: Open
  • Admins receive email notification
  • Available for voting

2. Review

  • Status: Under ReviewPlanned or Declined
  • Admin team evaluates requests
  • Based on votes, feasibility, and roadmap alignment

3. Development

  • Status: In ProgressCompleted
  • Development work happens
  • Users can track progress

4. Release

  • Status: Completed
  • Feature is released
  • Users can use new functionality

5. Closure

  • Status: Declined
  • Request will not be implemented
  • Reason may be provided
  • No further action

Voting System

How Votes Work

  • One vote per user per request
  • Revocable: Click again to remove vote
  • Anonymous to others: Only vote count is public
  • Weight: Popular requests get priority

Vote Count Display

  • Shows total votes from all users
  • Updates in real-time
  • Visible in list view and detail view
  • Influences roadmap priorities

Vote Indicators

On Your Requests:

  • Badge shows if you've voted
  • Vote button shows current state (on/off)

On Others' Requests:

  • Vote count shows total votes
  • No indication of how you voted

Admin Tools

User Management

Admins can view all users:

GET /admin/users

Response:

{
  "success": true,
  "users": [
    {
      "id": 1,
      "username": "john_doe",
      "email": "john@example.com",
      "role": "user",
      "is_active": true,
      "created_at": "2026-04-01T12:00:00Z"
    }
  ]
}

Bulk Sync Operations

SendGrid Sync (Active):

POST /auth/sendgrid/sync-users
  • Add all active users to mailing list
  • Admin-only endpoint
  • Non-blocking (email failures don't break sync)

Troubleshooting

Issue: Cannot Submit Feature Request

Check 1: Are you signed in?

  • Feature requests require authentication
  • Sign in via SSO to submit requests

Check 2: Validation errors?

  • Title: Minimum 5 characters
  • Description: Minimum 10 characters
  • Both fields are required

Check 3: Network connection?

  • Check internet connection
  • Verify API URL is correct
  • Check console for errors

Issue: Not Receiving Email Notifications

Check 1: Is admin email configured?

grep FEATURE_REQUEST_ADMIN_EMAIL .env

Check 2: Notifications enabled?

grep FEATURE_REQUEST_NOTIFICATIONS_ENABLED .env

Check 3: Email server status?

  • Check logs: storage/logs/laravel.log
  • Verify email configuration in config/mail.php
  • Test mail configuration

Issue: Vote Not Registering

Check 1: Authentication status

  • Must be signed in to vote
  • Check if token is valid

Check 2: Already voted?

  • Toggle button shows current state
  • Orange = voted, gray slash = not voted

Check 3: Network error?

  • Check console for errors
  • Verify API connection
  • Try refreshing the page

Security Considerations

User Privacy

  • ✅ Email addresses not displayed publicly
  • ✅ Only username shown to other users
  • ✅ Admin-only access to user details
  • ✅ Email addresses logged securely

Data Validation

  • ✅ Input sanitization on all fields
  • ✅ Length limits enforced
  • ✅ Type checking for enum values
  • ✅ SQL injection protection

Rate Limiting

  • ✅ API endpoints rate-limited
  • ✅ Prevents spam and abuse
  • ✅ Fair resource allocation

Access Control

  • ✅ Authentication required for most actions
  • ✅ Admin endpoints require admin role
  • ✅ JWT token validation
  • ✅ Role-based permissions

Future Enhancements

Planned improvements to the feature request system:

  1. Email Notifications for Users

    • Notify when status changes
    • Email when request is completed
    • Digest emails of popular requests
  2. Comment System

    • Users can comment on requests
    • Admin can respond
    • Discussion threads
  3. Duplicate Detection

    • Automatic duplicate request detection
    • Suggest existing similar requests
    • Merge duplicate votes
  4. Request Categories

    • Add more granular categories
    • Sub-categories within main categories
    • Tag system for cross-category requests
  5. Search & Filters

    • Full-text search
    • Advanced filtering options
    • Save search queries
  6. Request History

    • View your past requests
    • Track vote history
    • See status changes over time
  7. Email Preferences

    • Opt-in for email notifications
    • Choose notification types
    • Frequency preferences
  • User Authentication: SSO-based login system
  • User Profiles: Account management
  • Admin Dashboard: User and content management
  • Analytics: Track signup and usage metrics
  • Email Marketing: SendGrid integration for user onboarding

API Documentation

For complete API documentation, see:

Summary

The feature request system provides:

  • ✅ Easy user submission from within the app
  • ✅ Community voting on feature priorities
  • ✅ Email notifications for admins
  • ✅ Status tracking through development
  • ✅ Admin tools for request management
  • ✅ Modern, user-friendly interface

This system helps shape the future of WayPresenter by gathering community feedback and prioritizing features that matter most to users.

Chat with us on WhatsApp