seport / slla Goto Github PK
View Code? Open in Web Editor NEWA simple protest calendar for the Los Angeles area.
Home Page: http://stayloudla.com/
A simple protest calendar for the Los Angeles area.
Home Page: http://stayloudla.com/
Let's discuss how MeetUp events will be integrated.
test
Let's add rubocop to lint our files.
As a developer
I want to run a rake task that migrates the sample data to create a test admin user
The test user should have the following login credentials:
username: admin
password: password
This should be included in the rake task rake db:recreate
As a user
I want to search the calendar from the front page
Given a user on the front page of the app
When I type in the text bar in the hero area
Then I am redirected to the calendar page with a search for that location
Notes: This is blocked until the calendar page is refactored.
Typing into the search bar on the front page:
Redirects you to the calendar with a search parameter:
As an admin
I want to approve MeetUp events in the admin panel
So that they will be published to the app
Given an admin on the admin panel and unapproved submitted MeetUp events in the database
When I click approve on a MeetUp event
Then that event appears on the calendar page.
When I click delete on a MeetUp event
Then it is put into a deleted state but not deleted from the database, and is not visible on the admin page, and it is not visible on the calendar page.
As an admin
I want to Manage submitted events
So that they are published on the app.
Given an admin on the admin panel (stayloudla.com/admin/
)
When I click on an event link
Then the facebook event opens in a new tab.
When I accept an event
Then it is visible on the calendar page.
When I delete an event
Then it is put into a deleted state but is not deleted from the database, and is not visible on the admin page, and it is not visible on the calendar page.
When I click log out
Then I am logged out of my admin account
The login page and basic authentication has already been completed but you may need to implement a logout script. #5
Should we incorporate online actions into the calendar? For example, online petitions, calls to make to your representatives, etc?
If so, how should we incorporate them?
Should we piggy back off of resources already out there for couch activism? (For example, https://thesixtyfive.org/home and others?) E.G. link to their resources and drive traffic to their platform.
When a user clicks on the calendar link in the nav bar
Then they see a hello world page at /calendar
this ticket is only to set up the routes for the calendar page.
As a user
I want to submit links to protest event pages
So that they are visible on the app
Given a user
When I submit a valid facebook link
Then that link should appear in the admin panel for approval
As a SLLA contributor, if I pick up a ticket I want the project board to automatically reflect that the ticket is in progress. Additionally, if my pull request for the ticket is merged, it would be nice if the ticket is moved from "in progress" to "done".
Please look into how this can happen and report back. We should be able to tie issues to pull requests through the ID somehow, so maybe we can ask people to make empty work in progress pull requests and use the pull request to move the issue to "in progress"? Just a thought. This might be a red herring.
As a project contributor
I want to have clear directions to run the project locally
So that I can more easily contribute to the project
Notes:
Resources:
As a user
I want to report bugs on the website
So that the dev team knows about issues with the site
As an admin
I want to see a list of reported bugs
So that the dev team can address them
This can be a link to a support email in the footer.
As a client
I want to query an ordered, paginated list of events
So that the events can be exposed to the calendar page.
This should be as modular as possible so that when we eventually break this into a REST API it will be easy to separate from the controller logic.
the query method should take the following parameters:
limit
: how many results to return
start
: which index to start with
if the above is confusing you can google search "API pagination"
For now just return the events in id order, they will be ordered later.
The first 10 events should appear on the left side of the calendar page.
There should be a "see more" button if there are more events, which will reveal the next 10.
Hovering on an event should change the background color.
Blocked by #36
Talk to me about what the events should look like on the calendar page.
As an admin
I want to approve EventBrite events in the admin panel
So that they will be published to the app
Given an admin on the admin panel and unapproved submitted EventBrite events in the database
When I click approve on a EventBrite event
Then that event appears on the calendar page.
When I click delete on a EventBrite event
Then it is put into a deleted state but not deleted from the database, and is not visible on the admin page, and it is not visible on the calendar page.
As a user
I want to submit EventBrite events to the website
So that our platform is accessible to more events
Given a user on the submit page
When she submits a EventBrite event
Then the event's id is saved in the database
As a user
I want to submit MeetUp events to the website
So that our platform is accessible to more events
Given a user on the submit page
When she submits a MeetUp event
Then the event's id is saved in the database
As a user on the calendar page
I want to see a map of LA
So that we can eventually see where events are on a map.
Use the google maps API for this. It should be pretty similar to the legacy code.
Don't bother adding pins yet, just add the map to the page.
Blocked by #36
Talk to me for design.
As a user on the calendar page
I want to see events in chronological order
So that I see the soonest events first
The query method should now take an orderBy
parameter, which should be date
by default.
You may need to add a date field on events in the database, which should be populated on event submission.
Blocked by #37
As a user on the calendar page
I want to see pins on the map for all the events in the event list on the page.
When a user hovers on an event on the left side of the page, the corresponding pin should enlarge and/or change color to indicate that you're hovering on it.
If you're feeling adventurous you can add a basic tooltip on the pins with the event name, but we can put that off for another ticket if it's too much trouble.
This can probably be copied from the legacy code, but we might want to refactor it anyway. I'm pretty sure I wrote spaghetti code
currently we are using webmock in each spec to stub external API requests like so:
stub_request(:get, "https://graph.facebook.com/v2.12/134236613927952")
.with(headers: {
'Accept' => '*/*',
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
'Host' => 'graph.facebook.com',
'User-Agent'=>'Ruby'
}).to_return(status: 404, body: '{"error": {}}', headers: {})
Let's see if we can write this stub once somewhere and have it catch these requests for all specs by default.
Given a submission with multiple error messages
When I submit
Then I should see multiple error messages being transmitted from the model errors
Notes:
Resources:
Let's set up CircleCI to run the test suite on all pull requests automatically.
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.