Module 1: Getting Started
Tools:
- Discourse
- Ubuntu
- STEM-AWAY Forum
- Windows PowerShell
- Git
- Visual Studio
Technical Area:
- Familiarized myself with Git, Github, command lines, and Discourse
- Researched about theme components and plugin APIs to learn what they are and what some examples of each are
Soft Skills:
- Problem solving skills were practiced by figuring out where the problem in my Discourse installation occurred and how to fix it
3 Achievements:
- Fixed/re-did my Discourse installation so that I can successfully access it again
- Learned/reviewed the basics of Git/Github and command lines
- Thought of a couple of possible theme component and plugin API ideas
Tasks Completed:
- Checked that I could still access Discourse. I had errors although it worked last week, so I had to look at the installation instructions again. I re-installed Discourse dependencies and found that there was an update for npm. After doing that and re-doing the following steps in the Discourse for Ubuntu installation guide, I was able to access Discourse again
- Looked through Discourse Themes Components to brainstorm ideas for a theme component
- Looked through Google Chrome extensions to help brainstorm ideas for plugin APIs
- Installed Git and Visual Studios onto the Windows partition of my Mac, since my Windows partition is where I was able to install Discourse
- Watched main sections of the Complete Guide to Open Source - How to Contribute video to learn how open source projects work in Github
- Read the command line and Git/Github required readings and watched the fundamental parts of the overview/shell lecture video
- Skimmed through the What is Discourse supplemental reading
Goals for next week:
- Check that I can still access Discourse, since an update or issue may appear again
- Study the Discourse codebase and attempt the SCSS guides and Ember guides
- Look through some supplemental material, such as the Building stuff on Discourse thread
Module 2: Dev Environment Setup
Tools:
- Ubuntu
- Windows PowerShell
- Discourse
- STEM-AWAY Forum
- Github
- Atom 2
- Udemy
Technical Area:
- Looked through Discourse codebase/Github/documentation
- Studied more about theme components and how they work in Discourse
- Studied the Ember and SCSS guides
- Starting to use my browser’s developer console
Soft Skills:
- Independent studying - going through a Udemy full-stack web developer course
- Documentation reading - Ember/SCSS guides, Discourse
3 Achievements:
- Installed Discourse Theme CLI
- Learned how to setup Discourse Theme CLI and create a new theme
- Learned about inspecting UI and how to apply and edit elements
Tasks Completed:
- Checked that I could still access Discourse, as I had unexpected errors last week. No errors were encountered this time.
- Continued brainstorming theme component ideas by observing other sites and looking through the available Discourse Theme Components
- Looked through Discourse codebase and watched the video on the Discourse tech stack
- Studied the Ember and SCSS guides
- Installed Discourse Theme CLI
- Reviewed HTML and CSS through a Udemy course, will review Javascript soon
- Took notes during this week’s kick-off meeting to learn how to setup the Discourse Theme CLI, create a new theme, and use the DOM inspector to inspect Discourse UI
Goals for next week:
- Looked through examples of themes by other developers (supplemental resource) and decide on a theme
- Will have read/gone through the required readings
- Will have set up/created and and pushed a theme onto GitHub
Module 3: Developing Discourse Themes
Tools:
- Ubuntu
- Discourse
- STEM-AWAY Forum
- Github
- Atom 2
- Udemy
Technical Area:
- Utilized CSS classes and HTML
- Learned about and used Discourse’s Theme customization section
- Utilized Github to practice uploading a remote theme and how to edit and view the updated version through changes in Github
Soft Skills:
- Practiced following instructions by following the Developer’s Guide to Discourse Themes
3 Achievements:
- Learned about Discourse’s admin panel and its functionalities, such as customization, color themes, and more
- Learned how to create a new theme in Discourse and implemented a basic one
- Learned about inspecting UI and used it to observe elements
Tasks Completed:
- Attempted to follow the previous week’s kickoff meeting tutorial on setting up the Discourse Theme CLI to create a new theme
- Created a new simple theme with a header banner and a footer banner including links to the ToS and other Discourse documents
- Continued brainstorming theme component and plugin ideas by observing other sites and looking through the available Discourse Theme Components and Plugins
Goals for next week:
- Will have looked through the Style-guide Route more deeply
- I’ve used the developer tools’ DOM inspector to identify elements but aim to use that to make additional changes to my basic theme
- Will have gone through the advanced portion of the Developer’s Guide to Discourse Themes
- Will have read/gone through the required readings
- Have a few solid ideas for theme components and/or plugins
Module 5: Discourse Plugin Development
Tools:
- Ubuntu
- Discourse
- STEM-AWAY Forum
- Atom 2
- Discourse Theme CLI
- DOM Inspector
- Git
- Github
Technical Area:
- Plugin APIs, AJAX requests, and handlebars
- Navigated through more of Discourse’s codebase
- Brainstorming/designing what our widget should look like and where it should be placed
- Learned more about github and git commands
Soft Skills:
- Independent additional research on plugins and widgets
- Drew ideas for widget icon designs
3 Achievements:
- Learned the basics of how to create a plugin
- Learned how to use git commands and the plugin generator
- Learned about AJAX requests and handlebars
Tasks Completed:
- Went through required readings with particular attention to the sections regarding how to create plugins and widgets, since we’re trying to add one rather than edit one
- Came up with a couple widget designs and locations, along with a general idea of how to approach each of those ideas
Goals for next week:
- Have finished studying all of the required readings
- Will have a solid grasp on how and where to create our desired widget and have some code done for it
- Have looked through the supplemental resources
Module 6: Plugin Development Continued
Tools:
- Ubuntu
- Discourse
- STEM-AWAY Forum
- Visual Studio
- Discourse Theme CLI
- DOM Inspector
- Git
- Github
Technical Area:
- Understood the Git/Github flow stage and the potential benefits of using Git commands instead of the Github interface
- Read more into Ember, Rails, and Ruby,
Soft Skills:
- Independent additional research on plugins and widgets
- Presentation/communication by showing the team 4 potential locations for the widget. We all voted on where we’d like to place it and decided on the spot on the left of the Like icon at the bottom of posts
3 Achievements:
- Finalized 4 reasonable locations for our widget and decided on 1 location with the team
- Used the DOM to try to more accurately understand how Discourse code/classes are named and organized
- Gained more knowledge in Rails and MVC by reading more into its guide. Particularly learned more about controllers and their role
Tasks Completed:
- Switched over from Atom to Visual Studio to match my team’s IDE and be able to use VS’s built-in Git features
- Decided on where to place the widget
- Scheduled office hours, reviewed what I know, and determined what questions I want to ask Keegan regarding my task
Goals for next week:
- Will have a deep/clear understanding of my task and have started making progress
Module 7: Putting it All Together
Tools:
- Discourse
- STEM-AWAY Forum
- Visual Studio
- Discourse Theme CLI
- DOM Inspector
- Git
- Github
- Font Awesome Icons
Technical Area:
- Learned more about and implemented widget methods, such as decorateWidget
- Became more familiar using DOM to figure out placements and css, such as hover selectors
Soft Skills:
- Additional study on plugins, widgets, and various codebases of other projects implementing a similar feature
Achievements / Tasks Completed:
- Created 2 widgets, one for upvotes and one for downvotes in the general desired location of replies
- Added basic css to have the widget display in the desired location more specifically, and match the color of nearby widgets
Goals:
- Edit widgets to be able to take send a request to the backend and update the count of up/downvotes, then receive the updated number and display it