OperationCode / operationcode_frontend

Front-end repository for live site. Please go to `front-end` repo to contribute instead.
https://operationcode.org
MIT License
101 stars 221 forks source link

Include meetups scheduled next 30 days on the front page #995

Open hollomancer opened 6 years ago

hollomancer commented 6 years ago

Feature

Why is this feature being added?

To highlight our meetups and chapters across the country.

What should your feature do?

I would like to use the Meetup Pro API to put any Meetups that may be taking place in the next 30 days, on the front page. This will increase attendance and show how we make a difference in local communities.

There is a design piece here, to determine the ideal location for this - whether it should go above or below the fold, how it should be laid out, etc.

rgoc123 commented 6 years ago

Hey @hollomancer, I'd be happy to work on this one the design piece is figured out.

jjhampton commented 6 years ago

Overlaps with #883 and #214

rgoc123 commented 6 years ago

@jjhampton Should I wait until those are complete before getting started? It sounds like a decision needs to be made about whether a map or a list of events or both will be on the landing page.

dmarchante commented 6 years ago

@rgoc123 I think you can charge ahead as long as you reference #214

charlessipe commented 6 years ago

My idea for the design of this section is a gray map of the United States in the background with solid dots for cities with an active meetup group. The dots would be Operation Code turquoise. In front of the background is the text info about the next 5 meetups (date, location, event title). The heading could be "Upcoming Local Meetups" in the same style as the other headings on the page. If this sounds good I could mock it up on Illustrator.

kylemh commented 6 years ago

We definitely want to automate this and have it be scalable. If you're planning on using an image of a map, we'll need to recreate that image whenever new cities begin hosting meetups. If we end up having a map and displaying custom icons on in it, we'll need to discuss lazy-loading the map, using Google's API (and potential costs).

For a minimum viable product, I recommend mocking out a nice-looking list.

hollomancer commented 6 years ago

Agreed re. MVP.

charlessipe commented 6 years ago

@kylemh Can you clarify what you mean by mocking out a nice-looking list? Do you mean a nice-looking list of upcoming meetups in front of a map image background?

kylemh commented 6 years ago

Precisely. You can even do without the map image, to avoid contrast issues (tough to read)

charlessipe commented 6 years ago

Here's the design mockup I came up with. oc-meetup

hollomancer commented 6 years ago

Dude. This is awesome.

kylemh commented 6 years ago

@charlessipe perfect đź‘Ť

Go ahead and move on that, but also make sure it's developed and written to prepare for a potential of like 5+ meet-ups to display. I have an idea of how you can still have this appearance and fit an unlimited number of events, but I'll leave you to implement your own. Lemme know if you need help.

LauraUX commented 6 years ago

Very cool! I like this very much. It helps users see that we do have events happening, especially recent ones. It will get people exited to participate.

hollomancer commented 6 years ago

The challenging piece here will be managing the amount of space rel. to the other items on the landing page. May be necessary to assess this in the context of a larger landing page redesign later.

charlessipe commented 6 years ago

Plan to Render Upcoming Operation Code Events to a “Upcoming Events” section on the homepage:

  1. Store an array of “urlname” for each local Operation Code meetup group (there are about 34 groups?)

  2. Loop through the array and make a GET request for each meetup group to: https://api.meetup.com/:urlname/events

(Meetup API can be tested at this page https://secure.meetup.com/meetup_api/console/?path=/:urlname/events)

  1. Push each event to an array

  2. Order the events array by the key “time”

  3. For the 5 events with the highest “time” value, get values for the following keys and push to an array: name local_date local_time venue.name

  4. Loop through this array to render data to component

kylemh commented 6 years ago

Assigned to @charlessipe

kylemh commented 6 years ago

@charlessipe @Wimsy113 @LauraUX is this work still valid or should we consider this an aspect of the events page design?

Wimsy113 commented 6 years ago

This is part of the events page yes.