Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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
Thorsten Diekhof

💻 🤔 👀 📖 ⚠️ 🚇
Sebastian Herrmann
Sebastian Herrmann

💻 🤔 👀 ⚠️ 🚇
Urs Schmidt
Urs Schmidt

💻 🤔 👀 ⚠️
Simon Scholler
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



Made by








Supported by: