Aryan - Full Stack (Level 2) Pathway

Module 1 - Getting Started

1) Overview of What I Learned

  • Technical Area:

    • Learned about Discourse, what it does, and where it proves helpful
    • Used Ubuntu to learn more different terminal commands which make it easier to work with
    • Explored new things about subsystems and how they might help in running different types of OS on one machine
    • Practiced with Ruby in order to get more fluent
  • Tools:

    • Ubuntu, which is one of the many Linux distributions
    • GitHub, which gives you the ability to host your code and overall allows easy teamwork
    • Discourse, an online open-source and forum based software
    • YouTube, for the assistance in refreshing Ruby’s syntax
  • Soft Skills

    • Debugging of where things went wrong
    • Teamwork: Due to a discourse start-up error, collaboration with team members aided with getting things together
    • Ability to adapt to changes: The new and unknown client, Ember-CLI, caused trouble at first since I was unaware of its use. Later, with the help of my team, I learned that it was required to be executed alongside the rails server in order to boot Discourse.

2) Three Achievement Highlights

  • Installed Discourse, again, with the help of a second client which hosts the web app on different localhost than the previous time.
  • Got to further enhance my skills with Ruby by practicing and using it to create different mini-programs
  • Expanded my library of different Linux commands

3) Tasks Completed and Challenges

  • Successfully troubleshot Discourse start-up process
    • This is where I realized that Ember-CLI was missing from the process and had to integrate it with the rails server
    • After Discourse is up and CLI running, there are challenges with Ember proxying over to localhost:3000 which are yet to be solved
  • Learned more commands related to Linux
  • Refreshed my knowledge about Version Control with Git and GitHub

Module 2 - Dev Environment Setup

1) Overview of What I learned

  • Technical Area:

    • Ember.js: Read about it and how it’s compatible with different types of back ends
    • Discourse Tech Stack: Understood it’s “Three-step approach”
    • Ember Data: Learned about Ember data and their persistency
    • Discourse Code Base: Took a brief overview of how discourse actually works
    • Sass: Leaned its installation process and how to make a general use of it
  • Tools:

    • Articles: To advance further with technologies like Ember, and code base briefings
    • Basic Text Editor: Used in practicing SASS
    • Simple Stem-Away Videos: To learn more about discourse tech stack
  • Soft Skills:

    • Task-Managment: There was simply a lot for someone like me in the module and was tough to decide where to start in order to cover everything effieciently
    • Troubleshooting: SASS isn’t something which I’ve used and therefore required time to function properly
    • Virtual-Collaboration: Having everything online isn’t the easiest, but enhances other nescessary skills like team-managment and collaboration

2) Three Achievement Highlights:

  • Partially understand what Discouse tech stack is and how it works
  • Saw a completely new side of Ember tech
  • Brief understanding of SASS and how it works in relation to CSS

3) Tasks Completed:

  • Saw the discourse code base
  • Familiarized myself with unfamiliar Ember tech
    • These include things like CLI, .js, Data, and Inspector
  • Learned about Tech Stack
  • Read about SASS and it’s compatibility with CSS

Module 3 - Developing Discourse Themes

1) Overview of What was Covered

  • Technical Area:

    • Discourse: A platform used by developers for things like theme and component development
    • Theme CLI: Allows different abstract commands for the easy making of necessary files
    • Browser Development Tool: The inspect tool, letting us try out different things and debug the code if necessary
    • Ubuntu: for carrying out different theme CLI commands
  • Tools:

    • Articles: For basic tutorials and walk-throughs
    • VS Code: To provide an environment for theme development
    • GitHub: In order to make remote themes and then add them into local Discourse
  • Soft Skills:

    • Creative Thinking: Creating an admiring theme isn’t easy. It requires a well thought process and planning along with organization
    • Logical Thinking: Since the development process was mainly programming, despite difficulty, logical thinking proved crucial
    • Active Learning: SASS isn’t something I’m fluent in yet and in order to make my theme, I kept referring back to different tutorials

2) Achievement Highlights:

  • Successfully created a skeleton of a theme from theme CLI commands
  • Completed making a simple, yet admirable, local theme for discourse
  • Learned where the Inspector tool proves helpful for development

3) Taks Completed:

  • Created a simple theme for the Discourse UI
  • Successfully setup a remote theme on GitHub
  • Learned more about browser’s development tools
  • Updated theme to watch changes occur real time

Module 4 - Advanced Discourse Themes

1) Overview of What I learned

  • Technical Area:

    • Discourse: Learned about its widgets and plugin outlets and how they help define the path where the code is to be executed
    • Handlebars: A simple templating language that helps in the generation of HTML and other text formats
    • AJAX: Took a brief look in the discourse code base to notice the instances where Ajax was used
  • Tools:

    • GitHub: For browsing the different widget and template locations
    • Discourse Meta: For basic tutorials on handlebars, Virtual DOM, and widgets
  • Soft Skills:

    • Logical Thinking: There are many widgets and plugin-outlets where one can inject their theme component and it is critical to be able to find those locations in their proper place to avoid messing up other code
    • Troubleshooting: Handlebars Template and the DOM are fairly new ideas and difficult to work around with at first
    • Time-managment: At this point into the internship it is getting more challenging to understand different concepts making it crucial to work with things in a reasonable time span

2) Acheivement Highlights

  • Obtained a reasonable knowledge on the Handlebars Template
  • Understand how plugin-outlets help one define a path to where their code will execute
  • Now know what Virtual DOM is, or Widget, and how they work

3) Tasks Completed

  • Observed how the plugin API is used
  • Saw the different instances where AJAX comes in use
  • Read about Virtual DOM/Widget and how make management easier

Module 5 - Potpourri

1) Overview of What I learned

  • Technical Area:

    • Virtual Settings: These allow the users to virtually interact with the themes or different things within discourse
    • .Yml Files: What you can use them for and where they’re appropriate
    • Font Awesome: What it is and the different components of it
  • Tools:

    • VS Code: To experiment with different settings and how to adjust them
    • Meta: To learn about different theme modifiers and settings
    • Local Discourse: For local theme testing
  • Soft Skills:

    • Adaptability: At this point in the internship things are getting far more complicated than perceived and getting ever more challenging, requiring betterment at things I do
    • Organization: It is equally as important to keep things in order, making it easier to debug for things were to go wrong
    • Creativity: Knowing the basics, and more, about themes and components, there are numerous possibilities and it’s just a matter of creativity

2) Achievement Highlights:

  • Successfully learned about theme settings and how to edit them
  • Learned more about Font Awesome and how it makes things more appealing in general
  • Somewhat understand what theme modifiers are

3) Task Completed:

  • Created a discourse setting within for custom themes
  • Read about theme modifiers and the dependencies
    • It was particularly getting hard at this point since theme modifiers seemed alien. They’re something that I’ve never worked with and require time in order to be understood to their full extent
  • Gained knowledge about Font Awesome

Module 6 - Putting it All Together (Capstone Project)

1) Overview of What I did

  • Technical Area:

    • GitHub: Got to practice using different git commands and GitHub as a communication tool
    • VS Code: Made use of the built-in terminal for various commands
  • Tools:

    • VS Code: Coding editor used for programming, Ruby for me
    • Local Discourse: Used for testing the plug in
    • GitHub: Remote code hosting service used for plugin management
    • Articles and Tutorials: Due to the difficulty level, outside examples were required in order to make progress
  • Soft Skills:

    • Project management: Throughout the development process, management was an essential part without which satisfactory results could not have been produced in the given time
    • Organization: Similarly, Organization ensured the integrity of the code and allowed easy debugging
    • Teamwork: Lastly, teamwork, like organization, permitted quick and efficient development

2) Three Achievement Highlights:

  • Created a path where the backend controller lives
  • Integrated VS Code terminal with GitHub to access and modify my work in the remote repository
  • Successfully created the backend controller

3) Tasks Completed

  • Cloned the remote repository
  • Ensured that nothing was being modified in the main branch
  • Created the backend controller
    • Since the difficulty level was high and having no experience with backend development, I looked up different creators on the web and replicated their thinking process to finally come up with what I did
  • Pushed changes to my remote branch in order to be reviewed and was later merged with the main