https://github.com/hackclub/hackathons-backend
Powering https://hackathons.hackclub.com
https://github.com/hackclub/hackathons-backend
hackathons rails
Last synced: 10 months ago
JSON representation
Powering https://hackathons.hackclub.com
- Host: GitHub
- URL: https://github.com/hackclub/hackathons-backend
- Owner: hackclub
- License: mit
- Created: 2023-07-10T09:03:19.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-22T05:02:56.000Z (10 months ago)
- Last Synced: 2025-04-23T16:06:30.751Z (10 months ago)
- Topics: hackathons, rails
- Language: Ruby
- Homepage: https://hackathons.hackclub.com
- Size: 5.98 MB
- Stars: 25
- Watchers: 10
- Forks: 6
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hackathons Backend
_The thing that powers [hackathons.hackclub.com](https://hackathons.hackclub.com)!_
- 📎 Collecting and reviewing applications to list your hackathon
- 📧 Notifying subscribers of hackathons in their area
- 🌍 Geocoding hackathon and subscription locations into coordinates
- 💾 Archiving hackathon websites for posterity
- 🗓️ Provides a JSON API for the [front-end](https://github.com/hackclub/hackathons)
📝 Application Form
📬 Subscription Email

## Contributing
This app is built with 🛤️ [Ruby on Rails](https://rubyonrails.org) (running [on the edge](https://shopify.engineering/living-on-the-edge-of-rails))
using 🐘 [PostgreSQL](https://www.postgresql.org) for the database and 💾 [Solid Queue](https://github.com/rails/solid_queue) for running background jobs.
### Getting Started
1. Make sure you have Docker
and [Ruby 3.4.2 installed](https://guides.rubyonrails.org/install_ruby_on_rails.html).
2. Clone the repo
```sh
git clone https://github.com/hackclub/hackathons-backend.git
cd hackathons-backend
```
3. Install dependencies
```sh
bundle install
```
4. Start Postgres
```sh
docker compose up --detach
```
4. Setup the database and run the server
```sh
rails db:prepare
rails server
```
The application will now be running at [localhost:3000](http://localhost:3000)!
### Additional Dependencies
[Postgres will need to be installed](https://www.postgresql.org/download)
in order for the `pg` gem to be compiled.
Additionally, Active Storage depends on [vips](https://libvips.github.io/libvips/)
to process images. You'll want this dependency installed on your machine. For Macs, run:
```sh
brew install vips
```
### Solid Queue
Solid Queue is used to process background jobs in production. In development, we use
the good old default Active Job Async queue adapter.
To check up on jobs, visit `/admin/jobs` on the production site. You must
be logged in as an admin to access this page.
---
Application performance monitoring sponsored by
AppSignal
.