Tag: email alerts

  • Deco Order Manager – Daily Changelog – September 30, 2025

    Deco Order Manager – Daily Changelog – September 30, 2025

    Changelog – September 30, 2025

    Email Communication System Implementation

    Overview

    Implemented comprehensive email communication system using Mailgun for user management workflows.

    New Features

    1. User Deletion

    • Added “Delete User” button to User Management page
    • Confirmation dialog to prevent accidental deletions
    • Permanently removes user and all associated data
    • Useful for cleaning up test accounts and unactivated users

    2. Email Integration with Mailgun

    • Integrated Mailgun email service using HTTP API
    • Created email service utility (/src/lib/email.ts)
    • Implemented three types of automated emails:
    Email Types:
    1. Signup Notification (Admin)
    • Sent to admin when new user signs up
    • Includes user details and link to user management
    • Helps admins quickly respond to new signups
    1. User Invitation Email
    • Sent when admin creates a new user account
    • Includes assigned stores and login link
    • Professional welcome message with HTML formatting
    1. Account Approval Email
    • Sent when admin activates a user account
    • Notifies user they can now access the system
    • Includes direct login link

    Technical Changes

    New Files

    • src/lib/email.ts – Email service with Mailgun integration
    • EMAIL_SETUP.md – Comprehensive email setup documentation
    • HEROKU_ENV_SETUP.md – Quick reference for Heroku configuration

    Modified Files

    • src/app/api/auth/signup/route.ts – Added admin notification email
    • src/app/api/admin/users/route.ts – Added invitation email on user creation
    • src/app/api/users/route.ts – Added approval email when user activated
    • src/app/dashboard/users/page.tsx – Added delete user functionality
    • package.json – Added mailgun.js and form-data dependencies

    New Dependencies

    • mailgun.js – Official Mailgun API client
    • form-data – Required for mailgun.js

    Environment Variables Required

    MAILGUN_API_KEY          # Provided by Heroku Mailgun addon
    MAILGUN_DOMAIN           # Provided by Heroku Mailgun addon
    MAILGUN_FROM_EMAIL       # Set manually: "Deco Order Manager <noreply@domain.com>"
    ADMIN_EMAIL              # Set manually: admin email for notifications

    Setup Instructions

    1. Install Dependencies:
       npm install
    1. Configure Environment Variables on Heroku:
       heroku config:set ADMIN_EMAIL="your-admin@email.com"
       heroku config:set MAILGUN_FROM_EMAIL="Deco Order Manager <noreply@yourdomain.com>"
    1. Verify Mailgun Config:
       heroku config | grep MAILGUN
    1. Deploy:
       git add .
       git commit -m "Add email communication and user deletion"
       git push heroku main

    Testing

    1. Test Signup Email:
    • Visit signup page
    • Create a test account
    • Admin should receive notification email
    1. Test Invitation Email:
    • Log in as admin
    • Create a new user
    • Check new user’s email inbox
    1. Test Approval Email:
    • Log in as admin
    • Activate a pending user
    • Check user’s email inbox
    1. Test User Deletion:
    • Log in as admin
    • Go to User Management
    • Click “Delete User” on a test account
    • Confirm deletion

    Important Notes

    • Emails are sent asynchronously and won’t block user operations
    • Email failures are logged but don’t prevent user operations
    • Mailgun sandbox domains require recipient authorization
    • For production, verify a custom domain in Mailgun
    • All emails include both HTML and plain text versions

    Benefits

    1. Better User Experience:
    • Users know when their account is approved
    • New users receive proper onboarding
    • Clear communication at each step
    1. Improved Admin Workflow:
    • Instant notifications of new signups
    • Automated invitation emails save time
    • No manual communication needed
    1. Professional Image:
    • Branded email templates
    • Timely automated responses
    • Consistent communication

    Additional Updates (Later in Day)

    3. Mailgun Production Upgrade

    • Upgraded Mailgun from sandbox to production plan (50k emails/month)
    • Fixed email delivery issues by removing sandbox restrictions
    • Now supports sending to any email address

    4. Password Reset/Set Functionality

    • Implemented /api/auth/reset-password endpoint
    • Created /set-password page for users to set/reset passwords
    • Added “Forgot Password” link on login page
    • Includes password strength validation (12+ chars, uppercase, special char)

    5. User Invitation Workflow Simplification

    • Changed from creating accounts to sending invitation emails
    • Users now sign up normally with their own password
    • Simplified “Add User” dialog – only requires email address
    • Users fill in name, password, store name during their own signup
    • More secure and less admin overhead

    6. UI/UX Improvements

    • Fixed table hover states for both light and dark modes
    • Updated email branding from “Deco Order Manager” to “Orchard Street Press – Store Manager”
    • Improved invitation email content and formatting
    • Added proper CSS context awareness for theme switching

    7. Bug Fixes

    • Fixed syntax error in users table component
    • Resolved build failures from missing imports
    • Fixed email domain configuration issues
    • Corrected table hover visibility in dark mode

    Technical Files Updated

    • src/app/api/auth/reset-password/route.ts – New password reset endpoint
    • src/app/set-password/page.tsx – New password setting page
    • src/app/page.tsx – Added “Forgot Password” link
    • src/app/globals.css – Fixed table hover for both themes
    • src/lib/email.ts – Updated branding and invitation workflow
    • src/app/dashboard/users/page.tsx – Simplified user creation dialog

    Current Status

    ✅ Email system fully functional with production Mailgun
    ✅ Password reset/set functionality working
    ✅ User invitation workflow streamlined
    ✅ UI hover states fixed for all themes
    ✅ Branding consistent across login and emails
    ✅ All build errors resolved

    Next Steps (Optional Enhancements)

    • Store assignment notification emails
    • Order status notification emails
    • Weekly summary emails for admins
    • Email template customization interface