{"id":44405232,"url":"https://github.com/antarr/jordan","last_synced_at":"2026-02-12T06:38:43.026Z","repository":{"id":331167796,"uuid":"998108012","full_name":"antarr/jordan","owner":"antarr","description":"A comprehensive Rails 8 application template with advanced authentication, role-based access control, and modern frontend features. Perfect for building ecommerce platforms, social media applications, enterprise software, and SaaS products.","archived":false,"fork":false,"pushed_at":"2025-12-31T00:06:55.000Z","size":1204,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-03T23:30:57.018Z","etag":null,"topics":["boilerplate-application","ruby","ruby-on-rails","template"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antarr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-07T21:59:24.000Z","updated_at":"2025-12-31T00:06:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/antarr/jordan","commit_stats":null,"previous_names":["antarr/jordan"],"tags_count":null,"template":true,"template_full_name":null,"purl":"pkg:github/antarr/jordan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antarr%2Fjordan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antarr%2Fjordan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antarr%2Fjordan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antarr%2Fjordan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antarr","download_url":"https://codeload.github.com/antarr/jordan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antarr%2Fjordan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29360644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boilerplate-application","ruby","ruby-on-rails","template"],"created_at":"2026-02-12T06:38:42.649Z","updated_at":"2026-02-12T06:38:43.014Z","avatar_url":"https://github.com/antarr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rails 8 Application Template\n\n[![CI](https://github.com/antarr/jordan/actions/workflows/ci.yml/badge.svg)](https://github.com/antarr/jordan/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/antarr/jordan/branch/main/graph/badge.svg)](https://codecov.io/gh/antarr/jordan)\n[![Ruby](https://img.shields.io/badge/ruby-3.2+-red.svg)](https://ruby-lang.org)\n[![Rails](https://img.shields.io/badge/rails-8.0.2-red.svg)](https://rubyonrails.org)\n\nA comprehensive Rails 8 application template with advanced authentication, role-based access control, and modern frontend features. Perfect for building ecommerce platforms, social media applications, enterprise software, and SaaS products.\n\n## Features\n\n### 🔐 Authentication \u0026 Security\n- **Multi-Method Authentication** - Email, phone, and WebAuthn/FIDO2 support\n- **Two-Factor Authentication (2FA)** - WebAuthn credentials for enhanced security\n- **Account Lockout System** - Configurable failed login protection with auto-unlock\n- **JWT API Authentication** - Token-based API access with refresh tokens\n- **Password Security** - Complexity requirements and secure storage\n\n### 🛡️ Role-Based Access Control (RBAC)\n- **Granular Permissions System** - Resource-action based permissions\n- **Three Default Roles** - Admin, Moderator, and User with distinct capabilities\n- **Admin Panel** - Complete role and permission management interface\n- **Authorization Framework** - Controller and view-level access control\n\n### 🗺️ Location Integration\n- **Geographic Data Support** - Latitude/longitude storage with spatial indexing\n- **Location Privacy Controls** - Public/private location settings\n- **Reverse Geocoding** - OpenStreetMap Nominatim API integration\n- **Browser Geolocation** - JavaScript-based location detection\n\n### 📝 Multi-Step Registration\n- **Wizard-Based Onboarding** - 6-step registration flow using Wicked Wizard\n- **Flexible Contact Methods** - Email or phone-based registration\n- **Profile Completion** - Username, bio, photo, and location setup\n- **Step Validation** - Progress tracking with validation at each step\n\n### 🌐 API \u0026 Integration\n- **RESTful API (v1)** - Complete API with JWT authentication\n- **Token Management** - Access and refresh token system\n- **User Data Serialization** - Structured API responses\n- **Email \u0026 SMS Integration** - Verification and notification systems\n\n### 💼 Administrative Features\n- **User Management** - Search, pagination, and account control\n- **Role Assignment** - Dynamic role and permission management\n- **Account Controls** - Admin-initiated locking/unlocking\n- **System Protection** - Core role deletion prevention\n\n### 🎨 Modern Frontend\n- **Hotwire Stack** - Turbo + Stimulus for SPA-like experience\n- **Tailwind CSS** - Responsive design with mobile-first approach\n- **Import Maps** - No-build JavaScript module management\n- **PWA Ready** - Progressive Web App scaffolding\n\n### 📧 Communication System\n- **Email Infrastructure** - Transactional emails with verification\n- **SMS Integration** - Verification codes and notifications\n- **Development Tools** - Letter Opener for email testing\n- **Multi-language Support** - I18n with locale-based routing\n\n### 🔧 Developer Experience\n- **Comprehensive Testing** - RSpec with FactoryBot and Capybara\n- **Coverage Reporting** - Combined Ruby/JavaScript coverage\n- **Code Quality Tools** - RuboCop and Brakeman integration\n- **Modern Rails Stack** - Rails 8 with Solid adapters for caching, jobs, and WebSockets\n\n## Tech Stack\n\n- **Ruby** 3.2+\n- **Rails** 8.0.2\n- **Database** Postgresl with Solid adapters\n- **Frontend** Hotwire (Turbo + Stimulus) with Tailwind CSS\n- **Testing** RSpec with SimpleCov\n- **CI/CD** GitHub Actions with Codecov integration\n\n## Using This Template\n\n### Option 1: Use GitHub Template Feature\n1. Click the \"Use this template\" button on GitHub\n2. Create your new repository\n3. Clone your new repository locally\n\n### Option 2: Clone and Customize\n1. Clone this repository\n2. Remove the existing git history\n3. Initialize as your own project\n\n```bash\ngit clone https://github.com/antarr/jordan.git your-app-name\ncd your-app-name\nrm -rf .git\ngit init\ngit add .\ngit commit -m \"Initial commit from Jordan template\"\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Ruby 3.2 or higher\n- Rails 8.0.2\n- SQLite3\n\n### Installation\n\n1. After creating your project from the template:\n```bash\ncd your-app-name\n```\n\n2. Install dependencies\n```bash\nbundle install\n```\n\n3. Set up the database\n```bash\nbin/rails db:prepare\n```\n\n4. Start the development server\n```bash\nbin/dev\n```\n\nVisit http://localhost:3000 to see your application.\n\n### First Steps After Installation\n\n1. **Update Application Name**: Change the application name in `config/application.rb`\n2. **Configure Email**: Update email settings in `config/environments/`\n3. **Customize Roles**: Modify default roles and permissions in `db/seeds.rb`\n4. **Update Branding**: Replace the coming soon page with your own landing page\n5. **Configure Location Services**: Set up your preferred geocoding service\n\n## Perfect For\n\nThis template is ideal for building:\n\n### 🛒 **E-commerce Applications**\n- User accounts with role-based permissions\n- Location-based features for shipping/stores\n- Admin panel for product and user management\n- Secure authentication with 2FA\n\n### 📱 **Social Media Platforms**\n- Multi-step user onboarding\n- Profile management with photos and bios\n- Location sharing with privacy controls\n- Role-based content moderation\n\n### 🏢 **Enterprise Applications**\n- Advanced role and permission systems\n- Multi-method authentication (including WebAuthn)\n- User management and admin controls\n- API-first architecture for integrations\n\n### 💼 **SaaS Products**\n- JWT API authentication for external integrations\n- User management with different access levels\n- Comprehensive admin interface\n- Modern, responsive frontend\n\n## Development\n\n### Running Tests\n\n```bash\n# Run all tests\nbundle exec rspec\n\n# Run tests with coverage\nCOVERAGE=true bundle exec rspec\n\n# Run specific test file\nbundle exec rspec spec/models/user_spec.rb\n```\n\n### Code Quality\n\n```bash\n# Run linter\nbin/rubocop\n\n# Run security checks\nbin/brakeman\n\n# Auto-fix linting issues\nbin/rubocop -A\n```\n\n### Database Commands\n\n```bash\n# Create and migrate database\nbin/rails db:create db:migrate\n\n# Reset database\nbin/rails db:reset\n\n# Load seed data\nbin/rails db:seed\n```\n\n## Deployment\n\nThis template is production-ready and configured for deployment with:\n\n- **Kamal** - For containerized deployment to any server\n- **Docker** - Complete containerization support\n- **GitHub Actions** - Automated CI/CD pipeline with testing and coverage\n- **Solid Adapters** - Database-backed infrastructure for scaling\n- **Security Best Practices** - CSRF protection, secure headers, and more\n\n### Deployment Checklist\n\nBefore deploying to production:\n\n1. **Environment Variables**: Configure all required environment variables\n2. **Email Provider**: Set up your email service (SendGrid, Mailgun, etc.)\n3. **SMS Provider**: Configure SMS service for phone authentication\n4. **Database**: Consider PostgreSQL for production instead of SQLite\n5. **File Storage**: Configure cloud storage for file uploads\n6. **SSL/TLS**: Ensure HTTPS is properly configured\n7. **Monitoring**: Set up error tracking and performance monitoring\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantarr%2Fjordan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantarr%2Fjordan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantarr%2Fjordan/lists"}