Level 1: Module 1 - Self Assessment and Preparation

Full-Stack Pathway

Program Objective

In short, the Full-Stack Pathway is about developing Theme and Plugin for Discourse (a popular open-source discussion platform).


Although we will be learning these technologies along our way, it helps a lot if you are familiar with the followings:

  • Basic knowledge of HTML, CSS, JavaScript, and Ruby.
  • Familiar with Discourse and the meaning of Open-Source Software.


During our journey, we will work on the following things:

S.N Tasks
1. Installing Discourse in local machine (Mac or Windows or Linux).
2. Getting familiar with Ruby programming language.
3 Getting hands-on GitHub.
4. Working with Handlebars in Ember.js (covers HTML and JavaScript portion) and SCSS (CSS preprocessor).
5. Starting custom Theme Development for Discourse.
6. Getting hands on basics of PostgreSQL.
7. Starting custom Plugin Development for Discourse.
8. Other technologies as required during the development process.


After successful completion of this journey, we will have developed the following skills:

Technical Skills

  • Fully understand Discourse architecture (tech-stacks), data communication between Frontend and Backend with API.
  • Ability to develop custom Discourse Theme and Plugins.
  • Ability to change or add functionality to Discourse with Plugins.
  • Experience using version control system like Git.

Soft Skills

  • Virtual collaboration and communication within a team.
  • Leadership skills.
  • Project management and Time Management skills.
  • Familiar with industry-standard Agile Methodologies and Sprint systems.


Self-Assessments are very important because it is the way to keep a record of all your highlights and achievements (helps a lot when creating/updating resume). Also, it is required by STEM-Away to be able to generate certificates and 1-Click Resume. Most of the big companies also use the same technique of self-assessments to evaluate their employee’s performance.

  • Which format should you follow to write a self-assessment? You can find the format here.
  • Where should you post the self-assessment? You can post it here.

Getting Started Ahead

First, it is good to understand what is a discourse, what are its uses, and how popular is Discourse? Or what kind of business can benefit from Discourse? Contrast and compare Discourse with other platforms like Stack Overflow. Since we will be working with Discourse, it would be very helpful if we have a little background knowledge about it. Furthermore, it will be useful for visualizing and brainstorming what kind of Theme or Plugin would be most beneficial to who.

This podcast with Jeff Atwood (one of the founders of Discourse and Stack Overflow) is really an interesting one. Jeff Atwood talking about Discourse

Module 1 - Getting Started

Module 1 - Tasks

  • Install discourse locally. It takes some time to complete the installation process.

    NOTE for Windows Users Windows Subsystem for Linux should be set up in the windows machine. And the minimum system requirement is Windows 10 with the following versions: x64 (Version 1903 and Build 18362 or higher) ARM64 (Version 2004 and Build 19041 or higher)

  • Create a GitHub account if you have not yet. We will be cloning the GitHub projects, making pull requests, and commits. GitHub
  • Get yourself familiar with Ruby (if new to Ruby). It is okay to just learn basic syntax for now. Video1, Video2

Task Submission Steps

  • After completing the tasks for a specific module, post a self-assessment to the forum in this link.

  • Now, post the link (URL) of self-assessment as a reply to the ongoing module.

  • In later modules, we will push the tasks to GitHub.

  • There will be a webinar once every two weeks (date will be announced). So, all the tasks including self-assessment are due before that webinar.

  • During the webinar, you can discuss the problems you had faced, and the way you solved it, or please free feel to discuss any topics or questions.


Here are the collections of resources from STEMCasts that might come in handy.

:blush: Please reply below for any sort of questions or clarifications. :blush:


Just checking on if you are able to successfully install Discourse on your local machine. And again if there are any problems, let us know through this forum. And do not forget to provide your GitHub info in this forum.


We are planning for the Wrap-Up meeting of Module 1, and before the meeting, I wanted to make sure everyone was able to install Discourse to their local machine. If you have completed the Discourse Installation Step and GitHub account, then you will need to post the self-assessment here.

If there are any problems or issues with Discourse installation or any other, please mention them in this forum and we can work out to solve them. Looking forward to seeing the self-assessments.

Thank you.
@Angela_Ku @Besart @hannahzhang @mahmoud.darwish @Mohammed_Al-Rasheed @rynzhielsuheila @SARTHAK_DUGGAL @STEMjc @Swetha_Vijayakumar @yuz101

@STEMjc @Besart

I was having trouble withe last step in “Beginners Guide to Install Discourse on Ubuntu for Development” which was to run this following command:
bundle exec rails server --binding=

For some reason it kept on giving me errors which would go on forever.

Additionally, where can I access the recorded “Module 1 wrap up” meeting?

Thank you,
Aryan Ahuja

Hello Aryan @Aryan ,

Does your server run when you just try:
bundle exec rails server
Basically, bundle exec rails server --binding= is to access the discourse instance remotely.

Do you get errors when running bundle exec rails server ? Can you share your error logs?

And for the recording, you can access it here:


Hello Bijay @bmaharjan ,

Yes both the commands would work for a little while before raining down infinite errors. There’s one more thing I forgot to mention, that I was having 6 specs failure as well.

I’ve attached all the images here.

Regards, Aryan

and here’s the picture for the unlimited errors:

1 Like

Hello @Aryan,

Those failing specs should not be a problem at all. And for the discourse instance that is failing:

  1. Can you first see which WSL version you are running. It should be Version 2.
    You can check it by running cmd in windows and running wsl -l -v
  2. If you are running Version 2, can you try:
    redis-cli flushall
    bin/rake db:drop
    bin/rake db:create
    RAILS_ENV=test bin/rake db:migrate
    More details in this link.
  3. If you still have an error, we can go through it together maybe in a zoom or google meet by sharing screen. Please let me know.


Hey @bmaharjan,

I’m currently running version 1, which may very well be the problem here. I’ll update you if I get any further errors.

Thank you,

Here is my Module 1 Self Assessment for easy reference:

1 Like

Hello @bmaharjan,

I actually got it working! Thank you for the help. Additionally, I’ll be posting my self-assessment for module one very soon.


Here is a link to my self-assessment:



While running the install Discourse dependencies script (https://github.com/techAPJ/install-rails/blob/master/mac), I got multiple errors when running as a normal user.
Do I have to run the script with root privileges ?

Also, I already have Python 2.7 installed with root permission. Is this causing the errors below?

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/pip3
Target /usr/local/bin/pip3
already exists. You may want to remove it:
rm '/usr/local/bin/pip3'

To force the link and overwrite all conflicting files:
brew link --overwrite python@3.9
To list all files that would be deleted:
brew link --overwrite --dry-run python@3.9

Possible conflicting files are:
==> **/usr/local/Cellar/python@3.9/3.9.1_1/bin/python3 -m ensurepip**
==> **/usr/local/Cellar/python@3.9/3.9.1_1/bin/pip3 install -v --global-option=--no-user-cfg --install-option=--force --install-o**
==> **Caveats**
Python has been installed as

Hello @04sravya,

Have you tried removing /usr/local/bin/pip3 like:
$ rm '/usr/local/bin/pip3'
$ rm -rf '/usr/local/bin/pip3'

This should remove your conflicting files and should install the new one. If it still does not work, we can see how to resolve this issue.


Here is the link for my self assessment:


The self assessment example link is unavailable.

Hi @bmaharjan,

I am almost at the end of installing Discourse on Ubuntu. I have followed all the steps until creating a new admin because it keeps saying this. This shows after I use this command: “bundle exec rails server” or “bundle exec rails server --binding=”. I am not sure if I should repeat the whole thing again?

Here is the link to my self-assessment: Full Stack - Level 1 - Ken Wu

Hello @HasinAnik,

You might not need to run all the steps again. Did you run redis and postgres server before running discourse? You have to run them manually if you are using windows. If the error still presits, can you post the full logs of error again?

Thanks, Bijay