Commit Graph

63 Commits

Author SHA1 Message Date
kbe
aa5dccb508 feat: Implement comprehensive event management system for promoters
This commit adds a complete event management interface allowing promoters to 
create, edit, and manage their events with full CRUD operations.

## Backend Features
- New Promoter::EventsController with full CRUD operations
- Event state management (draft, published, canceled, sold_out)
- User authorization system with can_manage_events? method
- Proper scoping to ensure users only see their own events

## Frontend Features  
- Modern responsive UI with Tailwind CSS styling
- Event listing with status indicators and quick actions
- Comprehensive event creation and editing forms
- Detailed event show page with metrics and management options
- Integration with main dashboard via promoter action buttons

## JavaScript Improvements
- Refactored inline JavaScript to dedicated Stimulus controller
- Auto-slug generation from event names with proper sanitization
- Improved code organization following Rails conventions

## Routes & Navigation
- Namespaced promoter routes under /promoter/
- RESTful endpoints with state management actions
- Proper breadcrumb navigation and user flow

## Files Added/Modified
- app/controllers/promoter/events_controller.rb (new)
- app/javascript/controllers/event_form_controller.js (new) 
- app/views/promoter/events/*.html.erb (4 new view files)
- app/models/user.rb (added authorization methods)
- app/views/pages/dashboard.html.erb (added promoter buttons)
- config/routes.rb (added promoter namespace)
- app/javascript/controllers/index.js (registered new controller)

🎯 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2025-08-31 19:22:19 +02:00
kbe
1acc3e09d4 feat: Implement payment retry system and draft ticket expiry management
- Add 30-minute expiry window for draft tickets with automatic cleanup
- Implement 3-attempt payment retry mechanism with tracking
- Create background job for cleaning expired draft tickets every 10 minutes
- Add comprehensive UI warnings for expiring tickets and retry attempts
- Enhance dashboard to display pending draft tickets with retry options
- Add payment cancellation handling with smart retry redirections
- Include rake tasks for manual cleanup and statistics
- Add database fields: expires_at, payment_attempts, last_payment_attempt_at, stripe_session_id
- Fix payment attempt counter display to show correct attempt number (1/3, 2/3, 3/3)
2025-08-31 10:22:55 +02:00
kbe
48c648e2ca feat: Checkout worflow using Stripe working. 2025-08-30 21:28:27 +02:00
kbe
b493027c86 feat: Refactor cart storage to use API architecture
Move store_cart functionality from main EventsController to API namespace:
- Add store_cart method to Api::V1::EventsController with API key bypass
- Remove store_cart from main EventsController
- Update routes to use RESTful API endpoint structure
- Maintain session-based cart storage for frontend compatibility
2025-08-30 20:14:05 +02:00
kbe
6ea3005a65 feat: Implement complete ticket purchasing flow with new TicketsController
- Create new TicketsController with actions for name collection, creation, and checkout
- Add dedicated ticket views (new.html.erb, checkout.html.erb, show.html.erb)
- Update ticket_selection_controller.js to handle form submission via AJAX
- Add store_cart endpoint in EventsController for session-based cart management
- Update routes to support new ticket flow: /tickets/new, /create, /checkout
- Fix attribute name consistency across views (title→name, starts_at→start_time)
- Add Stripe checkout integration with proper error handling
- Remove deprecated collect_names flow in favor of streamlined approach

The flow is now: Event selection → AJAX cart storage → Name collection → Checkout → Payment
2025-08-30 20:03:34 +02:00
kbe
476438c5c4 feat: Prepare to use Stripe a checkout component 2025-08-30 15:10:57 +02:00
kbe
055640b73e Fix responsive header navigation for mobile devices
- Restructure header component to properly separate desktop and mobile views
- Ensure mobile menu is hidden by default and only shown when hamburger is
clicked
- Improve layout and spacing for better mobile experience
- Maintain all existing functionality for both desktop and mobile
2025-08-30 14:36:41 +02:00
kbe
a7e83d79d7 Fix responsive header navigation for mobile devices
- Restructure header component to properly separate desktop and mobile views
- Ensure mobile menu is hidden by default and only shown when hamburger is clicked
- Improve layout and spacing for better mobile experience
- Maintain all existing functionality for both desktop and mobile
2025-08-30 14:34:22 +02:00
kbe
9404f10c93 Replace Alpine.js with Stimulus controller for header navigation
- Create header_controller.js to handle mobile menu and user dropdown
- Replace Alpine.js directives with Stimulus data attributes in header component
- Add proper event handling for click outside to close menus
- Maintain all existing functionality with improved code consistency
2025-08-30 14:30:32 +02:00
kbe
56b0a45719 Implement ticket selection with Stimulus controller and improve code documentation
- Add ticket selection functionality to event show page using Stimulus
- Create ticket_selection_controller.js for handling ticket quantity changes
- Update ticket card component and event show view to work with Stimulus
- Add comprehensive comments to all JavaScript files for better maintainability
- Remove dependent: :destroy from event ticket_types association
2025-08-30 14:26:59 +02:00
kbe
58dbcf3a6a chore: No more javascript in show 2025-08-30 14:02:48 +02:00
kbe
394190ace8 feat(home): Display events instead of hardcoded content 2025-08-30 13:51:47 +02:00
kbe
2a2c249a54 feat(show): wip to checkout 2025-08-28 21:20:33 +02:00
kbe
3fa9249bc8 Proceeding to work on controller for checkout 2025-08-28 21:05:42 +02:00
kbe
b9576b91f5 Fix ticket quantity buttons on event page - Remove syntax error in ticket card component and improve error handling in ticket cart controller 2025-08-28 20:56:48 +02:00
kbe
be3d80e541 chore: prepare checkout handling with stripe 2025-08-28 19:11:40 +02:00
kbe
911e821948 feat(events): breadcrumb on page
- Add breadcrumb on ``/events`` page
2025-08-28 18:50:19 +02:00
kbe
2fd93dc3bf style(ticket): Improve mobile layout for ticket card component
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2025-08-28 18:46:25 +02:00
kbe
a3dce5c363 style(events): Improve event display layout and styling
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2025-08-28 18:45:48 +02:00
kbe
7cdb9f468c feat: Introduce company name on event description 2025-08-28 18:17:36 +02:00
kbe
4e2445198f feat: Implement complete event ticketing system with Stripe integration and email confirmations
- Enhanced events index page with improved visual design and better information display
- Completely redesigned event show page with modern layout, ticket selection, and checkout functionality
- Implemented Stripe payment processing for ticket purchases
- Created ticket generation system with PDF tickets and QR codes
- Added email confirmation system with ticket attachments
- Updated database configuration to use SQLite for easier development setup
- Fixed gem dependencies and resolved conflicts
- Improved error handling throughout the checkout process
- Enhanced Stimulus controller for ticket cart management
- Added proper redirect handling for successful and cancelled payments
2025-08-28 18:08:05 +02:00
kbe
1989cbf6af fix header dropdown 2025-08-28 17:03:48 +02:00
kbe
784d5158b4 fix: flash message icons not displaying properly
- Add specific case for 'info' flash message type in flash_icon helper
- Initialize Lucide icons when flash message controller connects
- Ensures icons render correctly with Turbo navigation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 16:25:22 +02:00
kbe
b2d1cb5fa4 Merge branch 'feat/theme/header' into develop 2025-08-28 15:36:28 +02:00
kbe
74f8350abe feat: enhance header component with complete navigation structure
- Add responsive header with mobile hamburger menu
- Implement user authentication state handling
- Style with primary color scheme using neutral/primary variants
- Add proper navigation links for events and concerts sections
- Include user dropdown menu with profile and logout options

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:31:19 +02:00
kbe
96734480d5 working on linux 2025-08-28 15:11:42 +02:00
Kevin BATAILLE
f6675bd5e4 clean header 2025-08-28 14:33:34 +02:00
Kevin BATAILLE
a8a8c55041 working on header 2025-08-28 14:27:06 +02:00
kb6e
9513867614 refactor 2025-08-28 13:43:05 +02:00
Kevin BATAILLE
30f3ecc6ad refactor(events): replace parties concept with events throughout the application
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

This commit refactors the entire application to replace the 'parties' concept with 'events'. All controllers, models, views, and related files have been updated to reflect this change. The parties table has been replaced with an events table, and all related functionality has been updated accordingly.
2025-08-28 13:20:51 +02:00
kb6e
e084839289 Trying to work on new theme 2025-08-28 00:53:35 +02:00
kbe
6f31f99def display available tickets 2025-08-27 02:47:18 +02:00
kbe
7c7db939a2 feat(show parties): prepare to use ticket cart components 2025-08-27 02:31:20 +02:00
kbe
1806c875b5 refactor: dashboard views by extracting metric card and party item partials, and fix metric card rendering issue 2025-08-27 01:12:00 +02:00
kbe
70ad65707e chore(dashboard): translation to french 2025-08-27 00:58:36 +02:00
kbe
b9b7ac4ba1 Add flash message support and localization updates 2025-08-26 19:08:23 +02:00
Kevin BATAILLE
062820873f fix: update header and layout structure for flash messages 2025-08-26 18:34:03 +02:00
Kevin BATAILLE
c226adc36c feat: implement flash messages system with auto-dismiss notifications
- Add flash message helper and styles for consistent notifications
- Replace Devise error messages with flash-based notifications
- Add dashboard page with event statistics
- Configure SMTP settings for development and production
- Update authentication controllers to use flash messages
- Add JavaScript controller for auto-dismiss functionality
2025-08-26 18:29:56 +02:00
Kevin BATAILLE
884c6a8262 feat(auth): enhance user registration with names and improve UI
- Add first_name and last_name fields to User model with validations
- Configure Devise registrations controller to accept name parameters
- Update registration form with name fields and improved styling
- Replace Twitter Bootstrap pagination with custom Tailwind components
- Add French locale translations for pagination and models
- Update header styling with responsive design improvements
- Add EditorConfig for consistent code formatting
- Fix logout controller URL handling and improve JavaScript
- Update seed data and test fixtures with name attributes
- Add comprehensive model tests for name validations
- Add test.sh script for easier test execution

💘 Generated with Crush
Co-Authored-By: Crush <crush@charm.land>
2025-08-26 17:17:50 +02:00
Kevin BATAILLE
6b37c67b47 wip: Kaminari pagination 2025-08-26 02:57:17 +02:00
Kevin BATAILLE
a43c47a5db docs: Add QWEN.md file to customize Qwen Code interactions
Add a QWEN.md file to establish project context, preferences,
and behavior guidelines for Qwen Code interactions with the
aperonight Ruby on Rails project. This helps ensure consistent
and appropriate responses tailored to this specific project setup.

This change follows the convention of using a QWEN.md file to
customize AI assistant behavior in development environments.
2025-08-26 02:41:28 +02:00
Kevin BATAILLE
a0f008bbd4 fix: Add slug column to parties table and update seed data
- Added slug column to parties table via migration
- Updated seed data to properly assign slug values to Party records
- Fixed NoMethodError when assigning slug attribute in seed file

This resolves the ActiveModel::UnknownAttributeError that occurred
when trying to set the slug attribute on Party model instances.
2025-08-26 02:30:34 +02:00
kb6e
6385c39c10 new modes 2025-08-25 20:17:44 +02:00
kbe
6fbd24e36e feat: implement dynamic event display with party images and seed data
• Files changed: app/controllers/pages_controller.rb, app/models/party.rb, app/views/pages/home.html.erb, db/migrate/20250823145902_create_parties.rb, db/schema.rb, db/seeds.rb
• Nature of changes: Added image support to parties, updated homepage to dynamically display parties, enhanced seed data with parties and ticket types, schema updates for foreign keys
• Purpose: Enable dynamic event display on homepage with real data instead of static placeholders, add image support for parties, improve database relationships
• Impact: Homepage now shows real party data from database, parties can have images, database schema improved with proper foreign keys
• Commit message: feat: implement dynamic event display with party images and seed data
2025-08-25 03:41:15 +02:00
kbe
632055c44d chore: linting stuff 2025-08-25 00:43:03 +02:00
kbe
03717dc95b feat(test): Add comprehensive unit tests for all Rails models
- Create detailed unit tests for Party, TicketType, Ticket, User, and ApplicationRecord models
- Add fixture files for all models with valid test data
- Fix enum syntax in Party model for Rails 8 compatibility
- Add 60 total model tests covering validations, associations, and business logic
- Ensure all tests pass successfully

This provides full test coverage for the application's data models.
2025-08-25 00:40:07 +02:00
kbe
1c7a62acde refactor: clean up controller before_action definitions and routes
- Standardize before_action syntax in controllers by removing extraneous spaces
- Comment out unused bundles routes in API v1 namespace
- Clean up whitespace in routes file

These changes improve code consistency and maintainability while preparing for future feature development.

💘 Generated with Crush
Co-Authored-By: Crush <crush@charm.land>
2025-08-24 22:31:42 +02:00
kbe
98efdb44ac Modify theme for light one 2025-08-23 22:04:31 +02:00
kbe
5454e23220 New light theme 2025-08-23 21:28:35 +02:00
kbe
c7d28dca71 Add comprehensive theme rules and update authentication UI
- Create complete design system with color palette, typography, and component rules
- Update authentication pages with consistent styling
- Add footer component for better layout structure
- Remove deprecated architecture documentation

💘 Generated with Crush
Co-Authored-By: 💘 Crush <crush@charm.land>
2025-08-23 20:43:00 +02:00