Vulcan is a Ruby on Rails application that facilitates Maryland Accessible Telecommunications (MAT) workflows.
-
Online Application Process
- Digital application submission
- Paper application processing and uploads
- Document upload and verification
- Application status tracking
-
Evaluation Management
- Scheduling and tracking evaluations
- Training session management
- Evaluator assignment and availability tracking
- Documentation of evaluation outcomes
-
Equipment Management
- Vendor equipment catalog
- Order processing and tracking
- Voucher generation and redemption
- Equipment distribution management
-
Program Policy Enforcement
- Automated eligibility checks
- Waiting period enforcement
- Training session limits
- Income verification rules
-
Constituent Portal
- Application status checking
- Document submission
- Appointment scheduling
- Profile management
-
Print System
- Letter generation for various notifications
- Print queue management
- Batch PDF downloads
- ✅ Authentication system (using authentication-zero)
- ✅ Basic CRUD operations
- ✅ Core views and layouts
- ✅ Admin dashboard
- ✅ Test data seeding
- ✅ User role management (Admin, Evaluator, Constituent, Vendor, Trainer, Medical Provider)
- ✅ Role-capabilities system with Stimulus controllers for toggling capabilities
- ✅ Postmark API integration for sending emails
- ✅ Print queue system for letter generation and management
- ✅ Voucher management and redemption system
- ✅ Vendor W9 review process
- ✅ VendorPortal namespace implementation (fixed controller namespace conflict)
- ✅ Email/letter correspondence templates with PDF generation
- ✅ Inbound email processing (via Action Mailbox)
- ⏳ Document OCR processing (planned)
- ⏳ Enhanced reporting system (partial)
- Ruby 3.4.2
- Rails 8.0.2
- PostgreSQL
- Tailwind CSS
- Propshaft Asset Pipeline
- Solid Queue (for background jobs)
- Postmark (for email delivery)
- Action Mailbox (for inbound email processing)
- AWS S3 (for file storage)
- Inbound Email Processing Guide - Setup and usage of email-based proof submission
- Email/Letter Consistency - Guidelines for maintaining consistent communication
- Constituent Type Standardization - Standards for constituent type handling
- Proof Attachment Guide - Complete guide to the proof attachment system
- System Testing Chrome Update - Notes on Chrome testing setup
- Ruby 3.4.2 or higher
- PostgreSQL 14 or higher
- Node.js 18 or higher
- Yarn
-
Clone the repository:
git clone https://github.com/yourusername/vulcan.git cd vulcan
-
Install dependencies:
bundle install yarn install
-
Setup database:
bin/rails db:create bin/rails db:migrate bin/rails db:seed
-
Set up environment variables:
cp config/application.yml.example config/application.yml # Edit application.yml with your credentials
-
Start the server:
bin/rails server
The application uses Minitest for testing. To run the test suite:
bin/rails test
FactoryBot is used for test data generation. Factories can be found in test/factories/
.
After seeding, the following test users are available:
Role | Password | |
---|---|---|
Admin | [email protected] | password123 |
Evaluator | [email protected] | password123 |
Constituent | [email protected] | password123 |
Vendor | [email protected] | password123 |
Medical Provider | [email protected] | password123 |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Complete API integration for Postmarkapp
- Add admin page to change user role and assign role capabilities
- Configure email templates
- Implement letter generation and print queue system
- Implement communication preference system (email/letter)
- Enhance admin dashboard views
- Enhance constituent dashboard view
- Add comprehensive application flow for constituents
- Implement document OCR processing via AWS
- Complete reporting system
- Enhance vendor transaction tracking
- Improve system tests coverage
- Maryland Accessible Telecommunications Program
- Contributors and maintainers