Giter Club home page Giter Club logo

dfe-digital.buying-for-schools's Introduction

Find a DfE approved framework for your school

This service replaces the deals for schools guidance.

Find a DfE approved framework for your school helps anyone within schools with a responsibility for buying/procurement to find a framework which best suits their needs.

This help is given via a decision tree navigation which asks simple multiple choice questions, each answer narrowing down the frameworks until either one or a small number of frameworks can be recommended. The recommendations are links to frameworks offered by 3rd parties, as such any purchase/financial transaction takes place on the 3rd party site.

This is a NodeJS based Azure WebApp.

More documentation

Install

For dev environment...

    $ npm install

For production environment...

    $ npm install --production --no-optional

...this excludes any dependencies required for testing the service or developing the service.

npm scripts

$ npm start

Start the service in it's normal state Open http://localhost:5000 to view it in the browser.

$ npm run start:dev

Start the service in dev mode, such that the service is restarted each time changes are made, SASS is recompiled etc.

$ npm run start:testing

Run the unit tests using Jest, watch all changes to test files and re-run if required whilst outputting coverage reports.

$ npm test

Run all tests: jhint, jest and cucumber

$ npm run test:jshint

Run jshint

$ npm run test:jest

Run Jest unit tests

$ npm run test:bdd

Run cucumber tests

The following load tests require artillery to be installed globally on your system.

$ npm run test:load

Run load tests using Artillery against the Azure URL of the prod env

$ npm run test:loadreport

Launches a local website to explore the load report data, you must run the load test first!

Code

The project uses JSON data files to populate a set of data which is loaded when the app first loads this is held in memory permanently. This is possible because the number of frameworks we're expected to deal with is ~40 and the number of questions in the decision tree structure is ~30. As the numbers are so low it seems unnescessary to use a database. Not using a database greatly simplifies the deployment of the project.

The service is stateless and the url of each stage conveys all required information to recreate each page.

dfe-digital.buying-for-schools's People

Contributors

s6stuc avatar

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.