|
||
---|---|---|
.github | ||
app | ||
bin | ||
config | ||
db | ||
lib/tasks | ||
log | ||
public | ||
script | ||
storage | ||
test | ||
tmp | ||
vendor | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.rubocop.yml | ||
.ruby-version | ||
Gemfile | ||
Gemfile.lock | ||
Procfile | ||
README.md | ||
Rakefile | ||
config.ru |
README.md
Plays Hub
A Rails application for tracking and visualizing your Spotify listening statistics.
Setup Instructions
1. Prerequisites
- Ruby (see
.ruby-version
or Gemfile for version) - PostgreSQL
- Node.js & Yarn (for JS/CSS assets)
- Redis (if using caching or background jobs)
2. Clone the Repository
git clone <your-repo-url>
cd plays-hub
3. Install Dependencies
bundle install
yarn install --check-files
4. Environment Variables
Create a .env
file (or set these in your environment):
Variable | Description |
---|---|
SPOTIFY_CLIENT_ID |
Your Spotify App Client ID |
SPOTIFY_CLIENT_SECRET |
Your Spotify App Client Secret |
SPOTIFY_REDIRECT_URI |
Your app's public base URL (no trailing slash), e.g. https://yourdomain.com |
PLAYS_HUB_DATABASE_PASSWORD |
Password for the main production database |
PLAYS_HUB_QUEUE_DATABASE_PASSWORD |
Password for the Solid Queue DB (production) |
RAILS_ENV |
(optional) Rails environment, e.g. development |
PORT |
(optional) Port to run the Rails server |
5. Database Setup
rails db:create db:migrate
rails db:queue_migrate
6. Running the App
rails server
7. Background Jobs
- This app uses Solid Queue for background jobs.
- Jobs are scheduled via
config/recurring.yml
(e.g., to fetch Spotify activities regularly). - To run background jobs:
bin/rails solid_queue:start
8. Spotify Integration
- On first login, users must connect their Spotify account.
- Make sure your Spotify app's redirect URI matches
SPOTIFY_REDIRECT_URI
+/spotify_callback
.
9. Running Tests
bundle exec rspec
Environment Variables Summary
SPOTIFY_CLIENT_ID
SPOTIFY_CLIENT_SECRET
SPOTIFY_REDIRECT_URI
PLAYS_HUB_DATABASE_PASSWORD
PLAYS_HUB_QUEUE_DATABASE_PASSWORD
Set these in your .env
or via your deployment provider's secrets manager.
Additional Notes
- See
config/recurring.yml
for scheduled jobs. - See
Gemfile
for required gems. - For any issues, check logs and ensure all ENVs are set correctly.