Skip to content

Karanxa/uoy-app-course-search

 
 

Repository files navigation

Course Search (not yet released)

build tests code formatting linting performance checks

code style: prettier XO code style This project is using Percy.io for visual regression testing. GitHub

This is the University of York's Course Search application. It allows prospective students to search for courses, view results, and follow links to course pages. Both a live system and a test system are available.

See the wiki for architectural decisions and developer guides.

Related repositories

  • Courses API - the API that provides Course Search functionality and in turn calls the Funnelback Courses API.
  • Funnelback Courses API - the underlying Funnelback search provider configuration that powers searches.
  • Pattern Library React Components - a suite of React components for incorporating university style into the application.

Dependencies

  • You will need Node.js (v12) installed on your machine.
  • You will need to have configured a .npmrc file with a GitHub token that has read access to packages from Pattern Library React Components.

Development

This application uses Next.js. The entry point for the application is src/pages/index.js.

To build and run the application:

npm run dev

Once started, the system is accessible at http://localhost:3000.

Tests

Automated tests live in src/tests. To run them:

npm test

Visual tests

We use Percy for visual testing. This adds snapshots of UI changes to each pull request.

Performance tests

We use Lighthouse to run performance tests against the application on each new build and pull request. Performance scores below 85 are marked as a failing build.

Accessibility tests

We use the eslint-plugin-jsx-a11y to perform basic accessibility checks. We also run manual accessibility tests against the application, including testing with users of assistive technologies.

To reinforce an accessibility-first approach, we use ARIA roles and reference these in automated tests where possible.

Code formatting and linting

This project uses Prettier for code formatting and XO for linting. To format the code and run these checks:

npm run fc

Deployment

Deployment to the development and production environments happens through GitHub actions that trigger automatically when new code is merged into the dev and main branches. See the deployment wiki page for more details.

Deploying to your own AWS account

You can run Course Search in your own AWS account. You will need to do the following:

  • Make sure you've got an active token under ~/.aws/credentials (e.g. by logging into your account with saml2aws)
  • Define an environment variable called AWS_ACCOUNT_ID populated with your AWS account ID

Then run one of the following, depending on whether you want to query the development or production version of the Courses API:

npm run deploy:dev
npm run deploy

To undeploy the application from your AWS account:

npm run undeploy

Contact

About

Front end for course search tool used by prospective students

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.5%
  • CSS 2.5%