A social platform for skydivers to log jumps, track gear, connect with other jumpers, and share their experiences in the sky.
- Log individual skydives with detailed information (altitude, freefall time, exit type, canopy)
- Track jump numbers and dates
- Associate jumps with dropzones and disciplines
- Record weather conditions and aircraft type
- Add notes and tag other jumpers in your jumps
- Track all your skydiving equipment (containers, canopies, AADs, helmets, etc.)
- Monitor reserve repack dates with alerts for upcoming and overdue repacks
- Record purchase dates, serial numbers, and manufacturers
- Store USPA licenses (A, B, C, D) and ratings
- Track instructor certifications (AFF, Tandem, Coach)
- Monitor expiration dates for time-limited ratings
- Connections: Connect with other skydivers (bidirectional friendship system)
- Activity Feed: See jumps and updates from your connections
- Status Updates: Share quick updates with your network
- Likes & Comments: Interact with feed events
- Notifications: Get notified when tagged, mentioned, or connection requests
- User Profiles: Public profiles with jump stats and activity
- Search for users by name or username
- Browse dropzones with location data
- Explore different disciplines
- Framework: Ruby on Rails 8.0
- Database: PostgreSQL
- Frontend: Hotwire (Turbo + Stimulus), Tailwind CSS
- Authentication: Custom session-based (bcrypt)
- Search: pg_search for full-text search
- URLs: FriendlyId for username-based URLs
- Pagination: Pagy
- Admin: ActiveAdmin
- Background Jobs: Solid Queue
- Caching: Solid Cache
- WebSockets: Solid Cable
- Ruby 3.4+
- PostgreSQL 14+
- Node.js 18+ (for Tailwind CSS builds)
git clone <repository-url>
cd jumpspacebundle installrails db:create
rails db:migrate
rails db:seedbin/devOr without Tailwind watch:
rails sVisit http://localhost:3000
After running seeds, the following accounts are available:
- Email: admin@jumpspace.local
- Password: password123
- Admin URL: http://localhost:3000/admin
- Email: demo@example.com
- Password: password123
- alex@example.com / password123 (experienced jumper, 3000+ jumps)
- maya@example.com / password123 (wingsuit pilot)
- jordan@example.com / password123 (competitive swooper)
- sam@example.com / password123 (intermediate jumper)
- riley@example.com / password123 (freeflyer)
- casey@example.com / password123 (AFF instructor)
JumpSpace includes a full-featured admin panel built with ActiveAdmin.
- Login with an admin account at
/session/new - Navigate to
/admin
- Dashboard: Platform overview, activity metrics, alerts
- User Management: View/edit users, grant admin access, recalculate stats
- Content Management: Manage jumps, dropzones, disciplines
- Gear & Licenses: Monitor equipment and certifications
- Social Data: View connections, feed events, notifications
- Session Management: View and terminate user sessions
app/
├── admin/ # ActiveAdmin resource definitions
├── controllers/ # Rails controllers
│ ├── concerns/ # Authentication concerns
│ └── api/ # API endpoints (autocomplete)
├── models/ # ActiveRecord models
├── views/ # ERB templates
│ └── layouts/ # Application layouts
└── javascript/ # Stimulus controllers
config/
├── initializers/ # Rails initializers
│ ├── active_admin.rb # Admin panel config
│ └── ransack.rb # Search/filter config
└── routes.rb # Application routes
db/
├── migrate/ # Database migrations
├── schema.rb # Current schema
└── seeds.rb # Seed data
| Model | Description |
|---|---|
| User | Skydivers with profiles, stats, and authentication |
| Jump | Individual skydive records |
| Dropzone | Skydiving locations with coordinates |
| Discipline | Jump types (Belly, Freefly, Wingsuit, etc.) |
| GearItem | Equipment tracking with repack dates |
| License | Certifications and ratings |
| Connection | Bidirectional friendships |
| FeedEvent | Activity feed items (polymorphic) |
| StatusUpdate | Short text posts |
| Like | Feed event likes |
| Comment | Feed event comments |
| JumpTag | Tag users in jumps |
| Notification | User notifications |
| Session | Authentication sessions |
GET /api/users/search- User autocompleteGET /api/dropzones/search- Dropzone autocomplete
bundle exec rspec# Linting
bundle exec rubocop
# Security scan
bundle exec brakemanNo environment variables are required for development. The app uses Rails defaults with PostgreSQL.
For production, configure:
DATABASE_URL- PostgreSQL connection stringRAILS_MASTER_KEY- For credentials decryptionRAILS_ENV=production
The app is configured for deployment with Kamal (Docker-based).
kamal setup
kamal deployThis project is proprietary software.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request