Git Product home page Git Product logo

montreal.rb's Introduction

Montreal.rb website

Build Status Code Climate Stories in Priority

Description

This is the Montreal.rb organization's website. It is still in development stage so you are welcome to contribute. You can join our Slack Team if you have any question, need some help to get started or just hang around with friendly people.

Want to contribute? First thing to look at are the Issues with the priority label. You can optionnally use Waffle.io to see the development pipeline used to manage the project.

Throughput Graph

Requirements

Runtime

  • ruby 2.5.0
  • Postgresql 9.3+

Development Setup

Fork the repository and clone it to your machine. Then change directory to Montreal.rb

$ git clone <your_fork> && cd Montreal.rb

Ruby & Bundler

You should have Ruby version 2.5.0 installed using your prefered Ruby version management tool (or by globally updating your system Ruby)

Most Popular Ruby Version Managers

You should also have bundler (minimum v1.10) to help with tracking and installing the exact gems and versions that are needed.

Database

For development, sqlite3 will be used.

Rails

You should check out Ruby on Rails' guides if you are not familiar with the framework : http://guides.rubyonrails.org/

Setup your Project

$ bin/setup

Once successfully completed, this setup script will:

  • install bundler for managing your gem dependencies
  • install your project's required gems
  • create and setup your database
  • cleanup logs and temporary files

Set environment variables

Omniauth is used to allow users to log in to the site using GitHub or Twitter accounts. To use the GitHub API or Twitter API, you must set environment variables for the GitHub 'key' and 'secret.' For the Twitter API you will need to set up TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET environment variables.

You can first obtain this key/secret through your GitHub account.

For image hosting Cloudinary is used. This service gives us the ability to host images with a heroku app. Sign up for a free coludinary account.

To tweet automatically when content is published, you can register an app on Twitter and set the keys to your environment variables. If you choose not to, don't set the variables and the app will simply skip the tweeting feature.

Now you need to set the environment variables on your server. The procedure will depend on your system.

For development, copy .env.sample file to .env and fill appropriately the variables settings.

If using Heroku, you can set the environment variables like this:

heroku config:add GITHUB_KEY=your_key GITHUB_SECRET=your_secret \
  CLOUDINARY_URL=cloudinary://your_key:your_secret \
  --app Montreal.rb

Start your Web Server

You should be ready to start your webserver using:

$ bin/rails server

By default, your application is accessible at http://localhost:3000 in your browser.

Code Style

Rubocop is used to anaylize and enforce the code style accross all the codebase. Before opening a new pull request run:

$ rubocop -a

This command will automatically fix the majority of the code style issues and you'll make code-climate happy.

Testing

RSpec is used to test the application. You can run all the tests using

$ bin/rspec

or you can run a specific test file (example 1), or a single test (example 2, 17 is the line number of your test)

$ bin/rspec spec/path/to/your/file.rb    # example 1

$ bin/rspec spec/path/to/your/file.rb:17 # example 2

You can also use guard to test automatically when you save a file

$ bundle exec guard

PROTIP: install ctags and guard will automatically generate an index (or tag) file of language objects found in source files that allows these items to be quickly and easily located by a text editor.

  • ex: macos brew install ctags && sudo mv /usr/bin/ctags /usr/bin/ctags.bak
  • ex: ubuntu sudo apt-get install exuberant-ctags

Deploy

This application is automatically deployed to heroku after a successful Travis CI build of the master branch.

URLs

Bug Tracker

If you find any bug, please open an issue in the project's Github repository (https://github.com/montrealrb/Montreal.rb/issues)

Contributing

Please see CONTRIBUTING.md.

Everyone interacting in Montrealrb.com and its sub-projects' codebases, issue trackers, chat rooms, and mailing lists is expected to follow our code of conduct.

License

montrealrb.com is released under the MIT License.

montreal.rb's People

Contributors

aleksandrkudashkin avatar alexcp avatar androse avatar andyobtiva avatar bellef avatar benichu avatar bluciam avatar byroot avatar caristomenopoulos avatar coaxial avatar davidcornu avatar dechuck avatar dependabot[bot] avatar em77 avatar ewalk153 avatar galkas avatar garyharan avatar itswill avatar karimmtarek avatar kiramclean avatar mathieugagne avatar mdeloupy avatar nicholasjhenry avatar opiation avatar pantoniotti avatar shalstein avatar sophiedeziel avatar steakunderscore avatar syed avatar vivrass avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

montreal.rb's Issues

Members submit to talk

As a member, I want to be able to register my proposed talk with

  • title
  • Description
  • Level
  • Format (see #262 )
  • Link to my presentation slides

Non editable attributes for a non-admin user:

  • the talk should have the proposed state
  • the talk should be linked to my member

UI :

  • I should see a confirmation page with my talk's details and that it is in proposed state
  • I should see the link to submit a talk in the dropdown menu of my user on the navbar

Email to [email protected] goes nowhere

This is the mail system at host eforward3e.registrar-servers.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

Ready to be deployed to heroku

  • Deploy procedure/scripts
  • Continuous deployment โ“
  • montrealrb.com DNS switch ready (who has credentials for domain management and where...)

Clean-up Models/DB Schema

Before the workshop I'm going to clean up the schema -- here's a heads up on what I plan to do:

  • votes, remove table (no plan for use)
  • users, remove bio (will have members model)
  • remove bio for talks
  • talks, remove table (not translated)
  • rename companies -> organizations

Let me know if there are any concerns.

Manage and display events

As an organizer, I want to be able to be able to create a monthly event

Choose a meet-up place
Choose 2 talks
Add an introduction + conclusion (french + english)
  • manage events in the admin
  • display events
  • render the show view
  • add missing attributes to the index view
  • link title on the index view

Display speakers

We need a list with all the speakers listed.

A speaker needs to have the list of all its talk (title, extract, slides)

A video for the talk would be nice but we don't have them right now.

Make README more informational and helpful

Project Name

Description

Include the answer to the age-old question "What problem is this project solving?"
Add a wireframe, logo or screenshot

Requirements

Outline of the technologies in the project (framework, database, ruby version...)

Links to any related projects

Links to online tools related to the application (e.g.: Links to the Basecamp project, a link to the dropbox where all the wireframes are stored...)

External services or processes (sidekiq, amazon S3, postmark...)

Development Setup

How to install the project ? Git clone, install dependencies/libraries, how to launch the server...

Testing

How to run the tests ?

Deploy

Staging and Production environment sections (one section per environment) should provide any information a developer might need to know about these environments.

Bug Tracker

Where to post issues/task for the project ?

License

probably MIT

Manage and display organizations

As a company, I'd like to have a page on the website
Name
Address
Logo
Description
List of members working there
List of members who can manage the company

Unified calendar

We need a calendar in which the information for each meet-up/office hours/railsbridge is present.

Google calendar is preferable.

Migrate data from old site

I'm assuming we are doing this?

  • source dump of MySQL DB
  • import posts to news
    • convert html to markdown

Add a CONTRIBUTING.md file

with something like:

# Contributing

1. Fork it ( https://github.com/montrealrb/Montreal.rb )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

Members can manage their profile

Every users should be able to set:
- [x] Name
- [x] Email
- [x] Picture (gravatar)
- [x] Link to twitter
- [x] Link to github
- [x] Description

Create a roadmap for development

Below is a proposed roadmap with milestones. Perhaps something we can review together over a hangout before the workshop.

Roadmap

Introduction

  • milestones with the same number can be implemented at the same time, e.g. milestones 1a and 1b can start at the same time
  • milestones proceeding a number are dependent on the preceding milestones, e.g. all milestones 2 are dependent on 1, therefore milestones 1 must be completed first (not quite true, but simplifies the roadmap)

Prerequisites for Workshop

  • admin tool (i.e. Thoughtbot's Administrative)
  • layout with links based on Wireframe
  • home page with placeholders
  • one item from the 1.x milestones to be implemented

Milestone 1a - Theme: Basic Content Management

  • manage and display news items
  • manage and display events
  • manage and display pages
  • implement authentication

Milestone 1b - Theme: Extended Content Management

  • manage and display members
  • manage and display organizations

Milestone 2a - Theme: Home Page Aggregation

  • aggregate news, events on home page
  • display recent events on home page (sidebar)

Milestone 2b - Theme: Event Management with Talks

  • manage and display talks assigned to events
  • assign members to talks
  • display talks for a member

Milestone 2c - Theme: Event Management with Locations

  • manage and display locations assigned to events
  • display a location for an event

Milestone 2d - Theme: Event Management with Sponsors

  • assign an organization as a sponsor for an event
  • display sponsors for an event

Milestone 2e - Theme: Jobs Management

  • manage and display jobs
  • assign an organization to a job posting

Future milestones

  • internationalization
  • member sign-in with profile and RSVP events
  • associating members and organizations

List of Ruby/RoR company

We need a list + a map of all the company using Ruby and RoR in Montreal/Quebec with their contact information.

If would be nice to know when the sponsored an activity.

Manage and display members

Having a list of all the members with name, private email, picture, twitter, description (free text) would be nice.

Manage and display pages

We need pages of content (separated from the news feed) for special content (about, FAQs, howtos)

  • manage pages in the admin
  • access pages via a link

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.