coderit / hackathon-manager Goto Github PK
View Code? Open in Web Editor NEWAll-in-one platform for hackathon registration & logistics.
Home Page: https://coderit.org/hackathon-manager/
License: MIT License
All-in-one platform for hackathon registration & logistics.
Home Page: https://coderit.org/hackathon-manager/
License: MIT License
Right now it's a "full" engine that lives in the same namespace as the host Rails app. "full" makes the transition easier, but it should be moved to a mountable engine before an official release.
This will also require some changes in order for other gems to support this, such as Devise.
Same as how an email is sent when someone's accepted, the same functionality should be added for waitlist status
Right now we just use $primary
and $secondary
. It'd probably be more useful to have things like $page-background
, $div-background
, $button-background
, $link-color
, etc
Tests are still on the main BrickHack repo - everything should be moved over to this repo
Steps to reproduce:
This causes a follow-up email to be sent, reminding the user to fill out their (in-complete) application. However, an admin obviously won't be completing their application since it was deleted.
The follow-up job should be halted if the user is an admin. Should just be another check here: https://github.com/codeRIT/hackathon_manager/blob/master/app/mailers/mailer.rb#L43
I copied over the database seeds in db/
from BrickHack, but they don't actually get pulled into the parent application - so running bin/rails db:seed
ends up not doing anything.
Looks like there's an easy solution according to https://stackoverflow.com/questions/12821550/rails-engine-how-to-use-seed - my guess is we just need to add HackathonManager::Engine.load_seed
to https://github.com/codeRIT/hackathon_manager/blob/master/lib/hackathon_manager/engine.rb
Validation:
rails db:seed
in the wichacks repo will result in several thousand schools being imported (usually takes ~30 seconds).rails db:seed
will do the sameMLH maintains a manually-verified list of schools, available at https://github.com/MLH/mlh-policies/blob/master/schools.csv
This list doesn't include city/state information, which is needed to generate the applicant map. Could probably use our existing school data to add to MLH's list where possible, and leave other school's city/state blank for now.
Various misspellings of school names get re-mapped to the correctly-named school, however the data behind this is hidden. A table should be shown on the school detail page that shows which names are mapped to the specific school being shown.
Saw the "Continue" wording recently on another website and thought of it as an interesting solution to the problem: both the "Sign up with" and "Sign in with" buttons lead to the exact same page/flow.
Right now the chart colors are hard-coded in a chartkick.rb
initializer for BrickHack colors, which can't be customized. Instead they should be customizable per-hackathon.
From @sman591 on February 17, 2016 22:28
For liability reasons, we can only let students board if they've signed the BrickHack agreement.
We should provide a way for bus captains to check if someone's registered and therefore allowed to board the bus.
Copied from original issue: codeRIT/brickhack.io#363
The management UI should operate separately from the public, user-facing UI.
When MyMLH was originally integrated, the dropdown/select inputs were removed in favor of a generic text input, under the thought that MyMLH's dropdown values could change at any time and we wouldn't want to be dependent on always syncing up between the two.
However, now that users can apply without using MyMLH, filling out fields like "Level of Study" become extremely open-ended and vague without a dropdown to choose from.
I think giving the user some sort of guidance with a dropdown is ultimately better than worrying about MyMLH and our forms getting out of sync; we just won't be able to enforce validation on the inputs.
Eg, how to work on feature development alongside the brickhack repo
Instead of being dedicated one just the one bus a school is associated to, enable everyone to see a list of busses and optionally sign up for one.
Requires significant code/DB changes plus a careful migration.
Old:
bus_list_id
associationriding_bus
booleanriding_bus
+ their school has a bus listNew:
bus_list_id
associationbus_list_id
From @sman591 on February 15, 2016 0:15
If an applicant uploads a resume, they should be able to remove it without restarting the application process.
Copied from original issue: codeRIT/brickhack.io#350
From @sman591 on January 27, 2017 3:36
This could partially be fixed by #366. However the issue still exists: people click an RSVP link, or just simply log in, and at some point in the My MLH process they make a new account instead of signing back in.
This may be an issue with the UX of MyMLH, but I feel there are steps we can take to minimize the issue without significantly degrading UX.
At a minimum, there should be something added to the admin section that flags these sorts of users so organizers can know it's happening and fix it.
Copied from original issue: codeRIT/brickhack.io#458
UI changes to match upcoming BrickHack design, but generalized for anything
From @sman591 on February 1, 2017 20:0
Just like we send follow-up emails for anyone that hasn't finished their application, we should send a follow-up email to those who haven't RSVP'd yet.
Loosely based on the following rules:
Copied from original issue: codeRIT/brickhack.io#472
From @sman591 on January 7, 2017 5:48
If the time between browser sessions is long enough, the user gets logged out automatically. However, logging in afterwards via MyMLH fails the first try, but clicking sign in the second time works.
Copied from original issue: codeRIT/brickhack.io#436
Things like:
From @sman591 on February 18, 2016 18:30
I think it's safe to have email token-based authentication, with a time window where that token is active. This would likely simplify the RSVP process a lot.
Copied from original issue: codeRIT/brickhack.io#366
Right now, we display a high-level overview of where applicants are applying from, as well as the quantity.
However, if this were an interactive map (e.g. Google Maps overlay), this map could be zoomed in to see:
For example: University Abc has a bus, but just down the road is another school with 5 applicants. Right now it's hard for someone to connect the dots, but if this was more precisely visible on a map, someone could see the close distance and be sure to reach out to those students about the bus.
Or a non-checked-in per acceptance status
From @sman591 on March 29, 2017 17:31
Providing simple statistics - such as email opens and clicks - can be super helpful when tracking the performance of the emails we send. This should be easy if we:
Copied from original issue: codeRIT/brickhack.io#495
Things like the application, RSVP, and bus list pages. Right now it's just a bare sidebar with two buttons and a logo, with minimal customization
It's a bit cluttered, and pages beyond the main dashboard don't have a perfect layout hierarchy/flow.
From @sman591 on September 14, 2016 7:17
We're offering our sponsors the option for early access to attendee resumes & links. To make this easy, the process of maintaining the Google Drive folder of shared resumes & links should be automated - or maybe just a customized portal on the website, as to not deal with Google Drive's APIs?
Copied from original issue: codeRIT/brickhack.io#394
E.g. with a "users" tab instead of just "questionnaires"
Benefits:
Things like the Slack invite URL and carpool doc link should be easier to customize than requiring a dev to update an environment variable
From @sman591 on March 3, 2016 3:33
Copied from original issue: codeRIT/brickhack.io#383
From @sman591 on February 23, 2016 21:52
Right now, our denial emails are a bit generic and emphasize our large number of applicants. This is true for most of our applicants, however for some, they are denied for other reasons (such as age requirement).
We should provide the ability to specify a reason - such as a predefined list of "over capacity" or "age", as well as the option to provide a custom reason
Copied from original issue: codeRIT/brickhack.io#374
The readme is currently the default gem readme, which isn't useful and doesn't describe what this is
From @sman591 on November 12, 2015 23:18
It'd be cool if we could see an audit log for a user's application/questionnaire. Things such as:
With each of the logged actions, the user that made the action and timestamp should be saved.
Could be useful in the event something were to go wrong with someone's application, and could be used to analyze use trends if anyone wanted to analyze the data.
Copied from original issue: codeRIT/brickhack.io#258
For configuring things that change more frequently. We currently have a hackathon.yml config that provides more static information (hackathon name, logic, etc), however there also exist things that are more variable:
Adding a simple admin UI + easy to use Ruby interface would make this much more accessible to non-devs, possibly even for some of the hackathon.yml variables.
Probably on Travis like we have for BrickHack
From @sman591 on January 7, 2016 16:37
Rails 4.2 introduced ActiveJob. Due to the current timeline I'm not upgrading us to it right now, but its something to look into for the future. I found a great guide here.
Copied from original issue: codeRIT/brickhack.io#285
And rename variable-overrides.sass
to something more hackathon_manager-specific - like hackathon_manager-overrides.sass
maybe
This eliminates the potential for app-specific files to conflict with hackathon manager's files
Version 3 of the AWS gem moved every service-specific API into separate gems. We still depend on the generic aws-sdk
, which includes all of the gems, except we really only need one (aws-sdk-s3
for resume PDF storage)
From @sman591 on October 20, 2016 6:28
With the move to strong parameters, the tests against mass assignment were removed. Testing against correct strong parameters should be added, and is simplified with shoulda: https://github.com/thoughtbot/shoulda-matchers/blob/master/lib/shoulda/matchers/action_controller/permit_matcher.rb
Copied from original issue: codeRIT/brickhack.io#411
There's likely a lot of assets, styles, etc that are BrickHack-specific, and shouldn't be included in this gem
From @sman591 on January 11, 2015 7:29
If the user submits a blank login form, or submits incorrect information, an error message should display. However, this is not the case.
Both devise_error_messages!
and f.error_notification
return nothing, and resource.errors.empty?
is true.
Copied from original issue: codeRIT/brickhack.io#57
From @sman591 on February 2, 2017 2:0
So people at registration don't miss it
Copied from original issue: codeRIT/brickhack.io#473
Right now, every single template has to implement support for Rails flashes (eg = flash[:notice]
or = flash[:alert]
). This causes inconsistent appearance, as well as causes some alerts to not be shown until navigating to a page that implements flashes.
With the new user-facing design coming in #48, there's a great chance to have this normalized to something that shows up on all pages, eliminating the requirement of having it implemented in each individual template file.
From @sman591 on March 29, 2017 17:27
Sparkpost's API provides a very limited history of events - only up to 10 days or 1000 events, which we easily exceed when sending out bulk emails.
We can easily track these events by opening a webhook that Sparkpost notifies when new events come in.
By doing so, we can display stats like:
Providing simple statistics - such as email opens and clicks - can be super helpful when tracking the performance of the emails we send.
Copied from original issue: codeRIT/brickhack.io#494
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.