Code Monkey home page Code Monkey logo

tutor-js's Introduction

Build Status Test Status

TutorJS

The Front-end code for Openstax Tutor related projects

Install

  1. install nvm
  • run nvm install in this directory to install and use the correct version of node
  • Alternatively: manually install the right version of node in ./.nvmrc
  1. Git Clone this repository to the directory of your choice
  • If you don’t have git installed you can install homebrew and then brew install git
  1. cd tutor-js move into the checked out directory
  2. yarn install
  3. yarn run serve <project> (where <project is one of tutor|exercises)
  • Run the Tutor server as shown below

Development

  • yarn run serve <project> starts up a local development webserver which rebuilds files when changed.
  • yarn test <project> runs unit tests for all projects
  • yarn run coverage generates a code coverage report
  • yarn run build <project> archive builds minified files for production
  • yarn run test e2e run the integration tests using playwright test runner.

e2e test failures

To debug e2e failures, you can run in debug mode by adding the --debug flag. For instance to debug a failure with the course roster spec, you could run: yarn run test e2e --debug roster. --debug disables timeouts and is useful in conjuction with adding strategic page.pause() calls in the spec. The brower will then open and pause at that step, allowing you to open the browser console and inspect it's state.

On Github actions you can download the "test-result" artifacts. Each test failure will generate a screenshot and a trace file. The trace file can be viewed by: yarn run playwright show-trace <path to trace file> The viewer allows you to view the browser screen and dev console for each test step.

There is also a retries configration that can be adjusted if some specs are inherently flaky.

After local updates are made:

  1. stop yarn start
  2. yarn install
  3. restart yarn start

Playwright tests

Tutor uses playwright for acceptance testing. The tests can be ran by:

  1. start the stubbed backend server: yarn run tutor:test:server
  2. run the e2e test suite: yarn run tutor:test:e2e

Tutor Server

Using the sample API data only allows acting as a student and can't save data. For a more realistic development experience you'll also need to run the Tutor server

  1. Install Tutor Server as shown in its README file
  2. Start both the tutor-server Rails application and run yarn run serve tutor in this project's directory
  3. Load http://localhost:3001 in your browser
  • Once you click login, the server will present a dev console that allows you to select a user
  1. And will then render the FE just as it appears in production

Exercises

tutor-js is also the front-end for Exercises and is ran similarly to the Tutor Server.

  1. Install OpenStax Exercises as shown in its README file
  2. Run yarn run serve exercises in tutor-js directory
  3. Load http://localhost:3000 in your browser

tutor-js's People

Contributors

brittany-johnson avatar camliu89 avatar dak avatar dantemss avatar darrenmason avatar dependabot[bot] avatar fredasaurus avatar gregfitch avatar helenemccarron avatar jivewise avatar jivey avatar jpslav avatar karenc avatar m1yag1 avatar meeragovindaraju avatar mwvolo avatar nathanstitt avatar navilan avatar pandafulmanda avatar philschatz avatar pwolfert avatar reedstrm avatar royejohnson avatar snoopsan avatar therealmarv avatar tomwoodward avatar tylerzeromaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tutor-js's Issues

How to bring test-integration into the test-automation

How do we bring the test-integration into the test-automation project?

Concerns are:

  • Keeping the repo relatively clean and hopefully free of having to include all of tutor-js
  • Tangentially related -- how do we decrease the amount of processing/building we would run on Sauce Labs

We are keeping in mind that test-automation needs to be easily configurable to test both remotely (for QA) and locally (for development).

Current ideas

  • use pip
  • use npm
  • Git subtree, submodules, or bash
  • Build and host helpers separately
  • Include all of tutor-js

use pip

Why

test-automation is currently mostly a Python repo

Why not

However, that will not be the case in the future, as tests will be written in some form of JS. The planis for current Python code to be pulled out to a package and the Python code will be used as command-line scripts.

use npm

Why?

Tests will be in JS so loading with npm will make it very easy to load in the necessary helpers without additional work. Also, npm will be part of the workflow anyway.

Why not?

Installing the whole repo into test-automation is a bit excessive. This would add time for Sauce Labs when installing and building tests. However, would handle this nicely.

If module size remains a concern, finding ways to install the specific folder (pulling out test-integration into a separate repo) could work, but would likely add additional overhead for maintenance.

Git subtree, submodules, or bash

Why?

Pulls in just the parts needed

Why not?

Involves writing an extra script that is likely to be complicated and require maintenance.

Build and host helpers separately

Why?

Less for test-automation to pull in, there will be no extra files locally.

Why not?

Maintenance overhead, need to do some extra steps to load in remote JS, uptime of JS file becomes crucial, adds debugging difficulties

Include all of tutor-js

Why?

Regardless of how, you can avoid the size problem and send only the built and minified JS to Sauce Labs.

Why not?

Extraneous files when working locally

Suggestions?

Any other ideas? We are not looking for a final decision, just ideas and potential pros/cons before we start trying some things.

/cc @openstax/tutor-fe @openstax/test

Willo: Allow teachers to back of out integration

Description

Allow teachers to back out of a Willo integration manually if they select the wrong course, and decide if we can/should add controls to a teacher's UI that allow them to undo an integration.

Acceptance

  • Admin can unpair a Willo integrated course from a Tutor course
  • CS can walk instructor through what will happen if we back him/her out of an integration
  • Decision on whether to add additional admin controls on the teacher interface for undoing LMS integration

Checklist for Done

1A-DEFINE

  • Description is complete
  • High-level natural language acceptance tests are complete
  • If UX design is needed then the UX label is added
  • If UX design is needed then the UX LoFi Design is completed, approved by the Product Manager, and added to the issue.
  • A high-level solution (development approach for the code change) is added to the issue
  • If prototype code is generated, it is linked to the issue.
  • If tech briefs are generated, they are linked to the issue.

1B-DECOMP

  • The work is broken into reasonable and consistent work items, and work item issues created. The work item issues are moved below the Done marker in the Decomp column.
  • Estimate is updated for the work item issues.
  • If there is a parent story epic issue, it is linked with the child work item issues and moved to the Epic column.
  • If an issue is included in a product phase, then Release is selected.

1C-DESIGN

  • The UX HiFi Design is complete, approved by the Product Manager, and added to the issue.
  • Distilled acceptance tests are added to the issue.
  • Automated testing criteria are added to issue.
  • The solution is updated.

2A-CODE

  • A pull request is opened, the automated pull request checks pass, and the change has been approved by other developers.
  • The acceptance tests are finalized in "Given / When / Then" format.
  • Regression test categories are identified on the issue. Categories should be referenced if any changes might affect them, even if the intended functionality is unchanged.

4A-UX REVIEW

  • The pull request is merged into master, and the change branch is deleted.

5A-FUNCT VER

  • All the acceptance tests for this issue pass.

5C-REGRESSION

  • The test plan in testrail passes.
  • Blessing from Product Manager that the release is good to go.

5D-READY TO BE DEPLOYED

  • Production is updated and verified.
  • All issues in the release are closed.

Reading Assignment Date: 02/32/1019 in Tutor Beta

SCENARIO Briefly describe the issue.


Steps to Reproduce the issue: Who, Where and How?

  • Product:

  • Accounts

  • BigLearn

  • Exercises

  • CNX

  • [ v] Tutor

  • Payments

  • Highlight

  • Web

  • User Type:

  • Admin

  • Content/QA

  • Student

  • [ v] Teacher

  • N/A

  • Username: Sarah LeGresley

  • URL: https://tutor.openstax.org/course/4804/reading/43123

  • Course number: PHSX 114:College Physics I

  • Course type: PHSX 114:College Physics I

  • Steps


Environment:

  • Instance:
  • [ v] production
  • qa
  • staging
  • dev
  • content
  • demo
  • OS:
  • [ v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [ v] Firefox
  • [ v] Safari
  • Opera
  • IE
  • Edge
  • Browser Version:

Possible impact on a User:
This non-sense date actually works as fine as 02/32==02/01 (mod 31)

Images or Screenshots (attach below)
6391547677128_.pic_hd.jpg

Baked books: Problems when Screen Size Changes -Content in Physics

SCENARIO Briefly describe the issue.

Say the student wants to multitask so they squeeze the browser's display to half of its size as before-
then:

  1. the title "Time, Velocity and speed" got scrambled
  2. the navigation arrows on both would block some content

Steps to Reproduce the issue: Who, Where and How?

  • Product:

  • Accounts

  • BigLearn

  • Exercises

  • CNX

  • [v] Tutor

  • Payments

  • Highlight

  • [v] Web

  • User Type:

  • Admin

  • Content/QA

  • [v] Student

  • Teacher

  • N/A

  • Username:

  • URL:

  • Course number:

  • Course type:

  • Steps


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • [v] content
  • demo
  • OS:
  • [v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [v] Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:
    65.0.1

Possible impact on a User:


Images or Screenshots (attach below)Multitask.jpeg

Selenium: Suggestion for common names for screen commands

Here's a suggestion for predictable names for commands that can be done on all the screens in tutor. I went through all the screens and tried to list off all the things a person can click. What do folks think?

/cc @openstax/tutor-fe @openstax/test

TODO

  • add these to a documentation file

Teacher

These are largely teacher-specific screens

Calendar

assignmentType: 'HOMEWORK' | 'READING' | 'EXTERNAL' | 'EVENT'
relativeDate: 'TODAY' | 'TOMORROW' | 'FIRST'

  • goToBook()
  • goToForecast()
  • goToScores()
  • goToAddByType(assignmentType)
  • goToAddByTypeFromNow(assignmentType, relativeDate)
  • goToPreviousMonth()
  • goToNextMonth()
  • goToOpenByTitle(title)
  • goToEditByTitle(title)
  • goToReviewByTitle(title)

Popup

  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)
  • goToReview()
  • goToEdit()

CC-Dashboard

  • goToScores()
  • goToBook()
  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)

Builder

  • edit({settings})

Scores

  • selectDisplayAsNumber()
  • selectDisplayAsPercent()
  • selectBasedOnPossible()
  • selectBasedOnAttempted()
  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)
  • sortName()
  • goToAssignmentByIndexes(row, column)
  • downloadExport()

CC Commands:

  • sortAssignmentScoreByIndex(index)
  • sortAssignmentCompletedByIndex(index)
  • sortAssignmentScoreByTitle(title)

HS Commands:

  • goToForecastByName(studentName)
  • goToReviewByIndex(index)
  • goToReviewByTitle(title)

Review

stepStatus: 'ANY' | 'UNSTARTED' | 'COMPLETED' | 'CORRECT' | 'INCORRECT'

  • goToBack()
  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)
  • selectStepByIndex(index)
  • selectStepByStatus(stepStatus)
  • getExerciseByIndex(index)

Roster

  • renameCourse(name)
  • removeInstructorByIndex(index)
  • removeInstructorByName(firstName, lastName=null)
  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)
  • addPeriod(title)
  • renamePeriod(title)
  • removePeriod()
  • changePeriodByName(firstName, lastName=null)
  • removeStudentByIndex(index)
  • removeStudentByName(firstName, lastName=null)

Student

These are largely student-specific screens

Dashboard

  • showPastWork()
  • showCurrentWork()
  • goToPracticeByIndex(index)
  • goToPracticeBySection('4.3')
  • goToPracticeWeakest()
  • goToForecast()
  • goToBook()
  • goToAssignmentByIndexe(index)
  • goToAssignmentByType(assignmentType)
  • goToAssignmentByTitle(title)

Both

These screens do the same thing for teachers and students

CourseSelect

courseType: 'ANY' | 'BIOLOGY' | 'PHYSICS' | 'CONCEPT_COACH'

  • goToByType(courseType)
  • goToByTitle(title)

User (the navbar on the top plus login/logout)

  • goToHome()
  • goToCourseHome()
  • goToDashboard()
  • goToForecast()
  • goToBook()
  • goToAccount()
  • goToHelp()
  • goToLogout()
  • openHamburgerMenu()
  • toggleHamburgerMenu()

Teacher-only:

  • goToScores()
  • goToRoster()

Forecast

Teacher-only:

  • goToBack()
  • selectPeriodByIndex(num)
  • selectPeriodByTitle(title)

Student-only:

  • goToBack()
  • goToPracticeByIndex(index)
  • goToPracticeBySection('4.3')

Task

  • continue()
  • selectStepByIndex(index)
  • selectStepByStatus(stepStatus)
  • selectCompletionStep()

Exercise

Teacher-only:

  • toggleFreeResponse()

Student-only:

  • enterFreeResponse(msg=null)
  • selectAnswerByIndex(index)

Baked books: Image Alignment Inconsistency- Content in Physics

SCENARIO Briefly describe the issue.

Images aligned in different ways- some in the center, others to the left
See screenshot:
(a)
this is the only case when one image is immediately followed by another image that is aligned differently
WechatIMG817.jpeg
(b)
A group of pictures aligned in the same way, followed by some text paragraphs, and then another set of pics aligned in the other way
WechatIMG831.jpeg
(c)
Suggestion:
The cnx version got all the images aligned in the center, which looks great


Steps to Reproduce the issue: Who, Where and How?

  • Product:

  • Accounts

  • BigLearn

  • Exercises

  • CNX

  • [v] Tutor

  • Payments

  • Highlight

  • Web

  • User Type:

  • Admin

  • Content/QA

  • [v] Student

  • Teacher

  • N/A

  • Username:

  • URL:

  • Course number:

  • Course type:

  • Steps


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • [v] content
  • demo
  • OS:
  • [v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [v] Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:
    65.0.1

Possible impact on a User:


Images or Screenshots (attach below)

Remove media preview image fix when Firefox 46 is released.

When Firefox 46 is released, the JavaScript based setMaxImageWidth fix from #974 should be removed.

Details

Image max-width was not working in Firefox.

Update

02/10/2016

While the Firefox bug has been marked as RESOLVED, you can still see it's currently an issue in Firefox 44.01 in this JS Fiddle. Based on this bug report linked in this comment for the 975632, the fix will be released in Firefox 46, slated for release April 19th. Based on a quick test on Nightly which is at 46.0a2, the bug is indeed fixed.

44.01

screen shot 2016-02-10 at 3 32 59 pm

screen shot 2016-02-10 at 3 37 32 pm

46.0a2

screen shot 2016-02-10 at 3 34 24 pm

screen shot 2016-02-10 at 3 37 41 pm

Accessibility: User can tab through paragraphs

Description

Allow user to tab through paragraphs in the reading with Chrome plugin. Verify that this is a bug, and that we need to use Chrome box. Report back with correct keys.

#Acceptance
User can tab through paragraphs

Bug: View in book icon in Highlight summary page works incorrectly for images

SCENARIO _View in book icon in Highlight summary page works incorrectly for images

Steps to Reproduce the issue: _
Highlight an image
From the Highlights SUmmary page, click on the 'View in book' icon
User is taken to the top of the page in which image is present and not to the image location

  • Product:
    [ ] Accounts [ ] BigLearn
    [ ] Exercises [ ] CNX
    [ ] Payments [ ] Tutor
    [ ] Highlight [ ] Web

  • User Type:
    [ ] Admin [ ] Content/QA
    [X] Student [X] Teacher
    [ ] N/A

  • Username:

  • URL:

  • Course number:

  • Course type:

  • Steps


Environment:

  • Instance:
    [ ] production [X] qa [ ] staging
    [ ] dev [ ] content [ ] demo
  • OS:
    [ ] Mac OSX [ ] Windows
    [ ] Android [ ] iOS
  • Browser:
    [ ] Chrome [ ] Firefox [X] Safari
    [ ] Opera [ ] IE [ ] Edge
  • Browser Version:

Possible impact on a User:


Images or Screenshots (attach below)

Baked books: Lack of Spaces -Content in Physics

SCENARIO Briefly describe the issue.

There are several cases when the lack of space among the contents may confuse the readers-

(a) between the text box and the next subtitle

For instance, we'd better insert a space between the text box and the next subtitle “Percent Uncertainty”

linespace-a1.jpeg

Also, check out screenshots attached below:

linespace-a2.jpeg

ls-a3.jpeg

ls-a4.jpeg

ls-a5.jpeg

(b) at the beginning of every problem set, usually the title

See the pictures attached below:

ls-b1.jpeg

ls-b3.jpeg

This is purely an aesthetic issue and less critical as compared with (a).

However, for both (a) and (b), I do recommend inserting a space at the appropriate place.

(c) the subtitle between two text boxes

ls-c1.jpeg

ls-c2.jpeg

This is a clarity issue since the subtitle usually belongs to the second text box.

What I recommend here is to apply the format in the CNX version:

ls-cs.jpeg

such that it's clear that the second chunk of info is grouped together.

Steps to Reproduce the issue: Who, Where and How?

  • Product:

  • Accounts

  • BigLearn

  • Exercises

  • [v] CNX

  • [v] Tutor

  • Payments

  • Highlight

  • [v] Web

  • User Type:

  • Admin

  • Content/QA

  • [v] Student

  • Teacher

  • N/A

  • Username: teacher02

  • URL: https://tutor-qa.openstax.org/book/350/section/1.2

  • Course number:

  • Course type: Physics AP

  • Steps


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • [v] content
  • demo
  • OS:
  • [v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [v] Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:
    65.0.1

Possible impact on a User:


Images or Screenshots (attach below)

Display error messages to users when 500's occur

Pop up a modal (or similar) for when a 500 error occurs, with standard "An error occurred" messaging, the returned error_id, and a help desk link? We're going to be 500'ing if the practice widget ends up being empty (which has happened and shouldn't be happening), and it'd be nice if the 500 showed up in more than just the console.

Reduce Technical Debt

Upgrade Dependencies

Refactor Code

  • use classnames
  • remove bootstrap-material-design
  • remove lint warnings from cjsx files
  • moment
  • increase code coverage
  • replace flux
  • ES6?!?!?!?!??!?!?!

Assignment Due Date rendered as 02/32/2019 in Tutor

SCENARIO Briefly describe the issue.

Assignment Due Date rendered as 02/32/2019 in Tutor


Steps to Reproduce the issue: Who, Where and How?

Signed in as instructor Sarah LeGresley and tried to edit the reading assignment on Feb 1st in her course Spring 2019 PHSX 114:College Physics I

  • Product:

  • Accounts

  • BigLearn

  • Exercises

  • CNX

  • [ v] Tutor

  • Payments

  • Highlight

  • Web

  • User Type:

  • Admin

  • Content/QA

  • Student

  • [v ] Teacher

  • N/A

  • Username: Sarah LeGresley

  • URL: https://tutor.openstax.org/course/4804/reading/43123

  • Course number: PHSX 114:College Physics I

  • Course type:

  • Steps


Environment:

  • Instance:
  • [ v] production
  • qa
  • staging
  • dev
  • content
  • demo
  • OS:
  • [ c] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [ v] Firefox
  • [ v] Safari
  • Opera
  • IE
  • Edge
  • Browser Version:

Possible impact on a User:

worked just as fine as 02/32/2019==02/01/2019 (mod 31)...
this problem appeared in multiple assignments

Images or Screenshots (attach below)
6391547677128_.pic_hd.jpg

Change Winter term course default dates

An instructor came in via chat bc Tutor doesn't have a term that fits the her course that begins in November and ends in February. The Winter term is 1/1 to 4/30 and the Fall term is 7/1 to 12/31. Is there a way to change the default Winter term to include Christmas break (at least).

Case #28342

How best to write selenium helpers

Writing this as an issue vs a napkin note so so people can comment.

We can write selenium helpers as objects, or as a collection of structured functions.

An simplified version of an object oriented helper would be something like:

class ProgressGuide extends PanelElement
  constructor: (test) ->
    @element = test.driver.findElement(css: '.student-dashbaord')

  getTitle: ->
    @element.findElement(css: '.title').then (el) ->
      el.getText()

class StudentDashboard
  constructor: (test) ->
    @element = test.driver.findElement(css: '.student-dashbaord')

  getProgressGuide: ->
    new Promise (resolve, reject) =>
      @element.findElement(css: '.progress-guide').then (el) =>
        resolve(new ProgressGuide(@test, el))

module.exports = StudentDashboard

To use this in a spec you could:

StudentDashboard = require 'helpers/student-dashboard'

@it 'has the proper title', ->
    dash = new StudentDashboard(@)
    dash.getProgressGuide().then (guide) ->
      guide.getTitle().then (title) ->
        expect(title).to.equal('Progress Guide')

As you can see, the object oriented helper yields different things from it's promises. StudentDashboard.getProgressGuide() yields an instance of a ProgressGuide object, while the promise returned by getTitle yields a string.

Phil suggested we could employ a different method that might be less confusing. In his suggestion, each getter method would return a selenium element object. That way there would be no confusion over what a helper would yield.

Code written in that manner would look more like:

getProgressGuide = (test) ->
  test.driver.findElement(css: '.student-dashbaord')

ProgressGuide =
  getTitle: (el) ->
    @element.findElement(css: '.title')



module.exports = {getProgressGuide, ProgressGuide}

and could be used as:

StudentDashboard = require 'helpers/student-dashboard'

@it 'has the proper title', ->
  StudentDashboard.getProgressGuide(@).then (guideEl) ->
    StudentDashboard.ProgressGuide.getTitle(guideEl).then (title) ->
      title.getText().then (title) -> # <- title is an Element, getText is selenium
        expect(title).to.equal('Progress Guide')

Thoughts on the two approaches? @philschatz if I've misrepresented your approach please correct me

refs #931

422 sometimes when choosing multiple choice answer

The issue this fixes is hard to reproduce. Steps are:

  1. Answer a free response
  2. Choose a multiple choice answer
    • Must be while free response is still saving/while we have not received a response back from the server
  3. A response similar to:
    {"status":422,"errors":[{"code":"free_response_is_required","message":"Free response is required"}]}
    is received

422error

Reference book next and prev re-opens TOC

Prev, Next re-opens TOC

This is annoying, prev next re-opens TOC even though it was manually closed
bug

TOC does not auto-close

Also, for a small window, TOC should close automatically when a TOC item is navigated to
bug

Navigation Icon Blocks Highlighting Activities

SCENARIO Briefly describe the issue.
Navigation Icon Blocks Highlighting Activities

Steps to Reproduce the issue:
I was trying to highlight things when doing the homework as a student.
Because of the navigation icon on the left side, I can only either highlight one single sentence as I did in the first screen or the entire thing as in the second one.


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • [v] content
  • demo
  • OS:
  • [v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [v] Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:
    65.0.1

Possible impact on a User:


Images or Screenshots (attach below)
WechatIMG807-1.jpeg
WechatIMG808-2.jpeg

Due date on assignments for courses created before reimport are showing incorrect numbers in date field

SCENARIO Briefly describe the issue.
Due date on assignments for courses created before reimport are showing incorrect numbers in date field.
the screenshot is from the old course and the due date shows as 12/344/2018
Happens in both QA and prod

Steps to Reproduce the issue: Who, Where and How?
Screen Shot 2019-01-16 at 1.25.55 PM.png


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • content
  • demo
  • OS:
  • Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:

Possible impact on a User:


Images or Screenshots (attach below)

Improve Confidence when Deploying

Since many of us work remote, an async discussion might be easier.

Thoughts on the easiest way to improve confidence when deploying?

Some options (add more!):

  • add a coveralls.io webhook
    • easy to drop in
  • selenium scripts
    • utility methods would help QA folks
    • would better test how code works between components
    • downside: might require starting up tutor (too slow for travis?) or more mock JSON files (not too bad)
  • Selenium + coveralls: see #924 for how-to

Here is the unit test code coverage as of @a68f082. By changing the reporter in test/config/karma-coverage.config.coffee#L12 (adding coverageReporter: { type: 'lcov', dir: './coverage'} I got the following report: https://openstax.github.io/tutor-js/coverage/

@darrenmason @jivewise @nathanstitt @pandafulmanda ?

Course roster has case-sensitive sort

Course roster sort is case-sensitive but likely should not be. Right now, a last name of "del Martos" would come after all other names starting with a capital letter.

Highlight Icon doesn't show up when supposed to

SCENARIO Briefly describe the issue.
Highlight Icon doesn't show up when supposed to.
See the inconsistency between the two pictures attached below.

Steps to Reproduce the issue: Who, Where and How?
Highlight Icon doesn't show up when supposed to when doing the homework as a student.
See the inconsistency between the two pictures attached below.


Environment:

  • Instance:
  • production
  • qa
  • staging
  • dev
  • [v ] content
  • demo
  • OS:
  • [v] Mac OSX
  • Windows
  • Android
  • iOS
  • Browser:
  • Chrome
  • [ v] Firefox
  • Safari
  • Opera
  • IE
  • Edge
  • Browser Version:
    65.0.1

Possible impact on a User:


Images or Screenshots (attach below)
WechatIMG811.jpeg
WechatIMG805.jpeg

No way to undrop students

Since is_active: false students are not displayed in the roster, there is no way for a teacher to undrop students.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.