endurance event data management
Timed endurance event data
OpenSplitTime is a site for endurance athletes, fans and families, race directors, volunteers, support crews, and data geeks. Our purpose is simple: to make it easy to collect endurance event data, play with it, plan with it, safely archive it, and never worry about it again.
The site is built and maintained by OpenSplitTime Company, a Colorado nonprofit corporation. If you find the website useful, motivating, entertaining, or strangely beautiful, please consider making a small donation to help us keep the doors open. OpenSplitTime Company is registered with the U.S. Internal Revenue Service as a 501(c)(3) charitable organization. Your donations are probably tax deductible (but if you have any question you should ask your tax advisor about that stuff).
Our software engine is open source. If you have a suggestion for the site, or you are a software engineer and would like to help with development, or if you are a race director or data geek and would like to be a beta tester, please contact us and let's talk.
OpenSplitTime is developed and maintained by endurance athletes for endurance athletes.
This application requires:
Learn more about Installing Rails.
Homebrew (MacOS)
1. Install Homebrew.
Ruby
Using Homebrew on MacOS
- Install Homebrew http://brew.sh/
$ brew update
$ brew install rbenv
Using Debian/Ubuntu (Instructions from DigitalOcean)
- Install dependancies
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
- Clone the rbenv repository
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
- Add to path
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
- Enable automatic loading
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
- Apply changes to current terminal
$ source ~/.bashrc
- Add ruby-build plugin
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd
into your local OpenSplitTime
directory$ rbenv init
For any questions around setting up rbenv see https://github.com/rbenv/rbenv$ rbenv install <current ruby version>
$ rbenv rehash
then restart the terminal sessionRails, Gems, Databases
$ gem install bundler
You should not need to sudo
this. If it says "permission denied" rbenv is not setup correctlyUsing Homebrew on MacOS
$ brew install postgres redis
Using Debian/Ubuntu
$ sudo apt install postgresql libpq-dev redis-server
- Setup your user (same as login)
$ sudo -u postgres createuser --interactive
$ bundle install
if running into weird errors first try $ rbenv rehash
and restart your terminal
Javascript Runtime + Yarn
nvm
. Otherwise:Using Debian/Ubuntu: wget -qO- https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt-get install -y nodejs
Install Yarn
After ensuring you're using the right version of Node.js (with node --version
): npm install -g yarn
Database
$ brew services restart postgres && brew services restart redis
or run the Postgres App$ rails db:setup
to create the database$ rails db:from_fixtures
to load seed data from test fixtures files$ rails s
to start the serverlocalhost:3000
in a browserTest Users
After you setup/seed your database, you should have four test users:
| Role | Email | Password |
| ----- | ---------------------- | -------- |
| admin | [email protected] | password |
| user | [email protected] | password |
| user | [email protected] | password |
| user | [email protected] | password |
Sidekiq
OpenSplitTime relies on Sidekiq for background jobs, and Sidekiq needs Redis. Make sure your Redis server (installed above) is started. Run your Sidekiq server from the command line:
$ sidekiq
You'll know you did it right when you see the awesome ASCII art.
ChromeDriver
Some integration tests rely on Google ChromeDriver. You can install it in Mac OS X with brew cask install chromedriver
or your preferred package manager for Linux or Windows.
Continuous Integration
Heroku CI is used to ensure tests are passing. The status of your branch will be indicated in github. Please ensure your branch is passing before making a pull request.
Still having issues setting up your local environment?
Create an issue with label support
and we will try and help as best we can!
We love Issues but we love Pull Requests more! If you want to change something or add something feel free to do so. If you don't have enough time or skills start an issue. Below are some loose guidelines for contributing.
Writing code for something is the fastest way to get feedback. It doesn't matter if the code is a work in progress or just a spike of an idea we'd love to see it. Testing is critical to our long-term success, so code submissions must include tests covering all critical logic. :heart:
Be detailed. They only person who knows the bug you are experiencing or feature that you want is you! So please be as detailed as possible. Include labels like bug
or enhancement
and you know the saying a picture is worth a thousand words. So if you can grab a screenshot or gif of the behavior even better!
This application was generated with the rails_apps_composer gem
provided by the RailsApps Project.
Rails Composer is supported by developers who purchase the RailsApps tutorials.
Copyright (c) 2015-2021 OpenSplitTime Company. See license for details.