Type | Link |
---|---|
prod | https://organic.dokku-00.cs.ucsb.edu/ |
qa | https://organic-qa.dokku-00.cs.ucsb.edu/ |
Team | Link |
---|---|
w24-6pm-1 | https://organic.dokku-09.cs.ucsb.edu/ |
w24-6pm-2 | https://organic.dokku-10.cs.ucsb.edu/ |
w24-6pm-3 | https://organic.dokku-11.cs.ucsb.edu/ |
w24-6pm-4 | https://organic.dokku-12.cs.ucsb.edu/ |
Team | Link |
---|---|
w24-6pm-1 | https://organic-qa.dokku-09.cs.ucsb.edu/ |
w24-6pm-2 | https://organic-qa.dokku-10.cs.ucsb.edu/ |
w24-6pm-3 | https://organic-qa.dokku-11.cs.ucsb.edu/ |
w24-6pm-4 | https://organic-qa.dokku-12.cs.ucsb.edu/ |
This is a full rewrite of the application https://github.com/brownfield-team/anacapa-github-linker, which has been deployed as https://ucsb-cs-github-linker.herokuapp.com for several years.
The application provides instructional staff and students the ability to work with Github Organizations for courses.
This epic contains the features that replace the core functions of managing course rosters; all of the instructors currently using the tool need this feature set. Further, for most current users (e.g. for UCSB courses CMPSC 9, 16, 24, 32, 148), this feature set is sufficient to meet current needs.
This matches current functionality with one exception, where we are fixing a design flaw in the original app: instead of treating "staff" as a special case of students, having staff is built in right from the start as a specific feature.
The next set of features is for individual repo creation, and matches current functionality.
This is an existing feature, but enhanced based on experience with the MVP feature in the current app.
Any instructor can quickly a list of email addresses of students that appear on the roster, but have not yet logged into the tool with their github id. This allows the staff member to email those students with a reminder and the instructions.
For any individual assignment repo (perhaps specified by regular expression?), the staff will be able to see a report of activity on those repos: the number of commits, the date/time of the most recent commit. Other statistics may be added to this report over time. The report should list repo name (as link to repo), student name, student id, student email, # of commits, date/time of most recent commit.
For any team repo, (perhaps specified by regular expression?), the staff will be able to see a report of activity on those team repos: the name of the repo (as a link to the repo), plus, if the repo is linked to exactly one project, a link to that project. (If linked to more than one project, the link shows "[multiple projects]" and is a link to the list of those on Github.)
The GitHub actions script to deploy the Storybook to QA requires some configuration; see docs/github-actions.md for details.
If these repos are not yet setup, see the setup steps in docs/storybook.md
.
Before running the application for the first time,
you need to do the steps documented in docs/oauth.md
.
Otherwise, when you try to login for the first time, you will likely see an error such as:
mvn spring-boot:run
cd frontend
npm install # only on first run or when dependencies change
npm start
Then, the app should be available on http://localhost:8080
If it doesn't work at first, e.g. you have a blank page on http://localhost:8080, give it a minute and a few page refreshes. Sometimes it takes a moment for everything to settle in.
If you see the following on localhost, make sure that you also have the frontend code running in a separate window.
Failed to connect to the frontend server... On Dokku, be sure that PRODUCTION is defined. On localhost, open a second terminal window, cd into frontend and type: npm install; npm start;
To access the swagger API endpoints, use:
cd into frontend
use: npm run storybook
This should put the storybook on http://localhost:6006
Additional stories are added under frontend/src/stories
For documentation on React Storybook, see: https://storybook.js.org/
This repo has support for partial pitest runs
For example, to run pitest on just one class, use:
mvn pitest:mutationCoverage -DtargetClasses=edu.ucsb.cs156.organic.controllers.RestaurantsController
To run pitest on just one package, use:
mvn pitest:mutationCoverage -DtargetClasses=edu.ucsb.cs156.organic.controllers.*
To run full mutation test coverage, as usual, use:
mvn pitest:mutationCoverage