Syap - Full Stack (Level 2) Pathway

Sean Yap - Full Stack Self-Assessment - Module 1

1. An Overview of Things I Learned

  • Technical areas:
    • Understand what Discourse is, why it was created, and how it is being used.
    • The different tools and commands used to install Discourse such as: brew, RubyGems, and bundler because I did not want to copy paste commands without knowing what it does.
    • The basic syntax of Ruby and the similarities and differences with other programming languages I know like Java and Python
  • Tools:
    • Package managers: brew, RubyGems, bundler
    • Terminal: zsh shell
    • Discourse framework
  • Soft Skills:
    • How to search for answers online for questions and issues I have when setting up Discourse
    • How to manage time on learning and working with abstractions instead of learning every possible nitty-gritty details that came along the way

2. Three Achievement Highlights

  • Successfully setup and run the Discourse web app using new tools that I did not use before.
  • Learned the basic syntax of Ruby and how to implement basic programming concepts like variables, data types, and data structure in Ruby
  • Develop a habit to document my progress on things I learned and performed

3. Tasks Completed

4. Goals for next week

  • Understand the tech stack used by Discourse and how Ember.js manages the frontend
  • Browse meta.discourse.org website to brainstorm some ideas for theme and plugin development

Sean Yap - Full Stack Self-Assessment - Module 2

1. An Overview of Things I Learned

  • Technical Areas:
    • How to write simple Ruby programs
    • How to run tests on my programs to ensure they meet expectation
    • How to work with Git and solidified the differences between Git and GitHub
    • Broad overview of Discourse’s codebase and architecture
  • Tools:
    • Ruby, VSCode, and Terminal
  • Soft Skills:
    • Continue developing a habit to take notes on things learned to improve understanding
    • Learning to manage time between learning new concepts and application

2. Three Achievement Highlights

  • Successfully clone the remote full-stack repository into my local machine using git clone
  • Able to run both Discourse’s rails server and Ember CLI locally on my machine
  • Learned to work with git branches to separate my codebase from master branch

3. Tasks Completed

  • Studied the videos provided to learn the technologies: Git, GitHub, and Ruby
  • Completed the Ember and SCSS readings and guides to understand how Discourse uses these technologies
  • Put together a mental picture of Discourse’s architecture and how its tech stack works

4. Goals for next week

  • Develop greater understanding of using and developing Discourse themes

Sean Yap - Full Stack Self-Assessment - Module 3

1. An Overview of Things Learned

  • Technical Areas
    • Learned about how Discourse themes and theme components work
    • Refreshed memory on HTML and CSS and learned about SCSS
    • Obtained more experience working with Git CLI and GitHub platform
  • Tools
    • VSCode, Terminal, Git, GitHub, Discourse platform, Browser’s developer console and DOM inspector
  • Soft Skills:
    • Developed experience reading technical documentations to learn new features
    • Maintained routine in taking notes on things learned and writing about the process

2. Three Achievement Highlights

  • Applied what I learned to develop a Discourse theme for my local Discourse forum
  • Worked with browser’s developer console and DOM inspector to assist my theme development process
  • Made changes and previewed my Discourse theme on the Theme Creator site

3. Tasks completed

  • Finished reading the “Developer’s guide on Discourse Themes”
  • Setup a pipeline on my local machine for Discourse theme development
  • Developed a simple Discourse theme and previewed changes on my local Discourse

4. Goals for next week

  • Start learning about more advance topics such as API endpoints and AJAX requests

Sean Yap - Full Stack Self-Assessment - Module 4

1. An Overview of Things Learned

  • Technical Areas
    • Learned about AJAX request how to send it to receive data
    • Studied Handlebars syntax and Discourse’s widget
    • Understand the idea of plugin and what are some things it can do
  • Tools
    • VSCode, Terminal, Git, GitHub, Discourse platform, Browser’s developer tools

2. Three Achievement Highlights

  • Updated basic theme to work with the Plugin API
  • Utilized a plugin outlet to insert a custom code into my theme
  • Learned the differences and benefits between a DOM and virtual DOM

3. Tasks completed

  • Read the documentation guide on Handlebars, Virtual DOM, and AJAX
  • Identified some plugin outlets Discourse provided and how to add custom code to it
  • Held team meetings with group to follow up with what they worked on and answered their questions.

4. Goals for next week

  • Start looking into some examples of Discourse plugins and the development workflow

Sean Yap - Full Stack Self-Assessment - Module 5

1. An Overview of Things Learned

  • Technical Areas
    • Learned to create a Discourse plugin
    • Read the documentation to use the plugin generator to create plugin files
    • Go over the basics of Ruby on Rails and how Discourse uses it in their codebase

2. Three Achievement Highlights

  • Learned the workflow for developing a Discourse Plugin
  • Understand the basic syntax and folder structure of Ruby on Rails
  • Created a custom route in the admin interface and added additional settings

3. Tasks completed

  • Read the documentation guide on Ruby on Rails and Discourse Plugins Development
  • Used a plugin generator to create a blueprint to start developing a plugin
  • Brainstormed with team about some plugin ideas to work on in our final project

4. Goals for next week

  • Learn more about Discourse plugins development and how to publish a plugin