Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/technologiestiftung/kulturdaten-api
kulturdaten.berlin is a project by Technologiestiftung Berlin and is funded by the Senate Department for Culture and Social Cohesion
https://github.com/technologiestiftung/kulturdaten-api
express nodejs openapi typescript
Last synced: about 2 months ago
JSON representation
kulturdaten.berlin is a project by Technologiestiftung Berlin and is funded by the Senate Department for Culture and Social Cohesion
- Host: GitHub
- URL: https://github.com/technologiestiftung/kulturdaten-api
- Owner: technologiestiftung
- License: mit
- Created: 2023-03-09T10:35:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-13T09:17:26.000Z (10 months ago)
- Last Synced: 2024-03-13T10:34:51.636Z (10 months ago)
- Topics: express, nodejs, openapi, typescript
- Language: TypeScript
- Homepage: https://kulturdaten.readme.io/
- Size: 2.74 MB
- Stars: 3
- Watchers: 6
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# About kulturdaten.berlin
[![](https://img.shields.io/badge/Built%20with%20%E2%9D%A4%EF%B8%8F-at%20Technologiestiftung%20Berlin-blue?style=flat-square)](https://www.technologiestiftung-berlin.de/)
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors)
**We make Berlin’s cultural diversity visible**
On the one hand, the internet offers many ways to find out about Berlin’s diverse cultural scene, but on the other hand, there remains no central overview of all the city’s cultural institutions and events. With kulturdaten.berlin, we want to create the basis for making it easier to discover the diversity of Berlin’s culture - from small but inviting events held in a given neighborhood to major cultural productions. Via our data interface, event portals, for example, can obtain exactly the data they need for their particular sector focus in no time at all. kulturdaten.berlin is based on the principles of open data and open source. That means, the source code is open and the cultural data of the platform is freely and easily accessible to all via an API, so that others can use it to build their own applications, for example. Whether it’s an app specifically for barrier-free cultural experiences or a website with concert tips specific to a given neighborhood: we're opening up Berlin’s cultural data for anyone with fresh ideas to reuse.
kulturdaten.berlin is a project of the Technologiestiftung Berlin (), funded by the Senate Department for Culture and Social Cohesion.
## Links
- [ReadMe API Docs](https://kulturdaten.readme.io)
- [Swagger API Docs](https://api-v2.kulturdaten.berlin/api/docs/)
- [OpenAPI YML file](https://github.com/technologiestiftung/kulturdaten-api/blob/main/src/schemas/kulturdaten.berlin.openapi.generated.yml)## Prerequisites
- Install a Node version according to the version specified in `.nvmrc` (e.g. with `nvm install` or `nvm use`)
- Install [MongoDB Community Edition](https://www.mongodb.com/docs/manual/administration/install-community/)## Installation
1. Install packages with `npm install`
2. Generate OpenAPI schema files in `/src/generated` with `npm run generate`
3. Create an `.env` in the root directory and fill it with values (see `.env.example` for inspiration)## Development
```shell
# Local development server
npm run dev# Local development server in debug mode
npm run debug
```## More commands
```shell
# Re-generate all OpenAPI schema files
npm run generate# Format all code with Prettier
npm run format# Lint all code with ESLint
npm run lint# Lint the generated OpenAPI file
npm run lint-openapi# Run the TypeScript compiler to find any TypeScript errors
npm run typecheck
```## Tests
Run all tests with Vitest (incl. hot reload when run locally):
```shell
npm test
```## Production Build
```shell
npm start
```## Initializing an empty database
The Seeder.ts script assists in initializing your database. Use the -t or --tags flag to add predefined tags. For setting up organizations for Berlin boroughs (excluding 'außerhalb'), use the -b or --boroughs flag with a default password. To set up an admin user, utilize the -a or --admin flag followed by credentials in email:password format. Combine flags for simultaneous operations. Example:
```shell
npm run seed -- --tags --boroughs password123 --admin [email protected]:password123
```Note: The script only populates empty collections to avoid duplicates and unintended overwrites, especially important for admin user creation.
## Contributing
Before you create a pull request, write an issue so we can discuss your changes.
## Contributors
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Thorsten Diekhof
💻 🤔 👀 📖 ⚠️ 🚇
Sebastian Herrmann
💻 🤔 👀 ⚠️ 🚇
Urs Schmidt
💻 🤔 👀 ⚠️
Simon Scholler
🤔 👀
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
## Content Licensing
Text and content available as [CC BY](https://creativecommons.org/licenses/by/3.0/de/).
## Credits