# Rykwong - Full Stack (Level 2) Pathway

**URL:** <http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208>\
**Category:** Open Source Ruby Plugin (CA) 2021\
**Created:** [June 15, 2021, 6:32pm UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208 "2021-06-15T18:32:41Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [June 15, 2021, 6:32pm UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/1 "2021-06-15T18:32:41Z")

</div>

**Module 1 - Getting Started**

**1. Overview**

**Technical Area**

- Learned about the Discourse platform and its codebase
- Practiced Git and GitHub skills and how they work with open-source projects
- Reviewed command line commands
- Learned Ruby syntax both from the videos provided and Linkedin Learning

**Tools**

- GitHub
- Discourse

**Soft Skills**

- Communication - Worked on establishing communication with team leads to find information needed for the program
- Time Management - Worked out a schedule between tasks for stem-away and other program that I am doing.

**2. Three Achievement Highlights**

- Gained a fair understanding of Ruby syntax
- Reviewed Github and command line skills that I haven’t used in a while
- Attended all team meetings and started talking with other team members

**3. Goals for Upcoming Weeks**

- Install Discourse developer environment
- Learn about Ember JS and SCSS and how they work within Discourse
- Continue learning Ruby, specifically Ruby on Rails

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [June 22, 2021, 6:29pm UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/2 "2021-06-22T18:29:30Z")

</div>

**Module 2 - Dev Environment Setup**

**1. Overview**

**Technical Area**

- Installed Discourse locally
- Learned Ember.js
- Learned SCSS and how it relates to CSS

**Tools**

- Discourse

**Soft Skills**

- Reading Documentation - Worked on how best to go over documentation of a new language
- Debugging - Worked on searching through forums on specific errors I was getting during installation

**2. Three Achievement Highlights**

- Gained a fair understanding of Ember.js and SCSS and how it works within a tech stack
- Installed Discourse developer environment

**3. Goals for Upcoming Weeks**

- Continue learning Ember.js and SCSS
- Brush up on HTML/CSS/JS in preparation for developing themes
- Create a basic theme and start brainstorming ideas for potential capstone projects

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [June 30, 2021, 4:48am UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/3 "2021-06-30T04:48:52Z")

</div>

**Module 3 - Developing Discourse Themes**

**1. Overview**

**Technical Area**

- Learned about how Discourse themes and components worked
- Learned how to use the Discourse theme-creator to test out themes
- Learned how HTML and SCSS are used to create themes in Discourse

**Tools**

- Discourse
- Github/Git
- VSCode
- DOM inspector

**Soft Skills**

- Reading Documentation - Worked on how to follow a guide on learning a new skill and how to find related content that might be useful.

**2. Three Achievement Highlights**

- Developed a simple theme for Discourse
- Learned how the DOM inspector can be used for front-end design
- Brainstormed a few ideas for the final project

**3. Goals for Upcoming Weeks**

- Update basic theme to use more complex compents
- Go over the different styles in the style guide that can be potentially used
- Go into more detail on brainstormed ideas

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [August 20, 2021, 4:36pm UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/4 "2021-08-20T16:36:32Z")

</div>

**Module 4 - Advanced Discourse Themes**

**1. Overview**

**Technical Area**

- Learned about handlebars templates and how they can be used in themes
- Learned how to use a remote theme from Github

**Tools**

- Discourse
- Github/Git
- VSCode
- DOM inspector

**Soft Skills**

- Brainstorming ideas for plugin project

**2. Three Achievement Highlights**

- Updated previous theme with new material learned this module
- Learned how AJAX requests can be used.

**3. Goals for Upcoming Weeks**

- Come to meeting with fleshed out ideas for plugin
- Continue testing things in theme and see if they can be used in the final project.

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [August 20, 2021, 8:01pm UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/5 "2021-08-20T20:01:17Z")

</div>

**Module 5 - Discourse Plugin Development**

**1. Overview**

**Technical Area**

- Learned about to create a discourse plugin
- Learned how to use plugin generator to create file structure

**Tools**

- Discourse
- Github/Git
- VSCode
- DOM inspector

**Soft Skills**

- Communication with team on ideas for plugin project

**2. Three Achievement Highlights**

- Created a basic plugin that toggled an image
- Presented potential ideas to team

**3. Goals for Upcoming Weeks**

- Make a more complex plugin that utilizes multiple application layers
- Continue on plugin guides

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [August 21, 2021, 12:36am UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/6 "2021-08-21T00:36:51Z")

</div>

**Module 6 - Plugin Development Continued**

**1. Overview**

**Technical Area**

- Learned how backend interacts with frontend in Discourse
- Learned how to use Discourse’s PluginStore to store data

**Tools**

- Discourse
- Github/Git
- VSCode
- DOM inspector
- Ruby
- PluginStore

**Soft Skills**

- Planning - Selecting a project idea and seeing which tasks are needed to complete it

**2. Three Achievement Highlights**

- Completed the notebook sample project
- Agreed on project idea to go forward with

**3. Goals for Upcoming Weeks**

- Start thinking about task I want to work on
- Start researching how to complete assigned task

---

<div class="post-metadata">

**Author:** ![rykwong](https://d3rzmptxz7fqzy.cloudfront.net/user_avatar/staging.stemaway.com/rykwong/32/3743_2.png) [@rykwong](http://staging.stemaway.com/u/rykwong)\
**Post date:** [August 21, 2021, 12:44am UTC](http://staging.stemaway.com/t/rykwong-full-stack-level-2-pathway/8208/7 "2021-08-21T00:44:07Z")

</div>

**Module 7/8 - Putting It All Together**

**1. Overview**

**Technical Area**

- Learned how to use Ruby to create functions for PluginStore
- Learned how backend controller works with PluginStore to retrieve/send data
- Learned how to format AJAX requests to match up with established routes

**Tools**

- Discourse
- Github/Git
- VSCode
- Ruby
- PluginStore

**Soft Skills**

- Communication - Had to communicate with backend team to figure out how to design database and how data should be formatted.

**2. Three Achievement Highlights**

- Designed database to store needed data
- Created functions for backend controller to use to update, remove, and retrieve data from database
- Created functions for frontend controller to send AJAX requests to retrieve/send data to backend

**3. Goals for Upcoming Weeks**

- Finalize code and ensure that plugin is working as intended
