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.
- Description
- Prerequisites
- Getting Started
- Usage
- Building
- Releases
- Testing
- Contributing
- Contributors ✨
- License
- Contact and Issue Reporting
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.
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 likenvm
(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.
- Run
Note
While it's likely that the project can be run with classic Yarn, please be aware that this is no longer actively tested.
To get started with this project, follow these steps:
- Make sure you meet the prerequisites.
- Clone the repository:
git clone [repository_url]
- Navigate into the project directory:
cd [project_directory]
- Install the dependencies:
yarn install
In the project directory, you can run the following command to serve the app in development mode:
yarn start
orng 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.
To build the app, use the following commands:
-
yarn build:prod
: Builds the app for production to thedist
folder. -
yarn build:gh
: Same asyarn build:prod
, but additionally prepares the build for deployment on GitHub Pages (includes base-href setting).
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
: Runsangular-cli-ghpages
to deploy the app on GitHub Pages. To be used only from CI.
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.
We welcome contributions! Please see our Contributing Guide and Code of Conduct for more details how you may contribute to this project.
Thanks goes to these wonderful people (emoji key):
Stefan Münnich 💻 |
Thomas 📆 🤔 📖 🖋 🔣 |
chael-mi 🤔 📖 🖋 🔣 |
vanBithoven 💻 |
AMWilke 🔣 |
This project follows the all-contributors specification. Contributions of any kind welcome!
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.
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>.