Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 2.04 KB

File metadata and controls

45 lines (32 loc) · 2.04 KB

awbw-portal

Coverage

This project is the Portal for A Window Between Worlds. The Portal offers a place for workshop leaders to find information about Workshops and Resources, be informed of CommunityNews, Stories, and Events, and as the project evolves -- to connect with one another.

Architecture Overview

This is a Rails 8.1.0 application built with:

  • Authentication: Devise for user authentication with API token support
  • Frontend: Tailwind for styling
  • Database: MySQL with ActiveRecord ORM
  • Cache: solid_cache
  • Background Jobs: solid_queue
  • File Uploads: ActiveStorage with DigitalOcean Spaces storage
  • Email: ActionMailer for transactional emails (TODO Need to configure smtp creds)
  • API: JSON API with JWT authentication

Key Features

  • Workshop Management: Create, edit, and manage workshops
  • Resource Library: File uploads and document management
  • Event Registration: Search and register for events
  • Stories Library: Submit and view articles (stories) about workshops and facilitators
  • Person and Organization Profiles: View people and organizations at a glance
  • Reporting System: Monthly and annual reporting workflows
  • API Access: RESTful API for external integrations

Getting Started

For detailed setup and development instructions, please see our CONTRIBUTING.md guide.

Production Maintenance

Featured workshops not showing on the home page

Featured workshop IDs are cached for up to 1 year. The cache auto-invalidates when a workshop's featured, publicly_featured, or published flags change, but stale data can persist if the invalidation races with the save transaction. To force a refresh, visit:

/?bust_cache=true

This clears and repopulates the cache for all users. Only site admins (users who pass the ApplicationPolicy#manage? check) can use this param.