| 
				
					
						 | 
			||
|---|---|---|
| .github | ||
| app | ||
| bin | ||
| config | ||
| db | ||
| lib/tasks | ||
| log | ||
| public | ||
| script | ||
| storage | ||
| test | ||
| tmp | ||
| vendor | ||
| .buildpacks | ||
| .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-versionor 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_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REDIRECT_URIPLAYS_HUB_DATABASE_PASSWORDPLAYS_HUB_QUEUE_DATABASE_PASSWORD
Set these in your .env or via your deployment provider's secrets manager.
Additional Notes
- See 
config/recurring.ymlfor scheduled jobs. - See 
Gemfilefor required gems. - For any issues, check logs and ensure all ENVs are set correctly.