Giter VIP home page Giter VIP logo

bike-bike-'s Introduction

Bike!Bike!

Environment Build Status
Development Development Build Status
Production Production Build Status

This is the repository for the Bike!Bike! website. It can be found in development at preview.bikebike.org and in production at bikebike.org

Feel free to clone or fork the repository any time to start working on new features or fixes. To get help create an issue or contact Godwin: goodgodwin @ hotmail.com any time.

Screenshot of Bike!Bike!

Technologies

Internal Gems

We will make a commitment to extract any functionality that makes sense to do so, into separate gems in order to share functionality with others, with our other projects (such as bikecollectives.org), and to enable easier collaboration amongst ourselves.

It is recommended that you at least use also clone bikecollectives_core into you workspace. To override the gem location execute:

bundle config local.bikecollectives_core PATH_TO/bikecollectives_core

Here is a list of the gems we have created so far, if you are a collaborator on this project you may need to become a collaborator on these gems as well. Don't hesitate to make a request, it won't be denied:

Bike Collectives Core

Bike Collectives Core is where models, migrations, and some common controllers and helpers live. This Gem is shared between Bike Collectives and Bike Collectives Workbench.

Lingua Franca

Lingua Franca provides an easy way to include translatable content and provides a user interface for translators to provide translations. See Translations for best practices on the Bike!Bike! website.

Bumbleberry

Bumbleberry provides cross-browser support with little effort and minimum file sizes. Basically it creates a different stylesheet for every known browser and only includes supported rules for each using information obtained from caniuse.com.

Github Workflow

If you are a git wiz, feel free to adjust the steps below slightly, otherwise follow these steps until you are familiar enough to stray. What should remain constant is that we need to branch, code review, and merge with master.

  1. Before you start working on a new feature, start working on a new branch (alternatively you can fork): git checkout -b myname_new_feature
  2. Write your new feature
  3. Add tests and execute them using bundle exec i18n
  4. Make any adjustments, make sure you have included comments and abided other coding conventions
  5. Check your git status to make sure you are on the correct branch and have any new files to add: git status
  6. Add any new files using: git add [myfile]
  7. Commit your changes: git commit -am 'My commit message'
  8. Switch back to the development branch and pull the latest: git checkout master && git pull
  9. Switch back to your branch: git checkout myname_new_feature
  10. If there were any changes, rebase. This merges in the new code with your new code: git rebase -i origin/development
  11. Push your changes: git push origin myname_new_feature
  12. Make a pull request and wait for your code to be reviewed
  13. If any changes are required, make them commit your changes, and rebase again. This time you need to make sure that you squash your commits (makes sure you only add one commit in the end). Where you see your commit message, change 'pick' to 'fixup' or 'f'.
  14. Push your code again and repeat 12 and 13 until your code gets merged with development
  15. Once your code is in development it will be released to our development site, once new translations are added and the site is manually tested it will be moved to master and the production site

Deployment Process

Please note, we currently don't have this process set up, we're working to get here.

  1. Write code and get it pulled into master
  2. Your changes will be automatically be deployed to our preview site
  3. Your changes will be tested there, if tests fail deployers will be notified
  4. Once that deployment process completes and tests pass, translators will be notified if there are new translations
  5. Once translators have completed translations, translations will be committed to master and your changes will be deployed to production

Translations

Translating our site into multiple languages is a key part of opening it up to the world. When coding, never include any English text as in a string or Haml. Instead, we shall always use the underscore helper method _. The method takes a translation key and some optional parameters.

All translation is done in a collaborative, volunteer based system on the site itself, even the English text. If a user has sufficient permissions, the underscore method will produce highlighted text which can be edited directly by the user.

The method can be used as follows:

%h1=_'basename.my_title'
%p=_'basename.my_key', :paragraph
%button=_'basename.click_me'

Assuming none of the keys map to translations, this will be rendered into the following HTML:

<h1>
  Lorem ipsum dolor sit amet
</h1>

<p>
  Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Proin eget tortor risus. Donec sollicitudin molestie malesuada. Donec rutrum congue leo eget malesuada.
</p>

<button>
  click me
</button>

By default, the key will be translated using the last key part ('click me' in this example), however if a context is provided, some appropriate lorem ipsum text. Available contexts are:

  • title (alias: t): title text, a few words in upper case
  • word (alias: words, w): A word, if a second parameter is provided a numbr of words will be rendered (for example _'key',:w,3)
  • sentence (alias: sentences, s): A sentence or multiple sentence
  • paragraph (alias: p): A paragraph

If actual translations are not provided by the time the code hits production, fatals will occur.

Entering translations

Translations can be provided directly by editing en.yml but will also be directly using the workbench:

Screenshot of the Bike Collectives Workbench

Collecting translations

Translations, along with screenshots and HTML page captures are collected during testing so that the workbench will have up to date translations and context for each to make it easier for translators to provide relevant translations. To collect these translations yourself, execute rake i18n.

Testing Practices

Our focus will be on integration testing using Capybara. While testing the app records all translations that it finds, whether or not they exist, and which pages that they were found on.

Before commiting you shuold always run:

bundle exec rake cucumber:run

and:

bundle exec rake i18n

The former is going to be faster but does not perform checks for untranslated content, it is recommneded that you run this regularily while developing while running the i18n check will ensure that you have not missed translations.

If you are creating any new content you will also want to add a new feature or scenario to ensure the new translations are picked up.

bike-bike-'s People

Contributors

g0dwin avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

mrmomoko wolfrabe

bike-bike-'s Issues

express interest in a workshop

seems that right now I can not (as a simple user) show interest in a workshop,
It would be good to be able to comment on a workshop
Screen Shot 2013-03-24 at 11 34 20 AM

add bikebike working definition to conference page

http://tqa.bikebike.org/conferences

for this page, we should add the definition of bikebike

Bike!Bike! is an international annual gathering organized BY and FOR community bicycle projects. This conference is a space for participants from shops and related advocacy groups to converge in a different city each year over a 4 day period to have workshops and strengthen our social network. Workshops vary each year but tend to sit within the framework of structural organization, mechanics, social change, and anti-oppression strategies on the scale of the bike shop, the neighborhood, the city and other related networks. One outcome of Bike!Bike! is to create an interactive collection of resources via the thinktank.org mailing list and the bikecollective.org/bikewiki websites for the creation and ongoing development of new Community Bike Projects.

Landing page - Bikebike Definition

Add bikebike def to landing page

Bike!Bike! is an international annual gathering organized BY and FOR community bicycle projects. This conference is a space for participants from shops and related advocacy groups to converge in a different city each year over a 4 day period to have workshops and strengthen our social network. Workshops vary each year but tend to sit within the framework of structural organization, mechanics, social change, and anti-oppression strategies on the scale of the bike shop, the neighborhood, the city and other related networks. One outcome of Bike!Bike! is to create an interactive collection of resources via the thinktank.org mailing list and the bikecollective.org/bikewiki websites for the creation and ongoing development of new Community Bike Projects.

google analytics - in page analytics

I got an error when trying to view the in page analytics.

Not a huge rush on fixing this, but it is an issue.


Problem loading In-Page Analytics
We've identified problems in your setup. These may cause problems loading In-Page Analytics.
Error: The Website in your settings (http://bikebike.org), redirects into a different domain. (https://www.bikebike.org). In-Page Analytics currently works on only one domain. Note that www.example.com and example.com are NOT considered to be on the same domain. Also, make sure you're not redirecting from http:// to https:// or vice versa.

Red Errors - when trying to invite members to be coordinators

https://www.bikebike.org/conferences/2/workshops/120/members

When I have added a workshop,
and I try to add two more coordinators,
I get read error messages

(this also happens when I try to add only one other coordinator.)

Notice: Undefined property: stdClass::$field_administrators in bikebike_create_request() (line 3192 of /home/bike_bike_bike/bikebike.org/sites/all/modules/bikebike/bikebike.module).
EntityMetadataWrapperException: Invalid data value given. Be sure it matches the required data type and format. in EntityDrupalWrapper->set() (line 745 of /home/bike_bike_bike/bikebike.org/sites/all/modules/entity/includes/entity.wrapper.inc).

Adding a new Conference

After I add a new conference, I can't find out how to go back to it and edit it.
I only see the bikebike NOLA on the conference page.

Not added to orgs member page

Even tho I added the organization "bike farm" i am not a member. that's odd. currently the shop has no members,

doesn't that go against what we decided for orgs, that they would always have a member unless defunct.

messages - access denied

as one user, i sent myself (another user) a direct message,
when i am logged in as the user who received the message,
and i click on the little message icon next to my picture,
i am told that access is denied

Screen Shot 2013-03-24 at 11 27 17 AM

Red Error Messages -

http://tqa.bikebike.org/user/89/edit
After I logged in with facebook
and I added a photo
I try to save my user page
and I get a red error message

Notice: Undefined index: pass in user_validate_current_pass() (line 1198 of /home/bike_bike_bike/tqa.bikebike.org/modules/user/user.module).

Screen Shot 2013-03-14 at 4 40 57 PM

forgot password

Given that I am not logged in
and I have forgotten my password
When I got to the forgot password page
then I remember my password,
and I press on the login button
Then the login fields do not show up

they should have a email and password field, like they do from any other page, but for whatever reason, from the forgot password page, these fields do not load
I can't get a screen shot on this, (git's being weird) but i will keep trying

Icons for org status

What's up with the icons for new, open, and default orgs? Do they have meaning or are they just place holders?

Screen Shot 2013-03-14 at 4 47 38 PM

Red Error Messages - Adding an org

http://tqa.bikebike.org/organizations/BikeFarm_%28Portland%29

when I add an org, i get the following red error messages

Notice: Undefined index: user_latitude in location_locationapi() (line 692 of /home/bike_bike_bike/tqa.bikebike.org/sites/all/modules/location/location.module).
Notice: Undefined index: user_longitude in location_locationapi() (line 692 of /home/bike_bike_bike/tqa.bikebike.org/sites/all/modules/location/location.module).

Screen Shot 2013-03-22 at 6 17 59 PM

express interest in a workshop

seems that right now I can not (as a simple user) show interest in a workshop,
It would be good to be able to comment on a workshop
Screen Shot 2013-03-24 at 11 34 20 AM

Requesting

https://www.bikebike.org/organizations/29/members

EntityMetadataWrapperException: Invalid data value given. Be sure it matches the required data type and format. in EntityDrupalWrapper->set() (line 745 of /home/bike_bike_bike/bikebike.org/sites/all/modules/entity/includes/entity.wrapper.inc).

After Adding a field/question to the registration form

After I've added the question,
I am lead to a page that shows me what I have Created, but I have no idea how to navigate back to either adding more questions or arranging them on the form.
It would be good to have a button at the top
"add another questions" and
"arrange your questions"

Screen Shot 2013-03-14 at 5 00 02 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.