Ruby on Rails and JS (Discourse and Docuss) - Getting Started Guide

Building the most powerful community collaboration tool the world has ever seen, and directing it towards making this world a happier, kinder place by giving all other teams here the tools needed to achieve their missions. Tools: Getting started Guide - Goals and Roadmap - Join the Team

Getting Started Guide

Welcome!

This platform is built to be a multi-use community connection and collaborations platform focused around a cause, this means we can modify and deploy a new instance of this platform for many different projects.

Our design goal is bringing communities together to target change on societal issues through positive and fun action.

We use and modify Discourse plugins to create specialised functionality for each different project and to code in Discourse you should be familiar with, or learning:

  • Ruby (Preferably Ruby on Rails).
  • JavaScript.

There’s a lot going on here so I recommend reading this post then diving right in by grabbing a task on the tasks board and making something happen, rather than getting overwhelmed trying to understand everything right away. The community members that stick around are always the one’s who dive in right away

Note: Check and edit your user settings by clicking your icon in the top right. Some new members weren’t receiving notifications, there may be a hidden setting. Its also good to choose how often, and how you are notified.

Basic Set Up

Our main sites operate by combining Reactjs with Discourse, which is built in Ruby on Rails and allows modifications to be built in many other languages via plugins.

The React app loads within Discourse and we slide Discourse open and create or open threads to plug in a powerful community communications platform into our Local side, which is the React app. This also gives us a god-tier admin area which is lovely.

The Local side is built in Reactjs and the Global side is built through Theme Components and Plugins into a Discourse forum.

As the Reactjs side operates within Discourse you probably won’t need to interact with it at all, but if you’re curious check out the ‘Docuss’ and ‘Documentation’ tag-intersection

Most of you will be looking for information in our Github although you’ll find far more information in the documentation section here, and we call issues tasks and they are in the ‘Tasks’ tab

Theme components and plugins we’ve built to modify this Discourse forum can be found in our Github here.

We run a testing server which you can have admin for to test out and play around with your creations before they go live, and you’ll find that here: https://testing-happiness.ga/ (note as of 17/4 this is down due to the database error).

I see different coding languages?

Yes. Discourse allows you to code in different languages to create theme components, whilst plugins are all built in Ruby on Rails. Some tasks here require editing plugins which are in a specific language, others you can use which ever you prefer to achieve the desired outcome.

You can read about themes and theme components here

Theme-components Vs Plugins

Here’s a good Getting Started guide to building in Discourse

Theme-components use HTML,CSS,JavaScript, Handlebars, JS, Ember to enhance a base theme.

Plugins are built in Ruby on Rails and can modify anything about how Discourse operates. Here’s the getting started guide for them

Download the App

Which makes it much easier to stay up to date with what’s going on in discussions and tasks you’re working on.

Intro

Our community platform is built using a pretty sexy integration between React Js and Ruby on Rails. This gives us the ability to have our React app powering the community building, discussion and admin area through Discourse - which has fabulous documentation and ability to work with and develop, and gives us the support of one the worlds biggest and best opensource projects, who all seem very keen on our ideas to apply the strengths of their platform in a very different way.

Our integration between the two is powered by Docuss, which was built by @syl, who is both an important part of our community, and an independent developer building his own amazing program, Docuss. You can read more about it in our Documentation here

If this forum isn’t the perfect home for you to collaborate and build positive change in the world, then your mission is to make it so, helping all of our members do more to create connection and well-being where they live too.

Introductions

Come and say hi and tell people a bit about yourself and why you want to join us on this mission for a happier, kinder world. Don’t forget to follow the thread and say hi and make new members feel welcome. Their skills and enthusiasm brings all of our dreams closer.

Join the Team

Joining the team means other members can reach out to you when they want feedback on their work and suggestions, or to ask if anyone can help with a React or Meteor related task. If you want to be actively engaged you should join this team. You will receive more notifications.

Current Team Tasks

To find, discuss and post specific tasks click the ‘Tasks’ tab of the Reactjs or Meteor tag.

These should be broken into self-contained actionable slices of 30mins to 1hr so people from around the world can contribute in bite-sized time contributions, rather than excluding those who aren’t able to commit large amount of time.

Please try to keep to this rule when posting tasks. If the tasks are large and can’t be self contained, then use add [Discussion] at the beginning of the title, and add tags for all the groups needed to break it up into self-contained tasks.

note: some users are seeing this tab called ‘Board’. Its a bizarre bug we’re working to solve

Setting up a Local Dev Environment

The guide linked should be pretty complete, but there are many helpful people here to help if you run into bugs

How Suggest a new Change to the Platform

Simply create a post and tag it ‘Reactjs’, ‘Web-Dev’ and ‘Backlog’. It’ll now appear as a task for both the Dev and React Teams to be discussed by others, and coded by anyone who wants to build it.

Generally you’ll be adding the ‘backlog’ tag for new ideas. If you deem it an urgent change, or one you are beginning immediately, you can use the ‘sprint’ tag. If work has already begun you’d use the ‘doing’ tag.

Collaborating with other Teams

You may also want to involve other teams to help solve the task by adding their tag. For example: ‘UI’, ‘Graphic-Design’, ‘Copy-Writing’, ‘UX’.

If you need support from another team then your suggestion is probably not ready to be posted as a self contained ‘task’, so consider tagging it as a discussion and adding [Discussion] to the beginning of the title.

Its also often a good idea to tag their team in the post to get more eyes on it using the @ key

Coding and Committing

Visit the Making a PR or Commit guide

Resources

**If you cannot access any of the below resources, please contact @AndyatFocallocal.
** This thread contains our main goals and development in the UX process.
Most up-to-date maintenance of links to project resources such as

Tools

  • Threads created in this forum to discuss ideas and plan with each other
  • Tasks in the Team’s Tag for project management. Add the tag ‘Backlog’ to create a card for a non-urgent tasks. Sprint is for priority tasks aimed to be completed this month (impact / time to implement). Please assign cards to yourself and move them into the ‘Doing’, then ‘Done’ lists. Click ‘tasks’ or visit this link to access
  • Sitewide Documentation can be accessed and searched here, or by navigating to the relevant team and searching for the documentation tag
  • Team Calendar Its common to put volunteer commitments off, and many community members found the most helpful thing they could do is to have a monthly or weekly reminder to schedule your intended time to work by adding it to your team calendar. More details here

There is a supplementary Slack channel linked to the General thread in this sub-category, for those who have a specific need to use Slack rather than this forum at times. The Slack channel is here #meteor-react-build and within the resources listed below. It will be synced with the general discussion thread in the Team’s space in this forum so you can communicate with everyone here.

Please move all actionable ideas out of discussions on the forum and create cards for them. They will get buried and lost if left in this forum. Cards are ordered with the ones to be completed next at the top of a list, and can be claimed or assigned. Users do not have to follow this strictly, its just to aid prioritisation. Ideally each card should take 30mins - 1hr to complete. If longer please try to break it up.

Other Rewards

Its definitely best to join in because you want to see the changes it can bring to the world, and be part of a fun, positive and pro-active community.

We also invite anyone who plays a significant role into our team page, and are enthusiastic to support you if it helps your resume building: Public Happiness

Everyone who completes any tasks will be rewarded with Public Happiness Tokens at launch. We don’t guarantee they’ll ever be worth anything, tbh they are an experimental tool to add more fuel to drive the vision. I’m increasingly confident though.

We also run a WebDevJobs thread in Reddit to help devs find work. We are making a monthly post featuring all the developers who are helping to build our community and vision. If you’d like your profile to be included please message @AndyatFocallocal and he’ll make sure it’s in to help you find more work.

Who’s the Boss?

@AndyatFocallocal!!

Well for now anyway, Andy does his best to represent the work of all volunteers who have given to this community in the past, and prevents a situation where everyone new joining in throws out the great work of others. Nothing is off the table in this build, you just need to be very clear of the benefits when suggesting changing something others have built in the past and push them through.

We have a roadmap which will lead to a reputation-based decentralised governance system, where all community members are the boss, with their votes weighted by how much they’ve contributed to the vision. This is also a part of the design

The plan is:

  1. Andy
  2. As team members understanding of the concept we are building, and vision grows we move to a leadership council made up of those who’ve contributed the most the vision
  3. A reputation based decentralised governance system.

You can read more about governance in chapter 6.11 in the whitepaper

The answer is: You are the boss, as soon as you are ready.

Notes

  • You may find some references or links to focallocal.org and Trello. We are not using these anymore so please report them to a moderator to be updated. The site name PublicHappinessMovement.com may be changed before launch as it’s not perfect either.

  • A more detailed plan of building our eco-system and vision for a world with more attention to peace, well-being and happiness, is here in the Whitepaper. Be warned it is a very long read

https://meta.discourse.org/t/whos-online-plugin/52345

additonally, would a chat window enhance that functionality?

alternative:

Definitely! I would love to have a group chat on the side where I could see who is online, welcome new people, etc…

1 Like