An open API service indexing awesome lists of open source software.

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

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

Screenshot of Hackathons application form
Screenshot of Hackathons 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
.