AWG App

GitHub package.json version GitHub package.json dependency version (prod) Node.js version GitHub commit activity CI Workflow codecov compodoc OpenSSF Scorecard OpenSSF Best Practices code style: prettier Contributor Covenant DOI

A web application for the online edition of the Anton Webern Gesamtausgabe (AWG), located at the Department of Musicology of the University of Basel. It is written in Angular and runs on edition.anton-webern.ch.

Project Status: This project is actively maintained.

Screenshot 2024-10-26 124804

Table of Contents

Description

This repository houses the source code for the web application that powers the online edition of the Anton Webern Gesamtausgabe (AWG). Our goal is to provide a comprehensive, accessible, and interactive platform for exploring the works of Anton Webern.

Prerequisites

To run the code base yourself, there are only a few prerequisites to take care of. We use (modern) Yarn for dependency managing, so, before you begin, ensure you have met the following requirements:

  • You have installed the latest version of Node.js. You can check this by running node -v in your terminal. If Node.js is not installed, you can download it from here or use a Node version manager like nvm (Posix/Windows).
  • To activate Yarn, follow the instructions here:
    • Run corepack enable in the terminal (may need admin privileges to access node folder).
    • Check that Yarn was installed by running yarn -v in your terminal.

[!NOTE] While it's likely that the project can be run with classic Yarn, please be aware that this is no longer actively tested.

Getting Started

To get started with this project, follow these steps:

  1. Make sure you meet the prerequisites.
  2. Clone the repository: git clone [repository_url]
  3. Navigate into the project directory: cd [project_directory]
  4. Install the dependencies: yarn install

Usage

In the project directory, you can run the following command to serve the app in development mode:

  • yarn start or ng s: Serves the app in the development mode. Open http://localhost:4200 to view it in the browser.

During the development process, you'll also find the following commands useful for maintaining code quality and understanding the codebase:

  • yarn lint: Scans for linting errors using ESLint.

  • yarn lint:fix: Lints the project and automatically fixes any fixable issues.

  • yarn doc:serve: Generates documentation for the project using Compodoc and serves it at a local server. Open the URL provided in the terminal to view it in your web browser.

Building

To build the app, use the following commands:

  • yarn build:prod: Builds the app for production to the dist folder.

  • yarn build:gh: Same as yarn build:prod, but additionally prepares the build for deployment on GitHub Pages (includes base-href setting).

Releases

Releases for this project are automatically managed via Continuous Integration (CI). The following commands are involved in the release process:

  • yarn pre-release: Updates the app version and creates a changelog from the commit history.

  • yarn deploy:ci: Runs angular-cli-ghpages to deploy the app on GitHub Pages. To be used only from CI.

Testing

This project uses a dynamic testing approach with Jasmine and Karma for unit tests in Angular. Code coverage is measured with CodeCov.

We encourage contributors to uphold these standards. As such, new contributions are expected to include tests whenever applicable.

To assist with this, the following commands are provided:

  • yarn test: Launches the test runner.

  • yarn test:cov: Runs the tests and generates a coverage report.

  • yarn test:cov:serve: Runs the tests, generates a coverage report, and serves the coverage report at http://localhost:9875.

Contributing

We welcome contributions! Please see our Contributing Guide and Code of Conduct for more details how you may contribute to this project.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Stefan MΓΌnnich
Stefan MΓΌnnich

πŸ’» ⚠️ πŸ€” πŸ“– πŸ“† 🚧 πŸš‡ 🎨 πŸ–‹ πŸ›
Thomas
Thomas

πŸ“† πŸ€” πŸ“– πŸ–‹ πŸ”£
chael-mi
chael-mi

πŸ€” πŸ“– πŸ–‹ πŸ”£
vanBithoven
vanBithoven

πŸ’» ⚠️ πŸ“–
AMWilke
AMWilke

πŸ”£

This project follows the all-contributors specification. Contributions of any kind welcome!

License

The software code of this project is released under MIT license, see LICENSE.md.

The contents of the webpage are released under Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0), see Disclaimer.

Contact and Issue Reporting

If you encounter a bug or any issue with the application, please report it by creating a new issue in the GitHub repository. When creating an issue, try to provide as much information as possible to help us understand and reproduce the problem.

For security concerns, please do not create a public issue. Instead, send an email directly to <info-awg[at]unibas.ch>, following our Security Policy. We take all security issues seriously and will respond as quickly as possible to resolve the matter.

For any other queries or if you wish to reach out directly, please contact us at <info-awg[at]unibas.ch>.

results matching ""

    No results matching ""