| Item | Description | Location |
|---|---|---|
| ADA compatible frontend | Source code for the ADA compliant website for the NPM registry, all files call the back-end. | Project2/ |
| SQL server | Source code for setting up the Backend of the registry; Check controller/ for core-logic. | swagger_server/ |
| Main app files | code for main.py, configuration files, test files. | / |
This project is a NPM-registry with authentication.
The registry supports the following operations:
GET requests:
- Getting package history when package is requested by name.
- Getting package by package id.
- Rating uploaded packages on Ramp-up time, correctness, bus factor, maintainer responsivity, license compatibility, dependency pinning.
POST requests:
- Creating/uploading a new package
- Ingestion of public npm packages when package is posted with URL field but without content field.
- Ingestion of packages with at least a 0.5 rating on all relevant metrics.
- Gets paginated list of all packages currently in the registry
PUT requests:
- Update the version of a package already in the registry using its name, id, and version.
DELETE requests:
- Deleting a particular version of a package
- Deleting all versions of a package
- Resetting the entire registry to its default state.
The registry uses Google App Engine, Google Compute Engine, and a MySQL Database while exposing a single api instance to users.
The webpage is ADA compliant as verified by axeDev automated accessibility checks.
Trustworthy Modules Registry by Group 19.
The link to access the registry is:https://purde-final-project.appspot.com
The webpage also has a view tab to view packages currently stored in the registry, along with an endpoints tab to provide information for requests to the API.
These pages can be accessed by adding the following path relative to the home link given above:
View: /view
Endpoints: /ui1
The packages should be zipped before uploading.
When using requests to upload/create a package, ensure that the content field is encoded in base64/the URL points to a public repository.
Use the following command to run our test suite:python test_suite.py
If the suite fails, consider running pip install -r requirements.txt or activating the venv p2env.