Tina Keswani
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    --- tags: mstu5003, webapp, html, css, bootstrap, inclusiveteaching, socialjustice --- # Final Project: inclu Team: Nicole Aberg-Cobo, Michelle Avenant, Tina Keswani, Lucius Von Joo See demonstration: https://codepen.io/lav2111/collab/WNZobZO?editors=1010 :::info **inclu** is a web platform that provides secondary school educators with crowd-sourced, social justice-themed lesson plans and resources to support them in creating inclusive classrooms. It also establishes a community for educators to share experiences and successful tactics from their classrooms, as well as rate lesson resources. ::: **Phase I:** How educators (i.e. users) can create new lesson resources using the website. Given the scope of this project, we have decided to focus on just one page in this platform: the "Prepare My Lesson" page whereby users can create lesson plans to add to the website's directory. This page also serves as a resource for helping teachers (particularly those new to creating inclusive, social justice-focused lesson plans) think through the various elements their lesson plans need to include. Future development phases will include:Homepage design, community aspects such as collaboration and discussion (via creating user accounts, message boards and comments sections for each lesson plan), and levels and badges to signal users who have contributed significant resources and spent significant time on the site, and could therefore be considered "experts". :::info :information_source: For our Final Project **(Due Dec 19th)** we continued to build out **Phase I**, the user creation of a lesson resource with more complex bootstrap, css and javascript concepts and functionality. In looking at our page, we initially thought each section would be its own page, but decided on the accordion format so users can quickly move between sections. In addition, our example takes the title and sections 2 through 6 (**not section 1)** data and SETS it to the bottom of the page in what we called a lesson template. Eventually this would be SET in a database as well as display on a final "confirmation" page for the user to see their full lesson in a template and download or print it if they wish to. We would also look to abstract into a single function what our current functions repeat for each section (i.e. have all Next buttons call the same function), perhaps a function that gets the users inputted data and pushes a complete lesson `object` in the lessons `array of objects` all at once when the user submits. Lastly, we were able to `push` some of the user input as an object into our lessons array with the `addLesson` function. **Please note** :mega: The **Next** button must be clicked in each section (even though it currently does not take the user to the "next" section) so that the functions are called. The **Submit** button in section 6 is the final button to click which displays the bottom template. ::: ## Phase I: Signed-In user creation of a lesson resource **Codepen: https://codepen.io/lav2111/collab/WNZobZO?editors=1010** Using Bootstrap's framework for `CSS` , a form has been created using the [accordion flush method](https://getbootstrap.com/docs/5.0/components/accordion/) to step a user through creation of a lesson resource. Based on Bootstrap's [Grid System](https://getbootstrap.com/docs/5.1/layout/grid/) the parent `container class` has several components we are utilizing one of which is `form-control` which allowed us to have clean size, colors and display text in inputs. In our [original Web App UI](https://hackmd.io/BGr51Dn6SAuVREJu08d16w?edit) (lines 31-46) we gave the user a file upload option on the top so they can circumvent having to go through the process of creating a lesson if they already had one ready. In rethinking this, with data integrity in mind, we want users to create all lessons through **inclu's** interface so that each lesson in the system has consistent data that we can use for display and searchability purposes. Instead of being able to upload a completed lesson plan, we allow them to upload supplementary material at the end (see section 6 where they can upload a file). In the following sections, we have detailed significant changes we have made to the interface in this project. ### **Section 1:** Tagging classroom interests and accommodations (to be associated with the lesson resource) We initially had rows where a teacher would input a lot of text for each of the students in their class, but instead we moved towards multi-selects for collective interests and accommodations (again thinking about data integrity). This allows users to select multiple values from from pre-defined lists and hence lesson objects can be SET with consistent properties (Learning Profile, which was part of the original Web App UI, was removed since this is unique to a single student). Functionally, streamlining the interest and accommodations tags users selects will help determine how lessons are consistently stored and retrieved. The Inclu system is not only a guide for teachers to address key elements required in lesson design, but also will serve as a resource library, browsable by specific properties, for fellow users to access. However, in the interests of flexibility and inclusivity, we added a large text entry area for teachers to submit options that they feel are missing from the predetermined pull-down list. These added terms can eventually be reviewed by the site adminstrators on the back-end before adding necessary tags to the multi-select list, growing the library's bank of terms. - In JavaScript terms: each lesson resource `object` will have one or more `attributes` within **Interests** and **Accommodations** associated with it. An `array` of `string` `values` for each of these categories will be established. What the user selects is associated as a `property value` with that lesson resource `object`. :::info :information_source: We tried to initally use a html/css/javascript package that was loaded to design the dropdown so the selections appear as "tags" when you select them.![](https://hackmd.io/_uploads/Bka42_s5F.png) However, this conflicted with the Bootstrap format and interfered with the accordion functionality, so we changed this to a Bootstrap-friendly multiselect tool. ::: - In JavaScript, when working with the `string` `values`, we can display the `values` in, for example, search results so that when a user sees a resource they can see what types of interests and accommodations are associated with that lesson resource `object`. - Clicking the **Next** button will take users to the section of the page called **Section 2**, as well as save all category`attributes` with the associated lesson resource `object` in the inclu system. :::info **Next Phase Note**: Each category's **Interests** and **Accommodations** `array of values` could appear as `labels` wherever the lesson resource `object` is displayed with different (but accessible) `color` `attributes` . (For example, chosen values for **Interests** could be in blue.) In addition, the Next button would open up the next part of the accordion, but in this example it does not. In researching how to do this, only jquery examples were available. We are also debating on whether the Next button for each section of the accordion is necessary. However, we do ultimately want users to definitively make selections, and the Next button also serves as a checking mechanism for null values.:mega: ::: ### **Section 2:** Choosing social justice topics and setting familiarity and comfort levels This section applies javascript concepts on a click event of the Next button to trigger the function call to addTopic(), which uses the querySelector to select the checked topics. It first checked to see that something is selected; if not, the alert function asks the user to choose at least one issue. It then loops through the checked issues and forms an `array` building `list items` in a string of html that will display once the full form is submitted (from section 6) ``` <button class="btn btn-primary col-md-4 mb-6 mt-3" onclick="addTopic()">Next</button> ``` ``` function addTopic() { var checkedIssues = document.querySelectorAll('input[type="checkbox"]:checked'); console.log(checkedIssues); if (checkedIssues.length == 0) { alert("Please choose at least one issue") } else { let issueListHtml = ""; for(let issue of checkedIssues){ issueListHtml += `<li>${issue.value}</li>` } console.log(issueListHtml); listTopic.innerHTML = issueListHtml; } } ``` Along with selecting social justice topics that will be associated with the lesson resource `object`, two `input` `ranges` were created that allow users to select, on a scale, how familliar and comfortable they are with the topic(s) they are submitting. **This is for display only. These don't get SET at the moment so selections will not print to the console** :::info **Next Phase Note** (from original HackMD for Web App UI): Each point on the scale will represent an internal value of 1 through 6 which, through javascript, will be calculated for an average score to help the internal reviewer assess the comfort level of the user with the lesson resource. :mega: ::: :::info :information_source: **Sections 3, 4, and 5** ensure the lesson plan applies sufficient rigor and thoughtfulness, ensuring the user is considering all necessary aspects of a successful inclusive instructional experience. These are not all the questions we may ultimately guide users with, but we wanted to present some idea of what a user might need to `input` to prepare their lesson resource. With **Section 3** we tried out a star rating system to see how it looks and functions as this will eventually be implemented for rating lesson resources. ::: ### **Section 6:** Differentiation and Time - A toggle <i class="fa fa-toggle-on"></i> feature allows the user to set the types of differentiation considered as a part of the lesson. A `boolean` type will be used for each one. :::info **Next Phase Note**: Users will be able to filter their search results based on these `boolean` values associated to the lesson resource `object`.:mega: ::: - We added an `input` field of `type` for time so a user can set how long the lesson will take to teach in the classroom. This will also allow users to filter search results based on how long a lesson will take. :::info **Next Phase Note:** When the user finishes uploading or creating a lesson resource and hits the **Submit** `button` at the end, applicable data that has been selected in sections 2 through 6 will be displayed below the form for now. Eventually this would be its own confirmation page so the user can review what they inputed and download or print their lesson plan. ::: ### CSS The increased functionality of this iteration of the page - particularly as it pertains to using JavaScript - has presented increased instances in which custom CSS can be used. This is particularly relevant to colour palettes, which are not only an aesthetic element that enhances UI but an important factor for accessibility. It is worth noting - and critiquing - that Bootstrap's default blue colour palette for features such as clicked accordion buttons (see [this page](https://https://getbootstrap.com/docs/5.0/components/accordion/) for reference) garners a WCAG compliance (visual accessibility) [rating](https://https://snook.ca/technical/colour_contrast/colour.html#fg=2971E6,bg=E7F1FF) of "sort of". In contrast, the colour palette we chose - particularly the yellow and indigo combination for when buttons are hovered over or clicked - is rated as fully accessible using the same metrics. Thus, **this project's colour customisation via CSS provides an integral accessibility functionality for this site: it is not just for aesthetic flair.** This being said, we have learnt in this process that customising the colours of Bootstrap input elements is tricky, and so we have not managed to complete this task as thoroughly as we would have liked to. However, this frustrating process has given us important insight into the visual accessibility issues Bootstrap presents as a web design tool. ### Shelved for now: Tooltips One aspect we wanted to add to this project was tooltips for users to hover over so they could gain more information about an aspect of the form if they didn't quite understand what was required of them. We attempted to build tooltips into the page via CSS, as demonstrated [here](https://https://codepen.io/msa2218/pen/MWEjBay?editors=0100), but found that these were incompatible with our existing page, especailly in the accordion sections. Although frustrating, this gave us insight into some of the limitations posed by Bootstrap, especially when trying to combine different interactive elements. We would like to find ways to solve this problem in future iterations. ### Javascript: a big challenge Incorporating functions to our project was harder than expected. The first struggle began with understanding how to print content that was not a text input. Once we understood that, with help from David Zikovitz, we were able to print out all content in sections 2 through 6. Section 1, being a multiselect turned out to be even more difficult to printout and that is why we did not manage to print it out. When pushing the user input into the array, we had trouble getting the values for checkboxes. :::success **A summary of the application experience and how it addresses the defined problem** With this final project we built upon our web app UI and made it more functional. The UX was changed to an accordion format for ease of navigation. A carefully-selected colour palette was uniformly applied to give the page visual continuity and aid visual inclusivity. The layout changed to reduce custom data input, reducing unnecessary work for back-end data managers and ensuring more data integrity. Functions were added to grab inputted data and display it in a template for use by the creator and other site users. **Reflections on what we've learnt this term** The pacing of this course was effective as it built upon more and more complex topics at a manageable but challenging rate. From an interactive perspective it has been very helpful to see how all three aspects of basic web coding (html, css and javascript) interact with each other. Some of us had better understandings of one of the aspects (whether it be html or css or javascript), but getting a more in-depth look at how setting and getting occurs when you define elements a certain way (with ids, classes, etc) and how these can be modified really made us understand not only coding aspects but designing aspects in terms of programming logic and data. As we built our understanding of how data is used in these contexts, we learnt to think about how best to gather, store, retrieve and use data in the context of web programming - which might be quite different to how we intuitively think about it as humans (our minds are quite different to the "mind" of a computer). When researching new ways to do things, we gained practical experience of how developers do use concepts in different ways to get the same results (looping is an example of this), but we also found that understanding more complex topics might actually make things easier or more efficient to code in the future (i.e. databases or things like jquery). This also gave us insight into the role of the programmer, as there are so many different ways to approach problems and configure the system, even if the front-end result appears the same. It was also interesting to think about our applications from a user experience perspective. Sometimes we just want the code to work and aesthetics are fairly unimportant. In other instances, visual elements like colours play an important role in making the site visually accessible and helping the user navigate through it (for example, by displaying "submit" buttons in different colours or with bolder outlines when they have been clicked). We have so much more to learn regarding the psychology of user experience and the role that resources like CSS can play in this. We also learnt to appreciate the importance of consistent semantics not only for computing purposes but so that different programmers can understand each other's intent in design, data, form, style and function. ::: :::info **Future Possibilities for this web page** There are still lots of improvements we could make to this page to aid navigability and increase its functionality, for example: - A progress bar could reflect how far a user is through the lesson planning process: https://getbootstrap.com/docs/4.0/components/progress/ - Increased colour continuity: Many Bootstrap elements (for example the checkboxes and sliders in section 2) are not amenable to simple colour changes via CSS coding and we have yet to find ways to accomplish this at this time. This prompts further research into how (or whether) we could customise the colours of these elements in the future. - Tooltips could help clarify some of the questions users are asked. - Debugging: Our page would benefit from debugging to catch existing bugs and tackle other errors in the code that could affect its performance if it's further developed in the future. - User testing: While we are a team of seasoned educators, intuition alone is not the best guide for building an app that users can navigate easily without external guidance. - Using Javascript to print out other types of user input, different than checkboxes or text. - Using arrays and objects in Javascript to create a "database" (or what would turn into one) of user input. - We ask for certain types of data from the user in this version that do not print our anywhere; other interests and accommodations, familiarity and comfort with topic, importance of objectives time, possible file upload. These will in future versions be analyzed at the back-end and used as tags for lessons or new information to be included in inclu. :::

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully