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