A comprehensive local service marketplace platform built with Ruby on Rails.
For testing the application in production, use these credentials:
- Email: admin.test@radiusapp.com
- Password: TestAdmin123!
- Features: User management, service approval, analytics, system settings
- Email: consumer.test@radiusapp.com
- Password: TestConsumer123!
- Features: Search services, book appointments, leave reviews, chat with providers
- Email: provider.test@radiusapp.com
- Password: TestProvider123!
- Features: Create services, manage bookings, upload verification documents, view analytics
To create these test users in production, run:
rails test_users:createTo remove test users:
rails test_users:remove- User Management: Multi-role system (Customer, Provider, Admin)
- Service Management: Create, edit, and manage local services
- Booking System: Complete booking and scheduling system
- Payment Integration: Stripe payment processing
- SMS/WhatsApp Integration: Twilio-powered messaging system
- Real-time Chat: In-app messaging between customers and providers
- CRM Features: SMS campaigns, phone verification, automated notifications
- Provider Verification: Document upload and verification system
- Subscription Management: Provider subscription plans
- Admin Dashboard: Comprehensive admin interface
- Leaderboard: Provider ranking and recognition system
- Ruby 3.2+
- Rails 8.0+
- PostgreSQL
- Redis
- Node.js (for asset compilation)
-
Clone the repository
git clone https://github.com/yourusername/local-hub.git cd local-hub -
Install dependencies
bundle install npm install
-
Set up environment variables
cp .env.example .env
Edit
.envwith your actual credentials (see Environment Variables section below). -
Set up the database
rails db:create rails db:migrate rails db:seed
-
Start the application
rails server
-
Start background job processor
bundle exec sidekiq
Create a .env file in the root directory with the following variables:
# Database
DATABASE_URL=postgresql://username:password@localhost:5432/radius_development
# Rails
RAILS_ENV=development
RAILS_MASTER_KEY=your_master_key_here
# Stripe Configuration
STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key_here
STRIPE_SECRET_KEY=sk_test_your_secret_key_here
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
# Twilio Configuration
TWILIO_ACCOUNT_SID=your_account_sid_here
TWILIO_AUTH_TOKEN=your_auth_token_here
TWILIO_PHONE_NUMBER=+1234567890
TWILIO_WHATSAPP_NUMBER=+1234567890
# AWS S3 (for file uploads)
AWS_ACCESS_KEY_ID=your_aws_access_key_here
AWS_SECRET_ACCESS_KEY=your_aws_secret_key_here
AWS_REGION=us-east-1
AWS_BUCKET=your_bucket_name_here
# Redis (for background jobs)
REDIS_URL=redis://localhost:6379/0
# Email (SMTP)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password_here
# Application
APP_HOST=localhost:3000
APP_NAME=Radius- Sign up at stripe.com
- Get your API keys from the Stripe Dashboard
- Set up webhooks for payment processing
- Sign up at twilio.com
- Get your Account SID and Auth Token from the Twilio Console
- Purchase a phone number for SMS/WhatsApp
- Create an AWS account
- Create an S3 bucket for file storage
- Create an IAM user with S3 access
rails testbundle exec rubocop
bundle exec brakeman# Reset database
rails db:reset
# Run specific migration
rails db:migrate:up VERSION=20250704153059- Set all environment variables in production
- Configure your web server (Nginx/Apache)
- Set up SSL certificates
- Configure Redis and PostgreSQL for production
- Set up monitoring and logging
docker-compose up -d- Never commit API keys or secrets to version control
- Use environment variables for all sensitive data
- Enable 2FA on all third-party accounts
- Regularly update dependencies
- Monitor for security vulnerabilities
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License.
For support, please contact the development team or create an issue in the repository.