Skip to content

WIP: feat(events): Add an event management system#150

Merged
adamswonder merged 10 commits intoAfrican-Ruby-Community:mainfrom
JudahSan:feature/community-core-modules
Mar 4, 2026
Merged

WIP: feat(events): Add an event management system#150
adamswonder merged 10 commits intoAfrican-Ruby-Community:mainfrom
JudahSan:feature/community-core-modules

Conversation

@JudahSan
Copy link
Collaborator

@JudahSan JudahSan commented Mar 3, 2026

Summary

This PR introduces a full event management system including CRUD operations, location-based discovery, search/filtering, and conference support.

🤝 Pair programmed with Kiro

Changes

Models

  • Add Event and Speaker models with associations, validations, and geocoding support
  • Add database migrations for events, speakers, and location data (slug, latitude, longitude)

Controllers

  • Add EventsController with full CRUD operations and authorization checks
  • Add ConferencesController to display published conference-type events

Services & Search

  • Implement EventSearchService for filtering events by query, location, date, and country
  • Add Stimulus controller with debounced search functionality

Views

  • Add event views: index, show, new, edit
  • Add event card component
  • Add speaker form component for nested speaker management

Config

  • Configure Geocoder initializer for location-based event discovery. Not working
  • Add admin and event management Rake tasks

Tests

  • Add comprehensive test suite covering controllers, models, services, and data integrity

How to Test

  1. Run migrations: rails db:migrate
  2. Visit /events to browse events
  3. Visit /conferences to see published conference-type events
  4. Test search filtering by query, location, date, and country
  5. Run the test suite: bundle exec rails test

…ration

- Implemented GitHub OAuth for sign-in and sign-up
- Added `OmniauthCallbacksController` to handle OAuth responses and failures
- Updated registration, login forms, and views with GitHub authentication buttons
- Enhanced UI to differentiate OAuth and normal user sign-ups
- Auto-populate user attributes from GitHub data
- Modified user model to support OAuth with validations and external account checks
- Added new dependencies (`omniauth`, `omniauth-github`, and `omniauth-rails_csrf_protection`)
- Updated tests and locales for GitHub OAuth handling
- Integrated dismissible alert system for enhanced user feedback during OAuth flow
- Updated multiple dependencies to latest versions, including `@hotwired/stimulus`, `@hotwired/turbo`, `tailwindcss/typography`, and `autoprefixer`
- Regenerated `yarn.lock` to include updated integrity hashes and resolutions
- Replaced older `esbuild` binary dependencies with newer versions
- Updated `.tool-versions` to use Ruby 3.4.7
- Upgraded Rails from 8.0 to 8.1 in `Gemfile` and `Gemfile.lock`
- Regenerated `Gemfile.lock` with the latest bundler version
…nd conferences

- Add Event and Speaker models with associations, validations, and geocoding support
- Create EventsController with full CRUD operations and authorization checks
- Create ConferencesController to display published conference-type events
- Implement EventSearchService for filtering events by query, location, date, and country
- Add Stimulus controller for debounced event search functionality
- Create database migrations for events, speakers, and location data (slug, latitude, longitude)
- Add event views including index, show, new, edit, and event card component
- Add speaker form component for nested speaker management within events
- Configure Geocoder initializer for location-based event discovery
- Add comprehensive test suite covering controllers, models, services, and data integrity
- Add admin and event management Rake tasks for system administration
@JudahSan JudahSan requested a review from adamswonder March 3, 2026 00:17
@adamswonder adamswonder merged commit dab6f7f into African-Ruby-Community:main Mar 4, 2026
2 checks passed
@JudahSan JudahSan deleted the feature/community-core-modules branch March 8, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants