Skip to content

Repository files navigation

JumpSpace

A social platform for skydivers to log jumps, track gear, connect with other jumpers, and share their experiences in the sky.

Features

Jump Logging

  • 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

Gear Management

  • 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

License Tracking

  • Store USPA licenses (A, B, C, D) and ratings
  • Track instructor certifications (AFF, Tandem, Coach)
  • Monitor expiration dates for time-limited ratings

Social Features

  • 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

Discovery

  • Search for users by name or username
  • Browse dropzones with location data
  • Explore different disciplines

Tech Stack

  • 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

Requirements

  • Ruby 3.4+
  • PostgreSQL 14+
  • Node.js 18+ (for Tailwind CSS builds)

Setup

1. Clone the repository

git clone <repository-url>
cd jumpspace

2. Install dependencies

bundle install

3. Setup database

rails db:create
rails db:migrate
rails db:seed

4. Start the server

bin/dev

Or without Tailwind watch:

rails s

Visit http://localhost:3000

Test Accounts

After running seeds, the following accounts are available:

Admin Account

Demo User

Additional Test Users

Admin Panel

JumpSpace includes a full-featured admin panel built with ActiveAdmin.

Access

  1. Login with an admin account at /session/new
  2. Navigate to /admin

Features

  • 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

Project Structure

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

Models

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

API Endpoints

  • GET /api/users/search - User autocomplete
  • GET /api/dropzones/search - Dropzone autocomplete

Running Tests

bundle exec rspec

Code Quality

# Linting
bundle exec rubocop

# Security scan
bundle exec brakeman

Environment Variables

No environment variables are required for development. The app uses Rails defaults with PostgreSQL.

For production, configure:

  • DATABASE_URL - PostgreSQL connection string
  • RAILS_MASTER_KEY - For credentials decryption
  • RAILS_ENV=production

Deployment

The app is configured for deployment with Kamal (Docker-based).

kamal setup
kamal deploy

License

This project is proprietary software.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages