Nhienlam - Full Stack (Level 2) Pathway

Full Stack - Level 2 Week 1

1. Overview

  • Technical Area

    • Set up WSL and installed Discourse on my local machine
    • Learned basic Ruby syntax, classes, objects, and functions; and practiced writing variables, primitives, methods, and classes
    • Learned and understood the meaning of open-source software
    • Refreshed knowledge in command line and Git commands using provided resources
  • Tools

    • Git, GitHub
    • Trello
    • Linux Ubuntu
    • Visual Studio Code
  • Soft Skills

    • Reached out to everyone in my team and introduced myself in our first meeting. I communicated effectively with members and mentors through multiple platforms: STEM-Away forum, Zoom meeting, discord, and slack. I learned that communication is very important when collaborating.
    • Self-organizing
    • Time management
    • Trouble-shooting

2. Achievement Highlights

  • Successfully installed Discourse on my local machine and learned how Discourse works
  • Learned Ruby and basics of the Rails framework
  • Refreshed knowledge in command line and Git

3. Statement of Tasks Completed

  • Successfully installed Discourse on Windows. I faced a few issues during the installation process because of the missing gems and Ember-CLI. I successfully fixed the problem after searching for solutions online
  • Familiarized myself with STEM-Away forum

Full Stack - Level 2 Week 2

1. Overview of Things Learned

  • Technical Area
    • Looked through Discourse codebase and learned the basic structure of how things are setup. It’s my first time working with an open source code so I was a little overwhelmed at first, but I was still able to understand the structure of it, where things are, and how things generally work. Keegan’s meeting and James’s video did help me a lot in understanding the Discourse codebase.
    • Learned how Ember JS works
    • Learned SCSS
  • Tools
    • Discourse
    • Visual Studio Code
    • Linux Ubuntu
    • Trello
  • Soft Skills
    • Communication: I learned to be more comfortable speaking up in team meetings and asked for help when needed
    • Planning
    • Time management
    • Research
    • Trouble-shooting

2. Achievement Highlights

  • Successfully installed and learned the structure of Discourse’s codebase
  • Learned Ember JS and Ember CLI using the provided Ember Guide and other Youtube videos
  • Learned SCSS using the SCSS Guide

3. Statement of Tasks Completed

  • Attended Weekly Kick-off meetings hosted by Keegan and Bijay to learn more about Discourse and Trello
  • Learned Structure of Discourse’s codebase and how the Discourse Tech Stack works
  • Installed Ember CLI, setup workspace, and practiced Ember JS following the Ember Guide

4. Goals for the upcoming week

  • Be more active in team meetings
  • Learn how Discourse Themes work and how to create a simple theme
  • Learn more about browser developer tools

Full Stack - Level 2 Week 3

1. Overview of Things Learned

  • Technical Area
    • Created a simple theme in the Admin Settings UI and added some custom CSS, HTML and JavaScript to the theme
    • Created a remote Discourse Theme
    • Practiced using browser’s developer tools
    • Used DOM inspector to inspect Discourse’s UI and update my theme
  • Tools
    • Discourse
    • Visual Studio Code
    • Chrome Developer Tools
  • Soft Skills
    • Planning
    • Time management
    • Research
    • Trouble-shooting

2. Achievement Highlights

  • Successfully created my first theme in the Admin Settings UI and added some custom CSS, HTML and JavaScript to the theme
  • Successfully created my first remote Discourse Theme
  • Learned how to use Developer Tool to modify styles in Discourse

3. Statement of Tasks Completed

  • Attended Weekly Kick-off meeting hosted by Keegan and team meetings
  • Completed all the required readings
  • Checked out examples of themes by other developers and brainstormed ideas of new themes for our team project

4. Goals for the upcoming week

  • Update my theme to make use of the plugin API
  • Learn to implement the Virtual DOM
  • Add a localizable string to my theme
  • Use theme modifiers to add Font Awesome icon dependencies

Full Stack - Level 2 Week 4

1. Overview of Things Learned

  • Technical Area
    • Updated my remote theme to make use of the plugin API and other things I learned this week
    • Learned Handlebars syntax
    • Learned how widgets (Virtual Dom) work in Discourse
    • Looked at instances where AJAX Requests are made in Discourse’s code base
    • How to leverage the plugin API to create advanced themes.
  • Tools
    • Discourse
    • Visual Studio Code
    • Command Line
  • Soft Skills
    • Time management
    • Research
    • Trouble-shooting

2. Achievement Highlights

  • Brainstormed team project ideas and discussed with the team
  • Updated my remote theme to make use of the plugin API
  • Added a setting to my theme
  • Added a localizable string to my theme
  • Added Font Awesome icon dependencies using theme modifiers
  • Learned about Virtual Dom and how widgets work in Discourse

3. Statement of Tasks Completed

  • Gave 3 possible team project ideas and had a discussion about them
  • Updated my remote theme with new things just learned this week
  • Attended Weekly Kick-off meeting hosted by Keegan and team meetings
  • Completed all the required readings

4. Goals for the upcoming week

  • Analyze, discuss and decide on a final project idea
  • Learn and created a Discourse plugin
  • Learn how to use the plugin generator to setup a new plugin
  • Learn how to leverage plugin outlets

Full Stack - Level 2 Week 5

1. Overview of Things Learned

  • Technical Area
    • Created a custom route for my admin interface and added custom settings
    • Learned how to create a Discourse plugin
    • Learned how to use the plugin generator to setup a new plugin
    • Learned how to leverage plugin outlets
  • Tools
    • Discourse
    • Visual Studio Code
    • Command Line
    • GitHub
  • Soft Skills
    • Time management
    • Research
    • Trouble-shooting
    • Collaboration

2. Achievement Highlights

  • Discussed what to do for team project
  • Created my first simple Discourse plugin
  • Created a custom route for my admin interface and added custom settings

3. Statement of Tasks Completed

  • Created my first simple Discourse plugin
  • Attended Weekly Kick-off meeting hosted by Keegan and team meetings
  • Completed all the required and supplemental readings

4. Goals for the upcoming week

  • Add settings to my plugin
  • Setup an admin interface
  • Learn how to publish your plugin

Full Stack - Level 2 Week 6

1. Overview of Things Learned

  • Technical Area
    • Added settings to plugin
    • Learned how to setup git for Discourse plugin
    • Created an admin interface
  • Tools
    • Discourse
    • Command Line
    • GitHub
  • Soft Skills
    • Trouble-shooting
    • Collaboration
    • Team planning

2. Achievement Highlights

  • Our team has decided to build a theme component annotation tool for our final project
  • Added settings to my Discourse plugin
  • Created an admin interface for my plugin

3. Statement of Tasks Completed

  • Voted on specific idea for the final project
  • Added settings to my Discourse plugin
  • Created an admin interface for my plugin

4. Goals for the upcoming week

  • Begin planning and assigning responsibilities to team members
  • Implement the final project

Full Stack - Level 2 Week 7

1. Overview

  • Technical Area
    • Responsible for creating a custom setting and a widget to allow users to enable and disable the plugin for our final project
    • Reviewed Virtual DOM (widgets) materials
    • Researched how to create a widget to enable and disable plugin
  • Tools
    • Git, GitHub
    • Visual Studio Code
    • Discourse
  • Soft Skills
    • We merged with team 2 and planned for a new project idea and goals
    • Ability to ask for help when needed: I’m still not sure how to create a widget to enable and disable plugin after spending a fair amount of time researching and trial and error. I eventually asked our mentor Keegan for advise and resources.
    • Self-organizing
    • Time management
    • Trouble-shooting

2. Achievement Highlights

  • Successfully created a custom setting that allows users to enable and disable the plugin in the admin plugin settings
  • Reviewed and pointed out errors in our team’s GitHub folder structure to the team leads before starting working on my task, so that it wouldn’t cause any conflicts in the future pull requests.

3. Statement of Tasks Completed

  • Successfully created a custom setting that allows users to enable and disable the plugin in the admin plugin settings
  • Researching on how to create a widget that allows users to enable and disable the plugin