hacktoberfest / hacktoberfest-2020 Goto Github PK
View Code? Open in Web Editor NEWHacktoberfest - App to manage the annual open-source challenge, used for the 2019 & 2020 seasons.
Home Page: https://hacktoberfest.digitalocean.com
License: Other
Hacktoberfest - App to manage the annual open-source challenge, used for the 2019 & 2020 seasons.
Home Page: https://hacktoberfest.digitalocean.com
License: Other
FAQ's section will be available for pre-launch site.
The command is uses the dotenv bundle exec puma-ctl
command which does not update env vars.
Will try using dotenv-rails in production mode to fix this
From - #116. This error message should be moved to above the field
FAQ items are not collapsible like they are in Figma
Along with the events we will be sending, we should be updating the user information via identify method calls.
The following info should be sent to segment for users:
id
github name
open pull request count
state
all_by_state
and score
methodmature?
method to PullRequest
modelmature?
method in matured_prs
methodeligible_prs
and matured_prs
method to be consistent with method names in the User model (minus count)Update tests accordingly
As a participant in hacktoberfest, I want to be able to view my progress in near real-time.
Change copy to:
"To win a shirt, you must make four pull requests by October 31st. Everyone who participates receives limited-edition Hacktoberfest stickers - regardless if you complete the four pull requests or not."
As a site admin, we should be able to add link and useful resources.
Have ability to schedule and accept RSVPS for webinars targeted for Maintainers/Organizers/Participants
Display upcoming webinars
List of webinars will come from AirTable
Webinar details to be displayed include:
Register for Webinars
CTA button/URL to register
Email registration will post to Marketo with webinar id
Marketo will send notifications
Determine whether this will be a section or page
Maintainers can apply to showcase their projects at a webinar via a form.
CTA for maintainers to showcase/pitch their projects through webinars or
events
Apply to showcase your project
Hacktoberfest issues and repo displays will be personalized based on the user
"Hacktoberfest” repo metadata - should be randomized, displaying different results each time you visit the page.
Some ranking based on attributes like number of stars, watchers, and/or forks could- potentially be used to filter low quality/activity projects
Logged in users should receive personalized results specifically highlighting issues that contain:
Issues should be filterable by language
Add links for each Featured Event in the global events section of the homepage.
Small typo on start hacking page: change "Octiber" to "October".
Steps:
github:fetch_and_import_hacktoberfest_projects
rake task into a service object.Steps:
We must setup redis to be the rails cache since we are relying on our cache for Airtable requests to not hit the rate limit.
The Redis config should be extracted from the sidekiq initializer and used to both setup the rails cache and sidekiq.
There's a potential edge case issue where Airtable's inference of time zone in the datetime input could cause an event input as 2019-10-20 20:00
to be rendered as Oct 21
. In order to avoid this, Kamal has already switched the Airtable form input to ask for Event Start Date
(new column) instead of Event Start Date/Time
(old column), and all previously submitted events have had the Event Start Date
populated.
Now we need to switch it in the code.
What needs to change
On the meetups/events page, switch:
from OLD Airtable Column/Attribute:
Event Start Date/Time
to NEW Airtable Column/Attribute:
Event Start Date
Remove the trailing empty p tag that is generated in the FAQ erb file.
Users will register for Hacktoberfest via GitHub oAuth
Sign-up flow includes:
Confirmations that they’ve read the rules / values
Email opt-in for Hacktoberfest and Digital Ocean open source topics
Determine if we will capture email or email from github.
There is not enough space between the intro and each of the faq sections on the FAQ page.
We need to change this to an after_transition
so it's only called when the transition is successful: https://github.com/raise-dev/hacktoberfest/blob/master/app/models/user.rb#L46
Then this method should moved and called from a new service that is written in a before_transition
so it updates always, in the case the transition was not successful and only in the appropriate states. This should be done a new service called UserPullRequestSegmentUpdator
. https://github.com/raise-dev/hacktoberfest/blob/master/app/services/user_state_transition_segment_service.rb#L31-L33
In short, we need to send segment updated PR counts every time a transition is attempted (before_transition) and the tracking events, only when a successful transition is made (after_transition)
Allow users to sign up for a notification for when Hacktoberfest begins.
User can opt-in for marketing emails
Background job for emails or client side
Store user information
Implement the ability to send an email to the users
Users who don't opt-out of emails will receive emails with Marketo tool
Note: mail merge
We need to update the query here to include merged PRs, so they show up on the profile page: https://github.com/raise-dev/hacktoberfest/blob/staging/app/services/github_pull_request_service.rb#L11
Need to render merged PRs according on the view as well.
Made while reviewing: #194
Add a dropdown button on the homepage that will filter the projects by programming language.
@fridaland - As we were discussing, we want the profile page to show the PRs in chronological order. Lets make sure that the PRs are sorted, and that each PR will have the following info:
Current Behavior
This morning, new events in Airtable were published without "Event Start Date/Time" values being present.
As you can see from the controller, this will break it:
https://github.com/raise-dev/hacktoberfest/blob/master/app/controllers/pages_controller.rb#L24
Expected Behavior:
Make sure this controller, and all other page controllers and helper methods throughout the repository, set sane defaults for expected data structures or handles missing / malformed data packets more gracefully.
Each category should have a unique anchor (preferably a slug-ified version of the element title).
Each of the following will be done in separate PRs
TryUserTransitionFromRegistered
service with tests #32TryUserTransitionFromWaiting
service with tests #33TryUserTransition
service with tests #34TryUserTransition
service from profile page #41registered
state #35waiting
state #35
UserTransitionJob
#39As a meetup organizer, I will be able to view helpful resources that will be updated via AirTable
Resources
Resources for organizers
Instructions for organizers
Major Hacktoberfest Contributors should get major appreciation
Resources for maintainers (AirTable)
Appreciation (TBD) :
If you are a maintainer that has been highly active supporting the community of a popular repository, you will be eligible to also receive a maintainer appreciation swag (likely pin).
Determine how many people get appreciation swag
Determine how we obtain eligible maintainers
CTA for maintainers to showcase/pitch their projects through webinars or
events
Apply to showcase your project
Steps:
Airbrake error: #7785
Airbrake project: Hacktoberfest
Error type: NoMethodError
Error message: undefined method `pullRequests' for nil:NilClass
Where: users#update
Occurred at: Sep 25, 2019 16:18:50 UTC
First seen at: Sep 25, 2019 16:18:05 UTC
Occurrences: 3 (0 since last deploy on <no information>
)
Severity: error
URL: https://hacktoberfest.digitalocean.com/register
File: /PROJECT_ROOT/app/services/github_pull_request_service.rb
Backtrace:
/PROJECT_ROOT/app/services/github_pull_request_service.rb:38:in pull_requests
/PROJECT_ROOT/app/services/pull_request_service.rb:31:in github_pull_requests
/PROJECT_ROOT/app/services/pull_request_service.rb:15:in all
/PROJECT_ROOT/app/services/pull_request_service.rb:21:in eligible_prs
Bold text is super dark on FAQ page - check global/bulma styles.
On Figma specs, there is no airtable form included on the page, instead there are two buttons above the table Add your event
and Organize an event
Airbrake error: #1473
Airbrake project: Hacktoberfest
Error type: ArgumentError
Error message: Message must include a Sidekiq::Worker class, not class name: [TransitionAllUsersJob, ApplicationJob, ActiveJob::Base, Airbrake::Rails::ActiveJob, ActiveJob::Translation, ActiveJob::Logging, ActiveJob::Exceptions, ActiveJob::Callbacks, ActiveSupport::Callbacks, ActiveJob::Execution, ActiveSupport::Rescuable, ActiveJob::Enqueuing, ActiveJob::QueuePriority, ActiveJob::QueueName, ActiveJob::QueueAdapter, ActiveJob::Core, ActiveSupport::ToJsonWithActiveSupportEncoder, Object, PP::ObjectMixin, Act...
Where: sidekiq
Occurred at: Sep 27, 2019 01:00:04 UTC
First seen at: Sep 24, 2019 01:00:02 UTC
Occurrences: 30 (0 since last deploy on <no information>
)
Severity: error
URL: <no information>
File: /GEM_ROOT/gems/sidekiq-5.2.7/lib/sidekiq/client.rb
Backtrace:
/GEM_ROOT/gems/sidekiq-5.2.7/lib/sidekiq/client.rb:236:in normalized_hash
/GEM_ROOT/gems/sidekiq-5.2.7/lib/sidekiq/client.rb:224:in normalize_item
/GEM_ROOT/gems/sidekiq-5.2.7/lib/sidekiq/client.rb:70:in push
/GEM_ROOT/gems/sidekiq-5.2.7/lib/sidekiq/client.rb:132:in push
Currently, the FAQ items in each section appear to be pretty randomly ordered, which looks odd.
It'd be great if we could preserve the order that they are in, in Airtable, so that we have full control over the order they're presented in :)
The text color of the "sign up with github" button on the Start Hacking page is blue instead of white like the Figma docs
Add working link for hacktoberfest projects to "Browse more on Github" button on homepage
Fix spacing between copy & button in “Promote your event”
Remove outer padding on “Promote your event” and pad each section (so image background doesn’t have a darker bg border)
Consider applying the tilt/popout effect to the sample image in “Promote your event”
A user will be able to see a list of Hacktoberfest meetups and have the ability to create a new event
Fix the viewport issue on mobile.
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.