This is a web scraper that collects data from local venues in Denver. The scraped data includes venue names, dates for events, ticket links, websites, and adding an event to authorized google account.
- Ruby 2.7.0
- Rails 7.0.1
- PostgreSQL
- Clone the repository
- Install dependencies:
bundle install
- Create and migrate the database:
rails db:create && rails db:migrate
- Set up environment variables:
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
- Start the server:
rails s
or 'bin/dev'
This app uses Devise and Google OAuth 2 for authentication. To use Google OAuth 2, you will need to set up a Google Cloud Console project and create OAuth 2 credentials. See Google's documentation for instructions.
This app uses the Google Calendar API to allow users to add events to their Google calendars. To use this feature, you will need to enable the Google Calendar API for your Google Cloud Console project and set up the necessary credentials. See Google's documentation for instructions.
To run the web scraper, use the following Rake task: rake scrape_load:all
. Individual venues can be scraped by passing the venue's nameas an argument to the rake task, like so: rake scape_load:['Venue Name']
To add an event to a user's calendar, send a POST
request to /shows/:id/add_to_calendar
with the following parameters:
access_token
: The user's access token from Google OAuth 2start_time
: The start time of the event inYYYY-MM-DDTHH:mm:ss
format (e.g.2023-02-25T19:00:00
)end_time
: The end time of the event inYYYY-MM-DDTHH:mm:ss
format (e.g.2023-02-25T22:00:00
)title
: The title of the eventlocation
: The location of the event
- Devise - User authentication
- Google OAuth 2 - Google OAuth 2 authentication
- Google Calendar API - Google Calendar API
- Nokogiri - Web scraping
- PostgreSQL - Database
- Tailwind CSS - CSS framework
Bug reports and pull requests are welcome on GitHub at https://github.com//. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The app is available as open source under the terms of the MIT License.