Commit Graph

114 Commits

Author SHA1 Message Date
dwindown
37680bd25b Polish email template system with UX improvements
- Consolidated multiple preview canvases into single shared preview with "Simpan & Preview" button
- Fixed double scrollbar issue in preview box by using fixed height container and scrolling=no
- Added modular email components to Tiptap editor:
  * EmailButton with URL, text, and full-width options
  * OTPBox with monospace font and dashed border styling
  * EmailTable with brutalist styling and proper header support
- Generated contextual initial email content for all template types:
  * Payment success with professional details table
  * Access granted with celebration styling and prominent CTA
  * Order created with clear next steps and status information
  * Payment reminder with urgent styling and warning alerts
  * Consulting scheduled with session details and preparation tips
  * Event reminder with high-energy countdown and call-to-action
  * Bootcamp progress with motivational progress tracking
- Enhanced RichTextEditor toolbar with email component buttons and visual separators
- Improved NotifikasiTab with streamlined preview workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 20:35:50 +07:00
dwindown
efc085e231 Implement modular email template system with preview and testing
- Create modular EmailTemplateRenderer with master shell and content separation
- Build reusable email components library (buttons, alerts, OTP boxes, etc.)
- Add EmailTemplatePreview component with master/content preview modes
- Implement test email functionality for each notification template
- Update NotifikasiTab to use new preview system with shortcode processing
- Add dummy shortcode data for testing (nama, email, order_id, etc.)
- Maintain design consistency between web and email

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 19:56:23 +07:00
dwindown
6e7b8eea1c Fix Integrasi tab layout and add save button
- Make email test inputs 50/50 with flex-1 classes
- Add save button back to Integrasi tab
- Improve button styling with border-top-2 for better separation
- Update save button text to 'Simpan Semua Pengaturan'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 19:18:49 +07:00
dwindown
9911313597 Fix missing Input import in NotifikasiTab
- Add Input import back to NotifikasiTab component
- Input components are used for email subject and webhook URL fields

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 19:16:38 +07:00
dwindown
3c902aaef5 Move email provider settings to Integrasi tab and fix database schema
- Move Mailketing API configuration from NotifikasiTab to IntegrasiTab
- Remove email provider settings from NotifikasiTab, add info card
- Update IntegrasiTab to save email settings to notification_settings table
- Add test email functionality to Integrasi tab
- Fix database schema compatibility with new email settings
- Remove GitHub remote, keep only Gitea remote
- Clean up unused imports and variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 19:13:01 +07:00
dwindown
7f918374f4 Replace SMTP configuration with Mailketing API
- Remove SMTP host/port/username/TLS configuration
- Add Mailkening API token configuration
- Update email provider dropdown (Mailketing only)
- Update test email function to use Mailketing API
- Update help text and validation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 18:57:55 +07:00
dwindown
1fe0aa0b96 Fix admin panel to use working email function (send-email-v2)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 18:41:45 +07:00
dwindown
75f8329e8e Fix port mismatch for Caddy reverse proxy
- Change application port from 3000 to 80
- Match Caddy's upstream proxy configuration
- Update healthcheck to use port 80
- Fix 502 gateway errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 23:55:56 +07:00
dwindown
967dd206fa Add healthcheck support to Dockerfile
- Install curl for health check compatibility
- Add built-in Docker healthcheck with proper timing
- Include start-period to allow server to initialize
- Fix Coolify deployment issues with health checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 23:40:06 +07:00
dwindown
7a493d0e9c Update Dockerfile for Coolify compatibility
- Replace Nginx with serve package for SPA compatibility
- Use port 3000 to match Coolify's default configuration
- Works better with Coolify's Caddy reverse proxy setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 23:26:46 +07:00
dwindown
4b5dfc6557 Configure for self-hosted deployment
- Add environment variable support for Supabase and Pakasir configurations
- Create Docker configuration with Nginx for production deployment
- Add .env.example with all required environment variables
- Remove hardcoded URLs from Supabase client and Checkout component
- Add Docker and Nginx configuration files for Coolify deployment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 23:01:39 +07:00
gpt-engineer-app[bot]
ef19864985 Refactor review UX to use name
- Align all review-related components to use profiles.name instead of profiles.full_name
- Update AdminReviews, TestimonialsSection, ProductReviews to fetch and display name via name field
- Adjust related admin member and consultant views to reference name
- Update MemberProfile editing flow placeholders to reflect name field
- Ensure public reviews still render with approved reviews only and inline summaries where applicable

X-Lovable-Edit-ID: edt-81d7dcc8-ea28-4072-9da0-5a7d623fb1ed
2025-12-21 15:38:23 +00:00
gpt-engineer-app[bot]
ed0d97bb4b Changes 2025-12-21 15:38:22 +00:00
gpt-engineer-app[bot]
f4a1dee9bd Refine review UX and fix admin
- Fix admin reviews queries to use proper profiles/user_id relation
- Update product/testimonials reviews components to reference correct profiles relation
- Ensure is_approved filtering remains for public displays
- Keep review UX focused on consulting/webinar/bootcamp entry points, not orders
- Prepare for inline review prompts without order-centric UI

X-Lovable-Edit-ID: edt-16853854-bdfa-46e3-8812-64bb44bd281f
2025-12-21 15:30:01 +00:00
gpt-engineer-app[bot]
891faa73f0 Changes 2025-12-21 15:30:01 +00:00
gpt-engineer-app[bot]
2906c94c14 Improve experience reviews flow
Implement an experience-centric review system:
- Add review modal/form and integrate with consulting, webinar, bootcamp flows
- Enable consultants to submit one review per slot after completion
- Extend reviews data model (order_id, type, etc.) with RLS coverage
- Admin reviews page wrapped in AppLayout with proper fetch and moderation
- Webinar/bootcamp prompts added inline on respective pages
- UI components for reviews reused across sections
- Add reusable ReviewModal and ConsultingHistory wiring
- Ensure only approved reviews display publicly

X-Lovable-Edit-ID: edt-26eb5d98-1267-4188-94f9-5a81716f484a
2025-12-21 15:09:52 +00:00
gpt-engineer-app[bot]
8a1ccb7acc Changes 2025-12-21 15:09:52 +00:00
gpt-engineer-app[bot]
d3f7544536 Enhance order & reviews features
- Fix: skip bucket creation when content already exists; add logic to handle existing bucket gracefully.
- Debug: investigate and resolve member order detail data fetch error; ensure proper data mapping and navigation.
- Add WhatsApp integration prompts, reviews system scaffolding, and frontend wiring for branding-driven content.
- Implement image handling improvements in RichTextEditor and ensure HTML rendering in descriptions.
- Enable ElasticEmail adapter and multi-provider email flow, plus daily/reminder capabilities.

X-Lovable-Edit-ID: edt-b568a0fb-5175-44a5-a6d0-52e2c9936894
2025-12-19 16:37:02 +00:00
gpt-engineer-app[bot]
cc7c330e83 Changes 2025-12-19 16:37:01 +00:00
gpt-engineer-app[bot]
461a14dfdc Continue remaining tasks
Implement frontend features for LMS gaps, branding, and admin consulting, plus enhancements to rich text and member order detail. This includes Google Meet webhook frontend stub, ElasticEmail adapter, HTML in descriptions, improved navigation, and improved UI/UX for consulting management and notifications.

X-Lovable-Edit-ID: edt-5031906b-9c9f-4b2f-8526-fe8a75340c65
2025-12-19 16:09:43 +00:00
gpt-engineer-app[bot]
04cae4fc54 Changes 2025-12-19 16:09:43 +00:00
gpt-engineer-app[bot]
df9dbe5cbb Enhance rich text image handling
Improve RichTextEditor to upload images to storage with optional base64 fallback, add image size controls, fix order detail navigation, and implement frontend hooks for branding and admin tasks. Also address member order detail routing issue and prep for Google Meet/ElasticEmail integration.

X-Lovable-Edit-ID: edt-a7826be1-5123-430e-a6f9-a3d1aa3f13de
2025-12-19 16:02:32 +00:00
gpt-engineer-app[bot]
e569c2cf7e Changes 2025-12-19 16:02:31 +00:00
gpt-engineer-app[bot]
d410b5b7c1 Fix order detail view HTML
- Allow HTML in Akses description and product descriptions
- Fix member order detail page so clicking shows details (adjust navigation approach)
- Review undo status against provided task list and gaps

X-Lovable-Edit-ID: edt-5b53d6da-64ae-4165-a4e2-12eaaef938a6
2025-12-19 15:45:41 +00:00
gpt-engineer-app[bot]
09558c0359 Changes 2025-12-19 15:45:40 +00:00
gpt-engineer-app[bot]
5a55257ef2 Integrate branding settings
Implement Google Meet integration, reminders, HTML in descriptions, admin order detail, fix test email, add homepage branding settings, wire branding to frontend, and ensure all settings wired. Also add admin branding homepage tab, and routing/frontend updates.

X-Lovable-Edit-ID: edt-7e1950f8-765a-4f0e-8ae7-12854ef4d2f7
2025-12-19 15:17:47 +00:00
gpt-engineer-app[bot]
7fc10126df Changes 2025-12-19 15:17:47 +00:00
gpt-engineer-app[bot]
f57bba6f9c Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 14:54:53 +00:00
gpt-engineer-app[bot]
03831cc1b7 Add admin consulting route
Implement Admin Consulting page route, show consulting card in products, and improve booking and UI flows; also add SMTP test wiring and UI tweaks.

X-Lovable-Edit-ID: edt-9a81e0ca-e632-4849-ba9a-e24ffa3206ac
2025-12-19 14:43:29 +00:00
gpt-engineer-app[bot]
b63da103cd Changes 2025-12-19 14:43:28 +00:00
gpt-engineer-app[bot]
04a140b305 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 14:37:53 +00:00
gpt-engineer-app[bot]
0484beef6b Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 14:37:24 +00:00
gpt-engineer-app[bot]
f7c15d3c6b Upgrade admin settings
- Add tabbed Pengaturan layout with Jam Kerja, Notifikasi, Konsultasi; placeholders for Branding and Integrasi
- Implement Notifikasi: SMTP settings table and templates UI with sample fields and test actions
- Move Konsultasi to settings with blocks and categories; groundwork for slot-based booking
- Wire consulting bookings flow and Google Meet placeholder; extend Pakasir webhook for consulting slots
- Add RLS policies scaffolding for new tables and branding/integration fields
- Prepare branding fields in platform_settings and integrate branding into UI
- Enable email/webhook toggling semantics and placeholder for email provider wiring

Env changes and notes:
- Requires notification_settings, notification_templates, consulting_settings, consulting_slots tables
- Adds branding and integration keys to platform_settings
- Adds Google Meet integration and ical/Meet placeholders
- Webhook enhancements and placeholder for SMTP/email sending logic

X-Lovable-Edit-ID: edt-c143f191-1012-47a4-b592-c55bb7e83319
2025-12-19 14:13:41 +00:00
gpt-engineer-app[bot]
e5d42d2d1b Changes 2025-12-19 14:13:40 +00:00
gpt-engineer-app[bot]
46caf550a6 Upgrade settings and consulting
Enhance admin Settings with tabbed UI (Jam Kerja, Notifikasi, Konsultasi), add Notifikasi templates & SMTP settings scaffolding, and implement consulting configuration plus slot-based flow scaffolds for future integration. Includes groundwork for Google Meet placeholder and calendar integration notes.

X-Lovable-Edit-ID: edt-190c1420-2c8f-4b36-86e0-c38d4735a483
2025-12-19 13:07:23 +00:00
gpt-engineer-app[bot]
7f1622613c Changes 2025-12-19 13:07:23 +00:00
gpt-engineer-app[bot]
277f7506c3 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 11:02:06 +00:00
gpt-engineer-app[bot]
0778eec288 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 11:01:34 +00:00
gpt-engineer-app[bot]
051c31e9c6 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 11:00:31 +00:00
gpt-engineer-app[bot]
604cece8b1 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 10:58:15 +00:00
gpt-engineer-app[bot]
3392932444 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 10:56:40 +00:00
gpt-engineer-app[bot]
d860f0296d Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 10:55:49 +00:00
gpt-engineer-app[bot]
86eabfddde Add Pakasir webhook edge
- Add Supabase edge function pakasir-webhook to process webhook, update orders, grant access, and log a placeholder email notification
- Wire webhook URL placeholder to use edge URL from env with default
- Update Checkout flow to use webhook-enabled callback and include simple email placeholder in function

X-Lovable-Edit-ID: edt-7ccbe571-34d0-4835-9642-d54fe961cd08
2025-12-19 08:54:49 +00:00
gpt-engineer-app[bot]
dd931f8261 Changes 2025-12-19 08:54:48 +00:00
gpt-engineer-app[bot]
b9c7ea2238 Implement Pakasir Phase 1
Add env-based Pakasir API key with fallback, create orders + transaction via Pakasir, and update checkout UI to reflect payment status and access flow. Centralize key retrieval, include placeholder callback URL, and adjust UI to show processing state and Indonesian messaging. Enable client-side access checks for paid orders in product detail and member dashboard (without edge function).

X-Lovable-Edit-ID: edt-14f89c00-5022-4166-bb29-df4832b81add
2025-12-19 06:35:21 +00:00
gpt-engineer-app[bot]
4e188b2bc6 Changes 2025-12-19 06:35:21 +00:00
gpt-engineer-app[bot]
b8a53e40e2 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 03:27:22 +00:00
gpt-engineer-app[bot]
a8a27cec94 Add consulting duration
Extend consulting with fixed duration, workhours slots, and hosted Pakasir flow including QRIS/PayPal pathways; add schemas, slot generation logic, and admin/dashboard scaffolding.

X-Lovable-Edit-ID: edt-eee63d3c-5330-4a91-8bdb-88e9bb58b640
2025-12-19 03:26:32 +00:00
gpt-engineer-app[bot]
986c7c6992 Changes 2025-12-19 03:26:31 +00:00
gpt-engineer-app[bot]
4f16122e25 Code edited in Lovable Code Editor
Edited UI in Lovable
2025-12-19 02:32:08 +00:00