{"id":19030618,"url":"https://github.com/hackclub/hackathons-backend","last_synced_at":"2025-04-23T16:06:46.077Z","repository":{"id":180097077,"uuid":"664565723","full_name":"hackclub/hackathons-backend","owner":"hackclub","description":"Powering https://hackathons.hackclub.com","archived":false,"fork":false,"pushed_at":"2025-04-22T05:02:56.000Z","size":6267,"stargazers_count":25,"open_issues_count":17,"forks_count":6,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-23T16:06:30.751Z","etag":null,"topics":["hackathons","rails"],"latest_commit_sha":null,"homepage":"https://hackathons.hackclub.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackclub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-10T09:03:19.000Z","updated_at":"2025-04-16T16:49:21.000Z","dependencies_parsed_at":"2024-01-08T05:28:43.022Z","dependency_job_id":"a620926f-54c9-4b4d-a620-53f916fc8872","html_url":"https://github.com/hackclub/hackathons-backend","commit_stats":{"total_commits":499,"total_committers":9,"mean_commits":55.44444444444444,"dds":0.6533066132264529,"last_synced_commit":"4cc1da97e763ec05d404eb7cb45a3104cd6f2875"},"previous_names":["hackclub/hackathons-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fhackathons-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fhackathons-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fhackathons-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fhackathons-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackclub","download_url":"https://codeload.github.com/hackclub/hackathons-backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250468273,"owners_count":21435452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hackathons","rails"],"created_at":"2024-11-08T21:18:48.090Z","updated_at":"2025-04-23T16:06:46.058Z","avatar_url":"https://github.com/hackclub.png","language":"Ruby","readme":"# Hackathons Backend\n\n_The thing that powers [hackathons.hackclub.com](https://hackathons.hackclub.com)!_\n\n- 📎 Collecting and reviewing applications to list your hackathon\n- 📧 Notifying subscribers of hackathons in their area\n- 🌍 Geocoding hackathon and subscription locations into coordinates\n- 💾 Archiving hackathon websites for posterity\n- 🗓️ Provides a JSON API for the [front-end](https://github.com/hackclub/hackathons)\n\n\u003ctable\u003e\n\u003ctr\u003e\n \u003cth\u003e📝 Application Form\n \u003cth\u003e📬 Subscription Email\n\u003ctr\u003e\n \u003ctd\u003e\u003cimg alt=\"Screenshot of Hackathons application form\" src=\"https://github.com/hackclub/hackathons-backend/assets/20099646/46cada67-5852-44a4-bdef-a01308448112\"/\u003e\n \u003ctd\u003e\u003cimg alt=\"Screenshot of Hackathons subscription email\" src=\"https://github.com/hackclub/hackathons-backend/assets/20099646/2a3964df-7a3a-4383-94d3-80c53c928bc6\"/\u003e\n\u003c/table\u003e\n\n## Contributing\n\nThis app is built with 🛤️ [Ruby on Rails](https://rubyonrails.org) (running [on the edge](https://shopify.engineering/living-on-the-edge-of-rails))\nusing 🐘 [PostgreSQL](https://www.postgresql.org) for the database and 💾 [Solid Queue](https://github.com/rails/solid_queue) for running background jobs.\n\n### Getting Started\n\n1. Make sure you have Docker\n   and [Ruby 3.4.2 installed](https://guides.rubyonrails.org/install_ruby_on_rails.html).\n\n2. Clone the repo\n\n   ```sh\n   git clone https://github.com/hackclub/hackathons-backend.git\n   cd hackathons-backend\n   ```\n\n3. Install dependencies\n\n   ```sh\n   bundle install\n   ```\n   \n4. Start Postgres\n\n   ```sh\n   docker compose up --detach\n   ```\n\n4. Setup the database and run the server\n\n   ```sh\n   rails db:prepare\n   rails server\n   ```\n\nThe application will now be running at [localhost:3000](http://localhost:3000)!\n\n### Additional Dependencies\n\n[Postgres will need to be installed](https://www.postgresql.org/download)\nin order for the `pg` gem to be compiled.\n\nAdditionally, Active Storage depends on [vips](https://libvips.github.io/libvips/)\nto process images. You'll want this dependency installed on your machine. For Macs, run:\n\n```sh\nbrew install vips\n```\n\n### Solid Queue\n\nSolid Queue is used to process background jobs in production. In development, we use\nthe good old default Active Job Async queue adapter.\n\nTo check up on jobs, visit `/admin/jobs` on the production site. You must\nbe logged in as an admin to access this page.\n\n---\n\nApplication performance monitoring sponsored by\n\u003ca href=\"https://appsignal.com/?ref=github:hackclub/hackathons-backend\"\u003e\nAppSignal\n\u003c/a\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackclub%2Fhackathons-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackclub%2Fhackathons-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackclub%2Fhackathons-backend/lists"}